design(build-order): one soft sequence over an epic's topics - #970
Open
leeovery wants to merge 8 commits into
Open
design(build-order): one soft sequence over an epic's topics#970leeovery wants to merge 8 commits into
leeovery wants to merge 8 commits into
Conversation
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>
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.
Design log for the build order — carrying the discovery map's soft
orderforward into specification, planning and implementation.Long-lived design branch: logging continues here as the shape settles.
🤖 Generated with Claude Code