dld-implement: keep the review subagent running under harness subagent restrictions - #25
Merged
Merged
Conversation
…t restrictions Claude Code 2.1.220 ships "Do not call the AgentTool unless the user requested it" in its system prompt, unconditionally. Under that instruction an agent running /dld-implement can read step 6 as an unrequested subagent call and skip the review. Step 6 now states that enabling implement_review and running the skill is the user's request, satisfying the condition rather than contradicting it. If the subagent still cannot run, the skill requires an inline review over the files re-read from disk, and requires the agent to report which path it took. Also documents the flag and the harness interaction in project-configuration.md. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Claude Code 2.1.220 ships this in its system prompt, unconditionally:
Confirmed by grepping the shipped binary — it is not config-driven, not an Opus 5 behavior change, and there is no file to edit to turn it off.
Under that instruction, an agent running
/dld-implementcan read step 6's review subagent as an unrequested subagent call and skip it. Observed in a real run: the agent skipped the subagent, reviewed the diff inline instead, and disclosed the skip. Graceful, but the disclosure was luck rather than a rule, and inline review is the author checking their own work — the weaker check the separate agent exists to avoid.Approach
Raising the imperative ("you MUST launch a subagent") pits skill text against a system-prompt directive and yields nondeterminism across runs. The directive is conditional — unless the user requested it — so the fix satisfies the condition instead:
implement_reviewand running the skill is the user's request, and notes this is one review agent at a fixed point rather than an unprompted fan-out.Agent/AgentToolso skill text and directive use the same token.The reframing is still an inference the model has to accept, so it is a strong nudge rather than a guarantee. The fallback is what makes the outcome safe either way — worst case is an inline review explicitly labeled as such, instead of a silent skip.
Changes
skills/dld-implement/SKILL.mdand.claude/skills/dld-implement/SKILL.md— step 6, kept in syncdocs/framework/project-configuration.md— new "Implement Review" section covering the flag, why the reviewer is a separate agent, and the harness noteVerification
tessl tile lintpasses🤖 Generated with Claude Code