promote: release trigger delegation hook — honour a declared release.command instead of the built-in tag write-back #60
Labels
No labels
component:adapters
component:lifecycle
component:qa
component:setup
component:shared
component:worktrees
phase/accepted
phase/backlog
phase/deployed
phase/developing
phase/integrating
phase/planning
phase/qa
phase/requirements
phase/uat
priority:critical
priority:critical
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:bug
type:chore
type:docs
type:feature
type:infra
type:tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
jbr870/devwork-skills#60
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?
Problem
/dev:promote's documentedrelease:schema has no delegation hook for projects that owntheir release tooling. This repo is the live example: its
release:block declares— a field that is not in promote's schema, so it is read by the operator/model, not by the
skill. Nothing mechanical stops promote's built-in
tagstrategy from doing its own manifestwrite-back +
git tag, which on this repo would bypassscripts/release.sh's five refusals andfour gates (lint → audit-doc-structure →
claude plugin validate --stricton both roots →claude plugin tag --dry-run) and break its "sole writer of the two version fields" invariant.Every promote run here depends on a prose comment in CLAUDE.md being read correctly. That has
held for two releases (0.1.6, 0.2.0) but is exactly the shape of guarantee this suite exists to
replace.
Proposal
Add an optional
release.command(trigger-delegation) field to promote's documentedrelease:schema, honoured by the
tagstrategy:compute
{version}), then run the declared command with{version}substituted — skippingpromote's own manifest write-back,
git tag, and tag push.tag_onlyas today.only the trigger, never the monitoring or the record.
Evidence
release:block (theNOTE:besidecommand:) and the 2026-08-24promote handoff record on #50 (HANDOFF #6): "The missing delegation hook is a real suite gap."
Step 4 manually reduced — the workaround works but is convention, not contract.
Lane
Full pipeline (helper/skill behaviour + a documented schema change), not the meta lane.