You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As a release engineer for the org agent fleet,
I want have scripts/cut-release.sh recognize feature-ideation as a releasable agent with the next/ring0/ring1/stable channels, and document it in the versioning + runbook docs,
so that feature-ideation can be cut and promoted through the same canary/ring tag model as pr-review and dev-lead, so callers pin once to a channel and promotion/rollback is a single tag move.
Acceptance Criteria
valid_agent in scripts/cut-release.sh accepts feature-ideation (alongside pr-review and dev-lead) and rejects unknown agents unchanged; its usage/error strings list feature-ideation.
release_ref and channel_ref produce feature-ideation/vX.Y.Z and feature-ideation/<channel> correctly, and a --dry-run for feature-ideation prints the intended immutable + channel tag names without creating or pushing anything.
tests/test_cut_release.bats adds cases asserting feature-ideation is accepted and that release_ref/channel_ref format its tags correctly; the full bats file passes.
docs/release/versioning.md documents the feature-ideation agent: its channel set {next, ring0, ring1, stable}, and an explicit note that — unlike pr-review/dev-lead whose reusables live in this repo — feature-ideation's reusable lives in petry-projects/.github, so its release/channel tags are cut against that repo.
docs/release/runbook.md extends the 'Agents covered' line and the cut/promote/rollback examples to include feature-ideation.
shellcheck scripts/cut-release.sh passes with no new findings.
Tasks / Subtasks
Add feature-ideation to the valid_agent case statement and update the usage/error messages in scripts/cut-release.sh. (AC: test issue from agent #1)
Confirm release_ref/channel_ref are agent-name-agnostic (they printf the name) so no change is needed beyond valid_agent.
scripts/cut-release.sh structure: pure helpers (valid_agent, validate_version, release_ref, channel_ref) at top level (sourced by tests via a source-guard at the bottom), main() does the git tag/push. valid_agent currently matches pr-review | dev-lead only — add feature-ideation.
release_ref()/channel_ref() are name-agnostic (printf '%s/v%s' / printf '%s/%s'), so they already format feature-ideation tags once valid_agent allows the name.
CROSS-REPO WRINKLE: docs/release/versioning.md defines a 'release' as the reusable workflow PLUS the scripts it executes, moving together as one whole-repo commit — true for pr-review/dev-lead because those reusables live in THIS repo. feature-ideation's reusable lives in petry-projects/.github (see .github/workflows/feature-ideation.yml header: 'Reusable: petry-projects/.github/.github/workflows/feature-ideation-reusable.yml'), so feature-ideation's release/channel tags must be cut against petry-projects/.github, not this repo's origin. main() currently hardcodes git push origin. Suggested approach: add an optional remote/repo target (e.g. a --repo/remote arg) so feature-ideation tags push to petry-projects/.github; keep origin the default for pr-review/dev-lead. Do NOT bake the unresolved target mechanism into an AC — the dry-run (no mutation) is the testable surface here; confirm the target approach via the open question before wiring live pushes.
AGENTS.md 'Release channel tags & the mutable-ref exception' scopes the protective ruleset to pr-review/**, dev-lead/**. feature-ideation's channel tags live on petry-projects/.github, so the ruleset bounding them is created there (untracked prerequisite). Add a sentence to this section noting feature-ideation channel pins are the same sanctioned exception and that their ruleset lives in the public repo.
Testing standard: bats unit tests source cut-release.sh (source-guard prevents main() from running) and exercise only the pure helpers — keep the new cases at that level (no git-backed flow in tests, matching the existing file's note).
All touched files are in this repo: scripts/cut-release.sh, tests/test_cut_release.bats, docs/release/{versioning,runbook}.md, AGENTS.md. No new files. The only structural novelty is acknowledging an agent whose reusable lives in a different repo — captured as a documented cross-repo note rather than a structural change here.
Story
As a release engineer for the org agent fleet,
I want have scripts/cut-release.sh recognize feature-ideation as a releasable agent with the next/ring0/ring1/stable channels, and document it in the versioning + runbook docs,
so that feature-ideation can be cut and promoted through the same canary/ring tag model as pr-review and dev-lead, so callers pin once to a channel and promotion/rollback is a single tag move.
Acceptance Criteria
feature-ideation(alongside pr-review and dev-lead) and rejects unknown agents unchanged; its usage/error strings list feature-ideation.feature-ideation/vX.Y.Zandfeature-ideation/<channel>correctly, and a--dry-runfor feature-ideation prints the intended immutable + channel tag names without creating or pushing anything.Tasks / Subtasks
feature-ideationto the valid_agent case statement and update the usage/error messages in scripts/cut-release.sh. (AC: test issue from agent #1)Dev Notes
pr-review | dev-leadonly — addfeature-ideation.printf '%s/v%s'/printf '%s/%s'), so they already format feature-ideation tags once valid_agent allows the name.git push origin. Suggested approach: add an optional remote/repo target (e.g. a--repo/remote arg) so feature-ideation tags push to petry-projects/.github; keep origin the default for pr-review/dev-lead. Do NOT bake the unresolved target mechanism into an AC — the dry-run (no mutation) is the testable surface here; confirm the target approach via the open question before wiring live pushes.pr-review/**,dev-lead/**. feature-ideation's channel tags live on petry-projects/.github, so the ruleset bounding them is created there (untracked prerequisite). Add a sentence to this section noting feature-ideation channel pins are the same sanctioned exception and that their ruleset lives in the public repo.Project Structure Notes
All touched files are in this repo: scripts/cut-release.sh, tests/test_cut_release.bats, docs/release/{versioning,runbook}.md, AGENTS.md. No new files. The only structural novelty is acknowledging an agent whose reusable lives in a different repo — captured as a documented cross-repo note rather than a structural change here.
References
Likely target surface
scripts/cut-release.shtests/test_cut_release.batsdocs/release/versioning.mddocs/release/runbook.mdAGENTS.mdStory prepared by the BMAD Scrum Master (Bob) for epic #872. Status: ready-for-dev.