Skip to content

test(sim): pipeline simulation — engine driven end-to-end as a black box#522

Merged
leeovery merged 2 commits into
mainfrom
test/pipeline-simulation
Jul 23, 2026
Merged

test(sim): pipeline simulation — engine driven end-to-end as a black box#522
leeovery merged 2 commits into
mainfrom
test/pipeline-simulation

Conversation

@leeovery

@leeovery leeovery commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

  • New permanent suite tests/scripts/test-pipeline-simulation.cjs (registered in npm test): drives the engine CLI as a black box through the call sequences the skill prose prescribes, in prose order — extracted per-phase from the entry/process skills.
  • Thirteen scenarios: feature/bugfix/quick-fix/epic mainlines, quick-fix promotion, grouping supersession (terminal guards asserted), topic cancel/reactivate (map order round-trip), reopen/going-backwards, work-unit complete/reactivate/cancel loops, pivot, absorption, cross-cutting spec promotion, the implementation task loop (fix-attempt, analysis-cycle, gate-mode session reset, completed_tasks dedupe), skipped-review completion, and mid-pipeline guard refusals.
  • After every mutation the full state is audited: manifests parse and are schema-valid, discovery items stay status-less, no phase-named shadow roots, every derivation (lifecycle, phaseStatus, unit phase state) computes, the bridge + all six navigation gateways discover AND format the state, and render surfaces (entry/resume/early-completion/revisit/epic-all-done/phase-completed/phase-note) hold at checkpoints. Refusal paths assert clean {ok:false} JSON and untouched state.
  • The suite already earned its keep during authoring: it caught that entry-gate renders empty on pass and that workunit promote refuses incomplete specs — both correct behaviours my draft scenarios had wrong, exactly the feedback loop the suite exists to give.

Test plan

  • npm test — 1590 pass (suite adds 13 scenarios, ~2s runtime).
  • Conventions lint, typecheck green.

🤖 Generated with Claude Code

Stack

  1. feat(engine): discovery-map add-batch — the harvest persists in one call (D7) #505
  2. feat(engine): manifest apply — batched set/delete across one work unit (D7) #506
  3. refactor(prose): task-map family folds onto existing batch forms (D7, stage 3) #507
  4. feat(engine): manifest set — two grammars, never mixed #508
  5. refactor(prose): dump/read folds — subtree gets replace per-topic loops (D7, stage 5) #509
  6. feat(engine): commit --plan — plan storage stages from recorded state (D7, stage 6) #510
  7. fix: batching-stack review round — re-resolve rewired, guards symmetric, hardening pinned #512
  8. fix: deep-dive round 2 — backbone rule flipped, pre-upgrade paths routed, flow bugs closed #513
  9. fix(review-r3): engine hardening + crash-resume seams #514
  10. feat(scoping): promotion routes through first-phase choice + bridge #515
  11. fix(spec): pin the bugfix source name to the topic #516
  12. fix(skills): gate-skip sentence accurate in gate-less phases #517
  13. fix(review-entry): name the real upstream — specification and plan #518
  14. fix(shared): strip triage-landing's unreachable superseded-research arm #519
  15. feat(engine): refuse work-unit-level fields that shadow the phases tree #520
  16. fix(discovery): first-written briefs join the full brief lifecycle #521
  17. test(sim): pipeline simulation — engine driven end-to-end as a black box #522 👈 current
  18. fix(round-4): review findings — backfill keying, ratchet evasion, pull guard #523

@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from d460090 to f671f53 Compare July 23, 2026 12:29
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 9bad6f4 to 4dee184 Compare July 23, 2026 12:29
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from f671f53 to 4eecbc6 Compare July 23, 2026 12:30
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 4dee184 to 1a6fee3 Compare July 23, 2026 12:30
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 4eecbc6 to 92c68d0 Compare July 23, 2026 12:31
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 1a6fee3 to cd7d65f Compare July 23, 2026 12:31
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 92c68d0 to 24fefee Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from cd7d65f to 3f82897 Compare July 23, 2026 12:32
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 24fefee to b3a6070 Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 3f82897 to 6904937 Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from b3a6070 to 9cac9c9 Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 6904937 to b0aeb1b Compare July 23, 2026 12:33
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 9cac9c9 to 748ccfb Compare July 23, 2026 12:34
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from b0aeb1b to 156b9a8 Compare July 23, 2026 12:34
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 748ccfb to 729ff6b Compare July 23, 2026 12:35
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 156b9a8 to 53df927 Compare July 23, 2026 12:35
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 729ff6b to ce38d6d Compare July 23, 2026 12:35
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 53df927 to f3da7dd Compare July 23, 2026 12:35
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from ce38d6d to 6e4ba62 Compare July 23, 2026 12:36
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from f3da7dd to 5dc5ba8 Compare July 23, 2026 12:36
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 6e4ba62 to d6acf93 Compare July 23, 2026 12:36
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 5dc5ba8 to f29e483 Compare July 23, 2026 12:36
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from d6acf93 to 28a0598 Compare July 23, 2026 12:37
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from f29e483 to 76aedcf Compare July 23, 2026 12:37
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from 28a0598 to f1ebd1b Compare July 23, 2026 12:37
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 76aedcf to db9241c Compare July 23, 2026 12:37
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from f1ebd1b to e415cc4 Compare July 23, 2026 12:38
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from db9241c to 5acd345 Compare July 23, 2026 12:38
@leeovery
leeovery force-pushed the fix/brief-first-write-propagation branch from e415cc4 to 590a04e Compare July 23, 2026 12:38
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 5acd345 to 51c0439 Compare July 23, 2026 12:38
@leeovery
leeovery changed the base branch from fix/brief-first-write-propagation to main July 23, 2026 12:38
leeovery and others added 2 commits July 23, 2026 13:38
…ack box

Thirteen scenarios replay the engine-call sequences the skill prose
prescribes — feature, bugfix, quick-fix (+promotion), epic with map
lifecycle and grouping supersession, reopen/backwards, work-unit
lifecycle flips, pivot, absorption, cross-cutting spec promotion, the
implementation task loop, and mid-pipeline guard refusals. After every
mutation the whole state is audited: schema-valid manifests, no shadow
roots, every derivation computes, every navigation gateway discovers
and formats, and the render surfaces hold. This is the detector for
the silent class of bug — state that writes fine and only breaks a
menu three phases later. New permutations are one scenario away.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…e it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@leeovery
leeovery force-pushed the test/pipeline-simulation branch from 51c0439 to 95387dc Compare July 23, 2026 12:38
@leeovery
leeovery merged commit d155402 into main Jul 23, 2026
@leeovery
leeovery deleted the test/pipeline-simulation branch July 23, 2026 12:43
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