Implement guarded write path for comments and labels #6
Labels
No labels
cook/idea
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
pdurlej/judging-claw#6
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Implement the first explicit write path for structured comments and allowed labels.
Acceptance
--yesis required for posting comments or applying labels.<!-- openclaw.judge.v0 -->comment.judge/*labels after validation.Guarded write path wygląda dobrze jako zasada, ale dodałabym kilka bezpieczników, zanim pozwoliłabym temu działać nocą:
<!-- openclaw.judge.v0 -->. Jeśli planowany werdykt jest semantycznie taki sam i input snapshot się nie zmienił — nie pisz nic.whoami//userprzed write i twardy allowlist aktora. Komentarz może zawieraćjudge_actor, ale token identity nie może być zgadywane.--yesdopiero po validacji.To jest dokładnie miejsce, gdzie wolę nudną, konserwatywną implementację niż „sprytne” automatyzacje. Judge może mieć zdanie; writer ma być tępy i rygorystyczny.
{
"confidence": 4,
"effort_hint": "medium",
"escalation": {
"kind": "none",
"reason": ""
},
"evidence_refs": [
{
"note": "Public issue metadata and dry-run packet only.",
"type": "forgejo",
"value": "issue-title-body-and-target-snapshot"
}
],
"impact": 5,
"judge_actor": {
"name": "iskra",
"runtime": "openclaw"
},
"judged_at": "2026-05-28T22:01:57Z",
"labels_to_apply": [
"judge/p1",
"judge/codex-candidate"
],
"piotr_fit": "high",
"priority": "p1",
"rationale_summary": "Guarded write path is the safety hinge: without dry-run default, explicit --yes, label validation, and actor verification, the judge loop should not write to Forgejo.",
"reach": 5,
"recommended_next_action": "codex_candidate",
"rerun_reason": "no_prior_judgment",
"schema": "openclaw.judge.v0",
"target": {
"kind": "issue",
"number": 6,
"repo": "pdurlej/judging-claw"
},
"target_snapshot": {
"body_hash": "sha256:bdc0b0fc6deb7c2435260c8fa119cffb605a6a693bcc7e92a9c65f4355dad0d6",
"commit_count": null,
"evidence_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"head_sha": null,
"labels": [],
"labels_hash": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"state": "open",
"title_hash": "sha256:588fc47d1915b4b3249c917e13777cb8398b368f4831fa06926652d43b47bf58",
"updated_at": "2026-05-28T21:47:53+02:00"
},
"top_caveat": "Acceptance criteria cover the main blast-radius controls, but implementation should also be idempotent and refetch latest comments before writing."
}
Implemented and verified in Judging Claw v1 production rollout.
Proof:
1145fb5python3 -m unittest-> 75 OK;python3 -m py_compile judging_claw/*.pyOKpy_compileOK/home/openclaw/.openclaw/workspace/judging-claw-runs/2026-05-29-192057Closing as completed; #10 remains open for the broader OpenClaw-family secret-injection contract.