spec: plan the whole route, and name who propagates after a merge - #31
Merged
Merged
Conversation
An adopting project's bounded organizing effort produced one inventory PR, and the agent reported that PR's completion as the completion of the effort. Necessary follow-up structural work was treated as outside the overall rather than as pending steps. The narrow PR was correct; treating its scope as the effort's completion criterion was not. Section 2 required "step boundaries" and section 3 keeps later PRs at medium scope. Neither said the overall must enumerate all currently identifiable necessary steps before the first freeze, so progressive detail was free to become progressive omission. Section 2 now states that checkpoint at the moment it applies -- before the operator accepts the overall and before the first PR is frozen: the complete effort and its outcomes, every identifiable necessary step with intended output, broad order and acceptance checkpoint, each operator requirement matched to a step or to an explicit unresolved decision, discovery-dependent work as conditional steps rather than omissions, and which subset the current PR covers. Two guards against overreading it: a requirement leaves the effort only through an explicit scope decision, never because it does not fit the first PR, and this is a completeness check on the route rather than a demand for speculative architecture or a minimum step count. An effort that genuinely needs one step stays a one-step effort. Section 3 gains one sentence, because the incident's neighbouring confusion was exactly this: expanding a step document in place is a document-layout rule about one step, and it says nothing about how many steps the overall has. Both languages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This is the inference that produced the incident in issue #26, and the previous commit only fixed the planning half of it -- an overall can now be required to list every identifiable step and still be marked done because its first PR merged. Section 10 now separates the two claims. A merged PR completes that PR; the overall is complete only when every enumerated step is delivered or explicitly dropped by an operator scope decision, and what remains is recorded. Work revealed by the merge is added at its own level: a PR that is already frozen and bounded stays bounded, and the remaining work is planned separately rather than folded into the active PR. The issue asks for that guard by name, since the obvious wrong fix is to expand a frozen PR until it covers the gap. SKILL.md rule 10 carries the one sentence. That is the whole premise of the issue -- the rule has to sit on the path an agent actually reads, not only in the reference it may or may not reach -- so the specification baseline is updated deliberately for it. Both languages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Section 10 listed four post-merge actions and their order, and said "the agent" throughout. When a planning conversation and an implementation conversation both exist, that leaves the responsible session undecided -- so either both assume the other updated the overall, or one invents a rule and states it as though the workflow had one. Issue #27 asks for the decision rather than a description of the options. The decision is a split, not a single owner. The implementation session owns the PR document, the merge identity, the evidence, the deviations and the remaining issues, because it holds the evidence. The synchronization owner named in the contract -- by default the planning session -- owns the step and overall updates, because it holds the agreement and will design the next PR from those records. One conversation may own all of it, and a project that wants implementation-side propagation says so once in the contract. The split exists so an interruption between the two loses nothing; it does not require another agent. POST-MERGE SYNCHRONIZATION OWNER carries that in the filled contract, so the answer to "does my main conversation do backward propagation?" is recorded rather than inferred. The handoff between them is explicit: the implementation session marks parent synchronization pending and names the owner; the owner records the parent updates and acknowledges in the same place what it recorded. Only the owner writes the parent documents; the other reports. Parent content that has moved on is reconciled, never overwritten, so the two cannot clobber each other. Two boundaries stated where they could otherwise drift. Owning propagation is not merge authority and does not confer it -- who executes an authorized merge stays separate from who owns planning updates. And an implementation conversation may close once its record is durable, where durable does not mean published: a project that keeps its plans out of version control keeps them there. Both languages, plus the contract template and its baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The session table said "have the agent update A, its parent step, and the overall plan" -- the same undecided "the agent" that issue #27 is about, in the place a user is most likely to read. It now names the split: the implementation conversation records A's merge identity and evidence, and the synchronization owner, by default the planning conversation, updates the parent step and the overall plan before detailing B. The "when to switch" cell carries issue #26's sentence in the user's language: finishing A does not finish the plan, and the overall stays open until every step it listed is delivered or the user drops it. A reader who does not know the overall can outlive its first PR cannot notice when an agent quietly closes it. Edited in docs/content.{en,zh-CN}.json and regenerated into README, TUTORIAL, both HTML pages and both packages. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Merged
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.
Closes #26. Closes #27.
Both land on the After-merge route and the overall document, so they ship together rather than in two passes over §10 and its mirror.
#26 — progressive detail became progressive omission
An adopting project's bounded organizing effort produced one inventory PR, and the agent reported that PR's completion as the completion of the effort. The narrow PR was correct; treating its scope as the effort's completion criterion was not.
§2 required "step boundaries" and §3 keeps later PRs at medium scope. Neither said the overall must enumerate all currently identifiable necessary steps before the first freeze, nor that finishing a PR does not finish its overall — so the omission was available.
SKILL.mdrule 10 carries the one sentence, since the issue's premise is that the rule must sit on the path an agent actually reads.Worth recording: this repository's own overall plan for this effort made the same mistake three days into the same work — its step list was missing a PR because its author read the issue bodies and not their comments. That is why the checkpoint is written down rather than assumed.
#27 — the decision, not a menu
§10 listed four post-merge actions and said "the agent" throughout. With a planning conversation and an implementation conversation both alive, the responsible session was undecided: either both assume the other updated the overall, or one invents a rule and states it as the workflow's.
The decision is a split, not a single owner:
MERGED, merge identity, evidence, deviations, remaining issuesOne conversation may own all of it; a project wanting implementation-side propagation says so once in
POST-MERGE SYNCHRONIZATION OWNER. The split exists so an interruption between the two loses nothing — it does not require another agent.This is the one decision made on the operator's behalf. Their approval covered the order of work, not this specific split. It is a default in a template, so overruling it costs one line in a contract; flagged here rather than buried.
Validation
SKILL.md,implementation-working-rules.md) updated deliberately; the pin refuses the edits until they aredist/and from the regenerated README, not only from sourceRan 171 tests ... OK (skipped=1); all five--checkvalidations PASS; packages at codex 23 / claude-code 22 filesLimits
No mechanical check is added and none is claimed. §2's checkpoint is a semantic review — no filename or checkbox can establish that a route is complete. What changed is that the requirement is stated where the work happens, and that "PR merged" and "effort complete" can no longer be the same sentence.
🤖 Generated with Claude Code