Skip to content

feat: route the terminal boundary to the post-pipeline surfaces - #118

Merged
TheAmericanMaker merged 1 commit into
mainfrom
feat/terminal-next-actions
Aug 18, 2026
Merged

feat: route the terminal boundary to the post-pipeline surfaces#118
TheAmericanMaker merged 1 commit into
mainfrom
feat/terminal-next-actions

Conversation

@TheAmericanMaker

Copy link
Copy Markdown
Member

Fourth 0.15.0 field-test finding, and the systemic sibling of #112: the terminal boundary was a dead end. completion.ts hardcoded one sentence, codecarto_status echoed it forever, and none of the post-pipeline surfaces (skills, amend, publish, dashboard, usage) were ever named at the one moment they all apply.

Change

buildTerminalNextActions() in core/status.ts, used by both writers of terminal state:

completeValidatedPhase uses it at the terminal branch; applyAmendment rebuilds it after closures, so an amendment that closes the last open question also removes the amend routing line — stored status can't show stale counts.

Tests

New tests/terminal-next-actions.test.mjs: unit rules for each surface's presence condition (no amend line when nothing pending, no publish line without a spec phase), plus integration — completion writes the routed list with live counts (1 open question(s) and 1 post-pipeline item(s)), and an amendment closing everything drops the amend line.

Full suite 340/340; build green. Existing workspaces keep their stored text until their next completion or amendment writes the new list.

Closes #114.

🤖 Generated with Claude Code

Completing the last phase set one static sentence ("Review findings, open
questions, and downstream implementation notes") that named nothing
actionable, and codecarto_status echoed it forever. At exactly that moment
the workspace has gated skills, an amendment channel for its open
questions, a publishable spec, a dashboard, and a usage log - the 0.15.0
field test finished two full runs with every one of them unused (issue
#114; the framework's own design rule says prose-only instructions get
skipped).

buildTerminalNextActions() (core/status.ts) now builds the complete-state
next_actions dynamically: the skills surface always; codecarto_amend with
live open-question/post-pipeline counts when work is pending; codecarto_publish
when the pipeline produced a reimplementation-spec; the dashboard and usage
surfaces last. Completion uses it at the terminal branch, and applyAmendment
rebuilds it after closures so the counts in stored status never go stale.

Tests: unit coverage for each routing rule's presence condition, plus an
integration pass proving completion writes the routed list with live counts
and an amendment closing the pending work drops the amend line.

Closes #114.
@TheAmericanMaker
TheAmericanMaker merged commit 893fa61 into main Aug 18, 2026
5 checks passed
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.

Terminal completion is a dead end: next_actions never names skills, amend, publish, dashboard, or usage

1 participant