Skip to content

/ca:release: implement a real --dry-run, or the capability stays undocumented #565

Description

@SUaDtL

Split out of #563. plugins/ca/commands/release.md currently documents three arguments the skill it routes to has never implemented:

argument-hint: ["<version>"] | --auto | --dry-run

The skill's only argument is the target plugin. --auto, --dry-run, and an explicit <version> appear nowhere in plugins/ca/skills/release/SKILL.md — they are fossils of the portable pre-#125 version of the skill.

#563 reconciles the command surface to the skill, which means deleting those three from the documentation. That is correct as documentation hygiene, but --dry-run in particular describes something genuinely useful that a user may have tried and assumed was broken rather than absent: run every gate, surface the readiness report, compose no tag.

This issue tracks implementing it for real rather than letting the capability disappear silently.

Shape

The skill already has a natural stopping point. Pre-flight plus Phase 1 derive the version, classify every commit in the payload-scoped window, and validate the changelog footers — all read-only. Phase 2 is where the annotated tag is composed. A dry run is therefore "execute through Phase 1, emit the report, STOP before composing."

Worth deciding at implementation time, not now:

  • whether pre-tag check commands run in a dry run (they are non-mutating by DECISION-0034, so probably yes)
  • whether it reports the resolved row for the target, which would double as a way to validate a freshly authored .codearbiter/release-targets.md without tagging anything
  • whether it belongs as a flag or as a separate read-only command

Dependency

Blocked on #563 landing. Implementing a dry run against the current hardcoded lane would have to be rewritten immediately for the declared-file lane.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestsev:lowTribunal/triage: low severity

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions