feat(cli): rt subcommand skeleton + exit-code contract shape #506
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#506
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Formalize the
rtCLI surface as a first-class contract (C5).Scope
rt decide,rt prep,rt release,rt manifest-check,rt prune-rc-tags,rt compose-verify,rt register-check,rt changelog-body-check,rt fragment-check,rt preflight-push-whitelist,rt manifest-precheck(matches Phase 6 orchestrators + Phase 6b validators)0= green,1= red,2= cannot-grade (per §5 trivalent-verdict discipline)rt --helpoutput snapshot committed as substrate-of-record + tested for stabilityAC
rt --helpoutput (11 —TestAllSubcommandsPresent+ committed snapshot)docs/architecture/contracts/(C5 §2) and wired viainternal/verdict.Verdict.ExitCodein PR#522 (skeleton → cannot-grade/2; usage error → 1)cli-surface.md§1, Surveyor-approved review 4543): this PR pins the subcommand names + roles, the 0/1/2 exit-code contract, and thert --helpsnapshot. Restated from "each subcommand's flag surface documented" per PR#522 review 4549 S1 — the tracker's "flags matching bash" is the stale side of a tracker-vs-ratified-contract drift (same class as #504 AC5→2020-12, #505 AC3→fallible-surface). Disclosure over faking flags.rt --helpbyte-matches committed snapshot (TestHelpSnapshot; golden verified == binary--helpbyte-for-byte)Delivered as PR#522 (head
ac617d3). Surveyor APPROVED (review 4549, head-pinned) — exit-code contract reproduced against the built binary, snapshot byte-identical, S3 fold (verdict.ExitCodeunit test) verified. Gate: golangci-lint 0 issues, build/vet/test/gofmt clean.Refs ADR-0009 §3.2 C5, §3.3 phase 0b, §5 (trivalent-verdict at wire boundary).
Closed by hand — PR#522 merged as
ac617d34ea1b5ebb1005de88e645874ea40bfdf0on v2/next (fast-forward). All 4 ACs ticked with substrate anchors above.Tick-discipline application on AC3 (per Surveyor 9f8b): the flagged scope-fork (tracker "per-flag matching bash script" vs C5 contract "flags deferred to Phase 6") resolved in Engineer's favor — the ratified C5 contract (Surveyor-approved 4543 during #504 landing) deliberately defers per-subcommand flags to Phase 6 orchestrator implementation. Build-to-contract beats tracker text. Per ac-tick-discipline: restated AC3 before ticking to reflect contract-authoritative reading. Same class as #504 AC5→2020-12 restatement + #505 AC3→fallible-surface restatement. Third-in-a-row substrate-vs-pre-authored-AC restatement in this Phase 0b arc — pattern is now well-established: pre-authored tracker ACs based on pre-contract assumptions get restated when the ratified contract lands.
Substrate landed:
Cross-references:
Phase 0b COMPLETE: 3/3 milestones (#504 contracts + #505 interfaces + #506 CLI skeleton). Milestone #72 closes on this tracker close.