Repository navigation
[#33] Write implement-spec's hand-back inline, not in a fork - #42
Merged
Merged
Conversation
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The report skill's Message ends the message, not the turn: at spec cadence the next wave's executors are launched in the same turn straight after it, which the spec-cadence eval showed was needed. The merged report-skill spec is restored to main's version, since a spec is the record of its task and #33 records the reversal. Co-Authored-By: Claude Fable 5.1 <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.
Why
Closes #33
PR #31 chose a fork of the conversation for implement-spec's hand-back so the skill and template text, about 1,500 tokens per hand-back, would stay out of the orchestrator's context. Measured after the merge, the premise does not hold: every call reads the whole conversation as input, so inline the orchestrator writes the Message in the call it makes anyway, one read, while forked the fork reads the context to write and the orchestrator reads it again to paste, two reads per hand-back. A skill cannot have the foreground, so the pasted Message always lands a turn late; a fork cannot ask the author anything; and the headless eval sandbox has no fork agent type, so every eval already exercised the inline path. The only thing the fork buys is a slightly smaller context near the compaction limit, in exactly the runs where its second read is most expensive.
What
implement-spec invokes the report skill inline, in the session, to write its hand-back, at every cadence and for the final report, and at spec cadence launches the next wave in the same turn straight after the report instead of ending its turn on it.
Changes
skills/implement-spec/SKILL.mdstep 6 with an inline invocation of the report skill, drop the two fork fallbacks and keep the missing-skill one, say the same in step 8 and the CX block, and add that the report ends the message, not the turn, so at spec cadence the next wave's executors are launched in the same turn straight after it. The cost is paid only to trigger the skill and once more to run the skill, versus just one to run the skill without the fork loading context. There is nothing it does not cover that was not already there; it is a minor change to the runtime, and nothing really breaks it since it is simpler than the previous version. The same-turn wording was added after the spec-cadence eval failed twice on the first wording, the run ending its turn on the wave 0 report.subagent_type: forkfrom the contributing guide's list of Claude-only pieces. A docs update.works-one-waveandworks-all-waveseval prompts and READMEs: the "no fork in this run" line goes, and the cases say the hand-back is written by the report skill invoked inline. The tests were updated to match; no grader changed.Testing
make validatepasses: 19 unit tests and both plugin validations.Evals, run on 2026-10-16 at list price, one case per invocation:
The two failures are the record of why the same-turn sentences exist: the kept trace showed the run writing wave 0's report through the report skill, its Next saying "Wave 1, task 2 ... It starts now.", and the turn ending there, so wave 1 never started.
Risk and rollout
Minor: a simpler runtime for the same hand-back. The version is 0.11.0; teammates pick it up with
claude plugin update freethinking@freethinkingit. No rule or template changed.Notes for reviewers
.claude/specs/report-skill/is left as it was, on the principle in Workflow rule: specs as records, in-flight choices, discoveries as issues #6 that a spec is the record of its task and is not edited after the merge; this issue and PR are the record of the reversal. The spec's text on the fork is therefore stale by design.🤖 Generated with Claude Code