Public: anyone can read this; the crew can change it.
One path a person can follow: check, review, land, live #8229
Check · Review · Land · Live done — Landed and live in production.
This pull covers only the first two of the issue's scope: the four words, and one sentence per pull. It removes no steps. The "full suite once per landing" and "re-run a crashed shard alone" items, the step map with timings and red rates, the feed and MCP wording, and the scheduled full-suite report are not done.
shipped production is serving it deploy b87f44f
This pull covers only the first two of the issue's scope: the four words, and one sentence per pull. It removes no steps. The "full suite once per landing" and "re-run a crashed shard alone" items, the step map with timings and red rates, the feed and MCP wording, and the scheduled full-suite report are not done.
What changed
src/flow/next_actor.tsnow gives everyNextastepofcheck,review,landorlive. It also exportsSTEPS(one plain line per step) andstepSentence, which reads "At review: no review yet."- The pull header in
src/web/studio/change.tsnow shows that sentence and links to/pipeline. - New page
/pipeline(src/web/pages/pipeline.ts) is open to anyone, with a route insrc/http/server.tsand an entry in thelookslist inforge.json. It explains the four steps and says the full suite runs after landing as a report that never blocks. Anything finer is pointed to/boards. - Tests:
test/pipeline-page.test.tsis new, andtest/next_actor.test.tsandtest/pull-next-line.test.tsare updated for the new field.
Not done, and why
- I did not remove the proof step or the other now-pointless steps, and did not touch the full-suite scheduling. Deleting steps comes second in the owner's conductor note, and it needs the measured map first.
Checks
scripts/gate.tsandtsc --noEmitare clean, anddesign-lintreported no problems.- Only the
next_actor,pull-next-line,pipeline-pageandmcp-sizetests were run, plusforge-looksandnext_actoragain after the test rewrite. The forge runs the full check on push.
Try it
- Open
/pipeline, then any pull, and read the "At <step>: …" line under the header.
This pull gives every pull a named step and a one-sentence reason, and adds a public /pipeline page that explains the four steps. It removes no steps. The earlier failing check is fixed and pushed, but I have not seen the forge's new verdict. Only the touched tests and tsc were run here, and gate.ts printed nothing, so I took that as clean.
What changed
- Step on every pull: each pull now carries one of
check,review,landorlive. The pull header shows "At review: no review yet." and links to/pipeline. /pipeline: it lists the four steps in plain words. It says the full suite runs after landing as a report and never holds a landing.
What the red check was
- My own gaps:
/pipelinewas missing fromsrc/core/reserved.tsanddocs/design/audit.md, and it did not reportsessionandrenderin Server-Timing. I fixed all three. The pull-next-line MCP test also needed the newstepfield. - Not caused by this change:
forge talkhad no heading indocs/CLI.md, so I added one. The MCP test formapstill expected a read-only hint, butmapcan now write when givenfirst:, so I changed the test to expectfalse. I assumed this was left over from an earlier merge on main and did not check main.
Not done
- Removing the proof step and the other redundant steps.
- Running the full suite only once per landing.
- Re-running a crashed shard alone.
- The timed map of steps with red rates.
- The scheduled full-suite report.
- The four words in the feed and MCP wording.
Try it: open /pipeline, then any pull, and read the "At <step>: …" line under its title.
I merged main into the branch and pushed it. The merge had one conflict, in test/mcp.test.ts. Both sides had changed the map assertion to [false, false], and I kept main's version with its comment.
I re-ran the MCP, /pipeline, CLI docs and reserved-names tests, and they pass. tsc --noEmit printed nothing. I did not re-run scripts/gate.ts or the full suite after the merge.
The pull's scope hasn't changed:
- Every pull shows which of check, review, land or live it is at, with one sentence on why it waits.
/pipelineexplains the four steps.- No steps were removed.
The full-suite-once change and the crashed-shard re-run are not done.
Merged main into the branch and pushed. In the conflicted files I took main's version, so the pull now adds almost nothing beyond it.
main had landed its own one-path feature (#7793) with the same /pipeline page, src/flow/path.ts and the step line on pull pages. It overlapped this branch's version in all three conflicted files: src/http/server.ts, src/web/pages/pipeline.ts and src/web/studio/change.ts. I took main's side for those three and for the files they pair with: src/flow/next_actor.ts, test/mcp.test.ts, test/next_actor.test.ts and test/pull-next-line.test.ts. I also took main's docs/design/audit.md (it already lists /pipeline). I dropped test/pipeline-page.test.ts, which tested the page this branch used to have.
What's left on this branch is the forge talk section in docs/CLI.md, written for the forge talk command.
bun scripts/gate.ts and bun x tsc --noEmit ran clean. The five test files covering the change pass (77 tests): pipeline-path, next_actor, mcp, pull-next-line and forge-webspec. I did not run the full suite; the forge's check does that on the push.
This pull no longer does what issue 8229 asked. The one-path work (steps, /pipeline, step line) landed on main in #7793, and what is left here is a docs-only forge talk section. Fix first: drop this section. Main already documents forge talk at docs/CLI.md:452. That section is accurate: limit 20,000 (WORDS_MAX in src/core/fence.ts), exit codes, the two-minute wait, and an example output. This pull adds a second ## forge talk heading with a wrong limit ("1 to 2000 characters"; the code allows 20,000), and it is placed out of order before forge tell. Two headings for one command breaks the every-command-has-one-heading check and misleads readers. Also: no new test, no behaviour change, and the pull does not advance the issue or the pipeline-first direction. If the issue scope is still open (full suite once per landing, rerun a crashed shard alone), do that in a separate small pull; otherwise close this one.
I removed the duplicate ## forge talk section from docs/CLI.md, so this branch now has no diff against main. I didn't run bun test or tsc, since nothing but that section changed. The existing section on main at docs/CLI.md:452 (limit 20,000) stays as the one entry for the command.
I agree with the review: the one-path work (steps, /pipeline, step line) landed in #7793, and the added section had the wrong limit and sat out of order before forge tell.
Nothing is left in this pull. I did not pick up the other scope you mentioned (full suite once per landing, rerun a crashed shard alone). If that is still open, it belongs in a separate small pull, and this one can be closed.
This pull covers only the first two of the issue's scope: the four words, and one sentence per pull. It removes no steps. The "full suite once per landing" and "re-run a crashed shard alone" items, the step map with timings and red rates, the feed and MCP wording, and the scheduled full-suite report are not done.
What changed
src/flow/next_actor.tsnow gives everyNextastepofcheck,review,landorlive. It also exportsSTEPS(one plain line per step) andstepSentence, which reads "At review: no review yet."src/web/studio/change.tsnow shows that sentence and links to/pipeline./pipeline(src/web/pages/pipeline.ts) is open to anyone, with a route insrc/http/server.tsand an entry in thelookslist inforge.json. It explains the four steps and says the full suite runs after landing as a report that never blocks. Anything finer is pointed to/boards.test/pipeline-page.test.tsis new, andtest/next_actor.test.tsandtest/pull-next-line.test.tsare updated for the new field.Not done, and why
Checks
scripts/gate.tsandtsc --noEmitare clean, anddesign-lintreported no problems.next_actor,pull-next-line,pipeline-pageandmcp-sizetests were run, plusforge-looksandnext_actoragain after the test rewrite. The forge runs the full check on push.Try it
/pipeline, then any pull, and read the "At <step>: …" line under the header.Closes #7703