engine(experiment): schema, series records, evidence waits, hops, routing - #1058
Closed
leeovery wants to merge 4 commits into
Closed
engine(experiment): schema, series records, evidence waits, hops, routing#1058leeovery wants to merge 4 commits into
leeovery wants to merge 4 commits into
Conversation
…idence waits, hops, routing
The pipeline gains an experiment slot between research and discussion for
epic, feature, and cross-cutting. Each topic's item holds an ordered series
(experiments.E{n}: slug, status, verdict/reason) walking conceived →
designed → approved (the confirm freeze, its own verb) → running →
concluded | abandoned, driven by the new `engine experiment` family
(domain/experiment.cjs). The evidence wait (awaiting_experiments on the
same-topic discussion, written by `experiment await`) blocks discussion
conclusion engine-side, routes computeNextPhase back to the experiment
(awaiting evidence), and releases on conclude/abandon/cancel — every
release flagging the discussion's next entry via reconcile_needed.
flagDownstream now walks to the nearest downstream item so the optional
slot never swallows a hop; the map lifecycle, next actions, triage
queues, commit door, presence beats, and epic-cancel edges all join the
phase. Simulation mainlines for feature and epic plus engine suites cover
the series, the waits, and the releases.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…erbs in the usage banner Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…o the widened lifecycle set Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…hase's in-flight process skill The commit-door, discovery-map, and presence suites pin refusal messages that derive from the widened phase and routing vocabularies — re-pinned to the new lists. The conventions lint's presence-cleanup check gains a named in-flight allowance for the experiment phase: its process skill ships in the stack's skills PR, and until it exists no prose can put a session or a heartbeat in the phase; the entry is removed when that skill lands, restoring the full hook requirement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Owner
Author
|
Closed: this stack implements a superseded model of the experiment phase. The corrected design is PR #1057 ( |
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.
PR1 of the experiment-phase stack (design: #1057).
experimentphase inserted between research and discussion for epic/feature/cross-cutting:VALID_PHASES, pipelines, routings, phase statuses (nosuperseded— a series is never absorbed into a sibling topic).phases.experiment.items.{topic}.experiments.{E{n}}(slug/status/verdict/reason), per-topic numbering, guarded-container + leaf validation on the field surface.engine experiment create|advance|approve|conclude|abandon|await(domain/experiment.cjs): the design-before-data lifecycle —approveis its own verb (the briefing freeze is never a stepadvancedrifts past); conclude requiresrunning+ one-line--verdict; abandon is terminal from any pre-terminal status with--reason.awaiting_experimentson the same-topic discussion item —topic completerefuses while pending; conclude/abandon release and setreconcile_needed: "experiment"; baretopic cancelon an awaited experiment refuses naming the waiting discussion,--cascadecancels + releases in one transaction (released_waiton the response).flagDownstreamnow walks past phases the topic never entered to flag the nearest downstream item — inserting an optional phase must not sever the research→discussion hop. Tested both ways.computeNextPhase/computeTopicLifecycle/computeNextActionlearn the slot (experimenting/evidence_ready,awaiting evidencerouting); enum sweep (commit door, presence, roadmap flags, discovery map, epic projections' pure enumerations). Display strings beyond those are PR2.test-engine-experiment.cjs(25 tests), simulation mainlines for feature + epic (waits, refusals, releases, series continuation), derivations/fields/transactions suites extended. Conventions lint carries a named in-flight allowance until PR3 ships the process skill.Gates:
npm test2643/2643 ·npm run test:cli5/5 ·npm run typecheckclean.🤖 Generated with Claude Code