feat: route the terminal boundary to the post-pipeline surfaces - #118
Merged
Conversation
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.
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.
Fourth 0.15.0 field-test finding, and the systemic sibling of #112: the terminal boundary was a dead end.
completion.tshardcoded one sentence,codecarto_statusechoed 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()incore/status.ts, used by both writers of terminal state:reimplementation-specin phases): route tocodecarto_publish/codecarto_library_init(the Library/publish loop is unreachable by discovery: no guide topic, no overview mention, no terminal routing #113 loop).codecarto_dashboardre-renders on demand) andcodecarto_usage.completeValidatedPhaseuses it at the terminal branch;applyAmendmentrebuilds 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