Feature Promotion Lifecycle
Canonical variable model and MCP-only command sequence for promoting potential feature/bug entries and initializing active feature delivery.
When to Use This Skill
Use this skill when:
- A large-scope change requires feature/bug promotion workflow.
- A short-path workflow still requires promotion/folder initialization before delegated implementation.
- An orchestrator must create potential docs, promote to issue, branch, and active feature folder.
- Downstream research/spec agents depend on deterministic paths and identifiers.
MCP Tool Availability Preflight
Before any promotion step starts, verify that the required drm-copilot MCP tools are available in the current agent session.
Required MCP tool set:
- feature potential entry:
mcp__drm-copilot__new_potential_entrywithshort_name=${short-name} - bug potential entry:
mcp__drm-copilot__new_potential_bug_entrywithshort_name=${short-name} - potential-to-issue promotion:
mcp__drm-copilot__potential_to_issuewithpotential_path=${relativeFile},promotion_type=${promotion-type},work_mode=${work-mode} - active feature folder creation:
mcp__drm-copilot__new_active_feature_folderwithfeature_name=${long-name},type=${promotion-type},issue_number=${issue-num},work_mode=${work-mode}
If the required MCP tools are unavailable, stop before potential-entry creation, issue promotion, or active-folder creation begins. Restore MCP connectivity first. Agent sessions do not have an approved non-MCP execution branch for promotion work.
Agent-Session Promotion Execution Rule
Execute the lifecycle only through the MCP tool forms listed above. The MCP path is the sole authoritative execution path for agent sessions.
After each successful promotion operation, persist the raw MCP receipt payload under the matching checkpoint key in artifacts/orchestration/orchestrator-state.json:
delegation_receipts.promotion.potential_entrydelegation_receipts.promotion.issuedelegation_receipts.promotion.feature_folder
Each delegation_receipts.promotion.* field stores the raw MCP receipt payload returned by the corresponding promotion operation without lossy normalization.
Note: VS Code command-palette commands may exist for interactive extension use, but this note is non-authoritative for agent sessions.
Canonical Variables
${promotion-type}:featureorbug${short-name}: lowercase slug, hyphen-separated${relativeFile}: workspace-relative path to created potential entry markdown${long-name}:${relativeFile}filename without.md${issue-num}: promoted GitHub issue number${feature-folder}: active feature folder path${plan-path}: single canonical plan file path reused across planning and preflight revisions${work-mode}:minor-audit,full-feature, orfull-bug(legacyfullis accepted only as an alias forfull-feature)${short-path-flag}:--work-mode minor-audit(mandatory for short-path promotion/folder creation)
When orchestrator routing selects short path, promotion/folder initialization still occurs and MUST use minor-audit mode.
Use the same MCP tool-availability preflight described above and continue only when the required promotion tools are available.
Promote the potential document through
mcp__drm-copilot__potential_to_issuewithwork_mode=minor-audit.Create branch:
${promotion-type}/${short-name}-${issue-num}
- Create the active feature folder through
mcp__drm-copilot__new_active_feature_folderwithwork_mode=minor-audit.
4a) Verify minor-audit folder integrity before proceeding:
${feature-folder}/issue.mdexists and contains- Work Mode: minor-audit${feature-folder}/issue.mdcontains an explicit## Acceptance Criteriasection${feature-folder}/spec.mddoes not exist${feature-folder}/user-story.mddoes not exist- the promoted record under
docs/features/potential/promoted/is still present (see 4b) - if any check fails, stop and remediate before planning
4b) Verify the promoted record was retained after new_active_feature_folder:
- the promoted file the earlier
potential_to_issuestep reported as itsdestination_pathmust still exist underdocs/features/potential/promoted/ new_active_feature_folderCOPIES a promoted source into the active folder asissue.md; it MOVES a source resolved fromdocs/features/potential/directly. An absent promoted record after a promoted-source run is a defect, not expected cleanup (issue #487).- this check applies to every work mode, not only
minor-audit
- Delegate minimal-audit plan creation to
atomic_plannerwith directive:
DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED
5a) Resolve and persist ${plan-path} before delegation:
- reuse the earliest existing
plan*.mdin${feature-folder}when present - otherwise create exactly one canonical plan file path and reuse it for all revisions
- Require preflight validation via
atomic_executoruntil:
PREFLIGHT: ALL CLEAR
Execute plan Phase 0 only via executor and checkpoint evidence.
Branch:
- manual bootstrap: save state and stop,
- non-bootstrap: continue with constrained small-path development.
- Validate delivery via executor against
issue.md, then run reduced audit/remediation loop until ready-to-merge.
Required Outputs for Downstream Handoffs
Before delegating research/spec/planning, provide:
${feature-folder}/issue.md${feature-folder}/spec.md(or expected target path)${feature-folder}/user-story.md(or explicitNONE)- latest research artifact path(s)
- constraints/APIs/invariants to preserve
Mode-aware expectations:
- For
minor-audit, the explicit## Acceptance Criteriasection inissue.mdis the primary acceptance-criteria source andspec.md/user-story.mdmay be intentionally absent by design. - For
minor-audit, do not infer acceptance criteria from otherissue.mdsections such as verification notes, next steps, or severity checklists. - For
minor-audit,spec.md/user-story.mdmust be treated as integrity failures when they appear unexpectedly in the active folder. - For
full-feature,spec.mdanduser-story.mdare expected alongsideissue.md. - For
full-bug,spec.mdis expected alongsideissue.md;user-story.mdshould be absent unless the requirements explicitly justify it.
Selected-mode persistence requirements:
- Producer outputs MUST persist exactly one marker in
issue.mdmetadata above the first##heading:- Work Mode: minor-audit- Work Mode: full-feature- Work Mode: full-bug
- Persisted marker MUST represent selected mode after eligibility checks, not requested mode.
- If a legacy requested
fullpath is accepted, tooling MUST normalize it tofull-featurebefore persistence. - If a requested
minor-auditpath is rejected by eligibility checks, tooling MUST fail closed tofull-feature, emit the downgrade reason, and persist- Work Mode: full-feature.