Skip to content

feat: show the release cut in the launch preview and retire changelog - #918

Merged
12 commits merged into
mainfrom
feat/verb-split-3-launch-preview
Oct 11, 2026
Merged

12 commits merged into
mainfrom
feat/verb-split-3-launch-preview

Conversation

@REPPL

@REPPL REPPL commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator

Step 3 of spc-2610100613109045: launch previews the release cut, and the changelog verb goes.

Stacked on #913 (step 2). Until that merges, this diff shows step 2's commits too.

  • The preview: abcd launch --dry-run shows the release cut after its bundle report. It uses the same code launch ship uses (emitCut, renderCut). In --json the bundle report keeps its shape and gains cut, or cut_error when the cut cannot be read. A refused cut never changes the exit code.
  • Where it runs: the dry run now reads from the checkout root, so it works from a subdirectory, as abcd changelog did. When the cut is read, the targeted intents print once, from the cut.
  • The old verb: abcd changelog is an unknown command (exit 2). Its note names abcd launch --dry-run. Its placement, sentence, CLI-only note and DOGFOODING recall entry are gone.
  • The release changelog composer: the agent's page now names the preview's cut as its read-only source, at prompt_version 0.4.3, with an agents changelog entry.
  • The brief: brief and generated pages are updated. That includes the list of names retired with no alias, and the snapshot and CLI reference are regenerated.

New tests: TestLaunchDryRunRendersTheCut (ready and refused cuts, text and JSON) and TestChangelogIsAnUnknownCommand, both watched fail first. The changelog command's tests moved onto the preview with the same properties. No test was retired.

A repository that declares no artefact kind gets the dry run's existing refusal before any cut, so it no longer has a read-only cut preview. launch ship still cuts there. This follows from the spec's decision to merge the preview into launch.

Refs: itd-2610090831227812

Assisted-by: Claude:claude-opus-5-5

REPPL added 12 commits October 11, 2026 01:31
Bare abcd, its markdown form and --json now carry the installed version,
read from the same core.VersionInfo that abcd --version reports, with no
network and no subprocess. The version is the last line of both views and
both forms, a list item in markdown so the fence rule holds, and --json
gains a version field. The first line stays the view label alone.

Step 2 of spc-2610100613109045 (decision 4).

Assisted-by: Claude:claude-opus-5-5
commands/version.md goes with no alias (adr-40): the board's last line
names the installed version, and the board page now carries what an
agent still needed from the version page: running abcd --version for
the install mode, vintage and staleness, saying a superseded root
first, and recovering when no binary resolves. abcd --version is
untouched.

abcd version stays an unknown command. Its note now names the root
flag and the board from a retiredTokens set, since it no longer has a
page to sit in pagesWithNoVerb. The brief folds 12-version.md into
08-abcd.md's new section on the version, drops register row 12 and the
index entry, and repoints the links that named the chapter. The
release-gate manifest drops the chapter and the page, with its checker
count, prompt hash and the receipt example rehashed. README points a
new install at the board.

Step 2 of spc-2610100613109045.

Assisted-by: Claude:claude-opus-5-5
The version page retired in the previous commit, so the comment on the
root-flag sentence names it in the past tense. The generic sentence stays
for any surface that ships as a root flag.

Assisted-by: Claude:claude-opus-5-5
The README tells a new install that the board's last line names the
installed version, and its own sample board ended on the count line.

Refs: itd-2610090831227812

Assisted-by: Claude:claude-opus-5-5
The version page held adr-38's list of every command that reaches the
network, and retiring the page left it on no page. The update page is
where the release origin is already reached, so the list moves there.

Refs: itd-2610090831227812

Assisted-by: Claude:claude-opus-5-5
abcd launch --dry-run now renders the cut the next launch ship would
make beside its bundle report: the derived version, the deciding
impact, the records, the guard and findings verdicts, in text under its
own line and in --json under a new cut key (cut_error when it cannot be
read). It is the same deterministic emit and render the changelog verb
used, with no prose and no agent. A refused cut is reported and changes
nothing about the dry run's exit.

The changelog verb goes with no alias (adr-40). abcd changelog is an
unknown command whose note names abcd launch --dry-run. Its placement,
sentence, parity note and DOGFOODING recall entry go with it, and its
tests move onto the preview: the tree-digest check, the refused cut
still exiting 0, the JSON, the page set, the uncommitted-records
refusal and the subdirectory read.

The dry run now reads the checkout root wherever it is run, as the cut
always has. Before, from a subdirectory it read the subdirectory as a
repository that declares no artefact kind and refused before reaching
the cut, which would have lost the subdirectory read the changelog verb
had. The dry run's own targeted lines are dropped when the cut is read,
because the cut lists the same intents and says which ones it moves.

The pages, the composer agent, the brief and the principle that named
the verb now name the preview. The launch chapter no longer says the
preview always exits 0 (a peer finding): a --baseline that names no
release tag exits 2, and an undeclared kind or a missing payload is
refused.

Step 3 of spc-2610100613109045.

Assisted-by: Claude:claude-opus-5-5
Refs: itd-2610090831227812

Assisted-by: Claude:claude-opus-5-5
Step 3 repointed the composer's preview source at the launch preview's cut
without the prompt_version bump and agents changelog entry record-lint's
agent_contract rule requires. It also adds changelog to the brief's list
of names retired with no alias.

Refs: itd-2610090831227812

Assisted-by: Claude:claude-opus-5-5
@REPPL
REPPL enabled auto-merge October 11, 2026 05:13
@REPPL
REPPL added this pull request to the merge queue Oct 11, 2026
@REPPL
REPPL removed this pull request from the merge queue due to a manual request Oct 11, 2026
@github-merge-queue github-merge-queue Bot closed this pull request by merging all changes into main in 4700d60 Oct 11, 2026
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