mesh-issues: check every new issue for a duplicate; claude-code: one judgement with no tools (hq ADR 0278)
mesh/merge-gate pass: builds claude-code, mesh-issues → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 o…
mesh/repo-check pass: its merge-check.sh passed, each part in its toolchain: merge-check.sh (go), merge-check-typescript.sh (typescript)
mesh/delivery superseded: a newer head of the same pull request

The operator asked for duplicate issues to be consolidated as they are opened.
The tracker consumes its own opened event and asks the agent on its node, through
claude-code's new claude_code_judge, whether an older issue not resolved asks the
same question; it closes only the newer issue of a certain duplicate, keeping its
report on the older one, and fails loudly when it cannot judge. groom runs the
same judgement over the backlog as a dry run, applied on confirm.
This commit is contained in:
jochen
2026-10-10 17:11:54 +02:00
parent fb77be42ca
commit f58840b8a6
13 changed files with 1750 additions and 16 deletions
+10
View File
@@ -192,6 +192,16 @@ what a session obeys as surely as placing one. Where it is taken:
A new session takes a change; a running one at `/reload-plugins`.
**One judgement** (hq ADR 0278): `claude_code_judge` (`question`, `schema`, optionally `model`) answers a question
only a language model can, for another module — the issue tracker's duplicate check. It runs
`/usr/bin/claude -p --output-format json --json-schema <schema> --model <model> --tools "" --safe-mode
--no-session-persistence` as the account agents run as here (through `sudo -n -H -u <agent>` where that is an account of
its own), in an empty directory, the question on its input: no built-in tools, no tool servers, plugins, hooks or
instruction files, no session kept, so it can only answer. It answers the structured answer, the model, the node
and the seconds, within 25 seconds — the process is ended past that, under the bus's 30 — and one at a time on a
node. Refused: an empty question or one over 64 KiB, a schema that is not an object, a model not `sonnet`, `haiku`
or `opus`, and a node holding no licence. The question is never logged.
## Settings
Per node or for the whole mesh, at the controller's terminal alone: `mesh-cli settings set claude-code '<json>'