Skip to content

design(build-order): one soft sequence over an epic's topics - #970

Open
leeovery wants to merge 8 commits into
mainfrom
design/build-order
Open

design(build-order): one soft sequence over an epic's topics#970
leeovery wants to merge 8 commits into
mainfrom
design/build-order

Conversation

@leeovery

Copy link
Copy Markdown
Owner

Design log for the build order — carrying the discovery map's soft order forward into specification, planning and implementation.

Long-lived design branch: logging continues here as the shape settles.

🤖 Generated with Claude Code

leeovery and others added 8 commits August 20, 2026 21:29
Design log for carrying the discovery map's soft `order` forward into
specification, planning and implementation. Born at the grouping gate,
advisory in all three phases, re-derived wholesale.

Largely closes idea 21 (cross-plan implementation ordering) in a smaller
form: the Folio failure was an ordering fact, not a dependency, so it
needs no appraisal agent and no manifest write-back.

Sub-grouping within an epic raised during the discussion and parked as
idea 44.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The next reader of idea 21 needs to know the appraisal agent is not the
answer before they start building it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claim verification pass over the doc's factual assertions:

- external_dependencies has one *creator* (the spec's Dependencies
  section) but two other writers that flip state to satisfied_externally
- the §C stale sweep is conditional, skipped when a spec declares no
  dependencies — which makes an inferred entry's survival unpredictable
  rather than impossible, and reshapes the appraisal-agent rejection
- B9 attributed one quote to two files; they carry different comments,
  and a blocked spec is kept off the menu by two distinct mechanisms
- "everything downstream is advisory" overstated: the labelled hard gate
  governs a route, the blocked-dependency refusal is a separate hard
  gate on an item
- resolveDeps also satisfies on implementation status completed, and its
  callers set `blocked`, not resolveDeps itself

Also records that tick already claims cross-topic dependency support, so
the parked residue needs prose, not a format capability.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Adversarial review of the draft against the tree. The discovery analogy
was looser than the draft claimed at three seams, all now addressed:

- needs_sequencing is derived from map items alone and cannot see a spec
  item — the build order needs a separately named twin
- compareMapRows sorts lifecycle tier first, so order is a tiebreak
  within a grouping, never a flat re-sort
- previous_order stashes on the discovery-map item only

Corrections: B1 claimed a grouping confirmation gate that does not exist
and missed the single-discussion fast path; B3 ignored pickRecommendation,
which outranks the order three ways; B4's second trigger needed a
last-sequenced marker that does not exist (now an event); B6 missed the
spec-entry menu; B7 changed the message but not the condition; B9's
in-session precedent cannot apply to implementation and row removal loses
a tree cue plans never had; B10 read as forbidding the gates B7 keeps.

Settled: the live-set predicate, and concurrent re-sequence races as
accepted. Added engine surface, build plan and test plan sections to match
sibling programme docs.

Surfaces one pre-existing bug: `topic cancel` on a specification strips
the same-named discovery-map item's order, because the stash is
unconditional on phase and the names collide by construction.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Reproduced rather than inferred: cancelling only the specification item
turns a map of auth-flow:1, billing:2 into billing:2, auth-flow:null,
flips needs_sequencing, and sorts a still-live topic last.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Grouping assigns at birth; a new continue-epic step mirroring Step 7
refreshes on entry. Trigger 2 gets no hook of its own — spec completion
sets build_order_stale, sequencing clears it, one place sequences.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…g discovery order

Phase outranks order: the order picks the topic within the winning phase,
never which phase wins. Order-as-primary-key would contradict B7.

Deriving the build order from the discovery map's order rejected — the two
answer different questions, the prior is sketch-time while grouping reads
concluded discussions, the collapse makes any aggregate arbitrary, and it
risks anchoring the result into a reshuffled copy. Recorded so it is not
re-proposed as a cheap win.

All design questions now closed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Drops it from the build plan; the spec-side stash is all that remains for
this programme.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant