mirror of
https://github.com/phuryn/pm-skills.git
synced 2026-09-20 14:25:53 +03:00
code-review: state the worker constraints as instructions, not tool permissions
A skill cannot restrict a subagent's tools - that is harness configuration, not something SKILL.md can assert. Reframed both worker rules as things the coordinator must SAY in the worker's prompt: name the coordinator's own model explicitly on every spawn and bring in no other model, and tell the worker it is reading rather than editing, then verify the tree is unchanged at the end. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G42vsxSKL7je39AsHZ5aJm
This commit is contained in:
co-authored by
Claude Opus 5
parent
76c51f3ae8
commit
c64c2d868d
@@ -196,20 +196,19 @@ drops to a cheaper model or a lower effort is the cheapest way to lose one. If a
|
|||||||
or downgraded, say which in the report — a reader who assumes one model saw everything will
|
or downgraded, say which in the report — a reader who assumes one model saw everything will
|
||||||
misjudge the coverage.
|
misjudge the coverage.
|
||||||
|
|
||||||
**One model, unless told otherwise.** Fan-out here is for coverage, not for a second opinion: every
|
**One model. Name it on every worker.** Fan-out here buys coverage, not a second opinion. Pass the
|
||||||
worker runs the same model as the coordinator. Do not bring in a second model to cross-check findings
|
coordinator's own model explicitly on each spawn — "inherit" is not a routing decision, and a worker
|
||||||
unless explicitly asked. Mixing models makes the result unattributable — when this skill is being
|
that quietly lands on a cheaper model is the easiest way to lose a finding. **Do not bring in a
|
||||||
measured, or compared across models, a single foreign worker invalidates the number. The independent
|
different model**, to review or to cross-check, unless you are explicitly asked: mixing models makes
|
||||||
second-model pass is a separate, explicitly-invoked step (`/ship-check` Step 6), never something this
|
the result unattributable, and when this skill is being measured or compared across models, one
|
||||||
skill reaches for on its own.
|
foreign worker invalidates the number. The independent second-model pass is a separate,
|
||||||
|
explicitly-invoked step (`/ship-check` Step 6), never something this skill reaches for on its own.
|
||||||
|
|
||||||
**Give workers read-only tools.** A review worker needs to read, search and navigate — nothing more.
|
**Tell workers they are reading, not editing.** A review worker needs to read, search and navigate;
|
||||||
Withhold file writes, edits and any mutating command; allow read, search and non-mutating inspection.
|
it must not modify the tree. State that in the worker's instructions — a worker that starts editing
|
||||||
Three reasons, in order of importance: a worker that can edit will drift from reviewing into
|
drifts from reviewing into "helpfully" fixing and stops reporting what it silently repaired, and the
|
||||||
"helpfully" fixing and stop reporting what it silently repaired; the repository under review must end
|
findings can no longer be checked against the code they describe. Say it in the prompt rather than
|
||||||
the run byte-identical to how it started, or the findings cannot be checked against it; and a
|
assuming the host will enforce it, and confirm the tree is unchanged when the run ends.
|
||||||
read-only worker cannot damage a working tree it misunderstood. If the host cannot restrict tools,
|
|
||||||
say so in the prompt and verify the tree is unchanged when the run ends.
|
|
||||||
|
|
||||||
## Report
|
## Report
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user