Skip to content

spec: plan the whole route, and name who propagates after a merge - #31

Merged
yuema137 merged 4 commits into
mainfrom
spec/scope-and-ownership
Sep 11, 2026
Merged

yuema137 merged 4 commits into
mainfrom
spec/scope-and-ownership

Conversation

@yuema137

Copy link
Copy Markdown
Owner

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.

  • §2 now states the 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, not a demand for speculative architecture or a minimum step count. A genuinely single-step effort stays one step.
  • §3 gains one sentence, because that was the neighbouring confusion: expanding a step document in place is a document-layout rule about one step and says nothing about how many steps the overall has.
  • §10 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. Work the merge revealed is added at its own level — a frozen, bounded PR stays bounded, which the issue asks for by name since the obvious wrong fix is to expand it until it covers the gap.
  • SKILL.md rule 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:

Action Default owner Why
PR document to MERGED, merge identity, evidence, deviations, remaining issues the implementation session it holds the evidence
Step and overall updates the contract's synchronization owner — by default the planning session it holds the agreement and designs the next PR from these records
Re-audit and detail the next PR the planning session already required to be there

One 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.

  • The handoff is explicit: implementation 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.
  • Owning propagation is not merge authority and does not confer it — who executes an authorized merge stays separate from who owns planning updates.
  • An implementation conversation may close once its record is durable, where durable does not mean published: a project keeping plans out of version control keeps them there.
  • The README session table's fourth row says all of this in the user's language, including Validate overall-plan scope coverage before detailing or freezing the first PR #26's sentence — finishing A does not finish the plan.

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

  • Both specification baselines (SKILL.md, implementation-working-rules.md) updated deliberately; the pin refuses the edits until they are
  • Shipped text read back from dist/ and from the regenerated README, not only from source
  • Ran 171 tests ... OK (skipped=1); all five --check validations PASS; packages at codex 23 / claude-code 22 files
  • Both languages; mirror and presentation hashes refreshed

Limits

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

yuema137 and others added 4 commits September 10, 2026 21:54
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>
@yuema137
yuema137 merged commit 76cf3a0 into main Sep 11, 2026
4 checks passed
@yuema137
yuema137 deleted the spec/scope-and-ownership branch September 11, 2026 02:03
@yuema137 yuema137 mentioned this pull request Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant