Feature Promotion Lifecycle
Canonical variable model and 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-First Execution Rule
When the MCP server (drm-copilot) is reachable, execute the lifecycle through the MCP tool surface first.
Canonical MCP tool invocations:
- feature potential entry:
mcp__drm-copilot__new_potential_entry with {"short_name": "${short-name}"}
- bug potential entry:
mcp__drm-copilot__new_potential_bug_entry with {"short_name": "${short-name}"}
- potential-to-issue promotion:
mcp__drm-copilot__potential_to_issue with {"potential_path": "${relativeFile}", "promotion_type": "${promotion-type}", "work_mode": "${work-mode}"}
- active feature folder creation:
mcp__drm-copilot__new_active_feature_folder with {"feature_name": "${long-name}", "type": "${promotion-type}", "issue_number": "${issue-num}", "work_mode": "${work-mode}"}
Documented alternatives:
- VS Code extension commands (via
vscode/runCommand): use when MCP server is unreachable but the VS Code extension command surface is available.
- Direct script/CLI commands: use only when neither MCP nor VS Code extension commands are available.
- When falling back, preserve the same variable model, flags, and work-mode semantics.
Canonical Variables
${promotion-type}: feature or bug
${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, or full-bug (legacy full is accepted only as an alias for full-feature)
${short-path-flag}: --work-mode minor-audit (mandatory for short-path promotion/folder creation)
Canonical Fallback Command Sequence
- Create potential entry by type:
- feature:
VS Code command: drm-copilot: New Potential Entry(command ID:drmCopilotExtension.newPotentialEntry) -ShortName ${short-name}
- bug:
VS Code command: drm-copilot: New Potential Bug Entry(command ID:drmCopilotExtension.newPotentialBugEntry) --short-name ${short-name}
- Promote potential doc:
VS Code command: drm-copilot: Potential To Issue(command ID:drmCopilotExtension.potentialToIssue) --potential-path ${relativeFile} --promotion-type ${promotion-type} --work-mode ${work-mode}
- Create branch:
${promotion-type}/${short-name}-${issue-num}
- Create active feature folder:
VS Code command: drm-copilot: New Active Feature Folder(command ID:drmCopilotExtension.newActiveFeatureFolder) --feature-name ${long-name} --type ${promotion-type} --issue-number ${issue-num} --work-mode ${work-mode}
Canonical Fallback Short-Path Sequence (Minor Audit Mode)
When orchestrator routing selects short path, promotion/folder initialization still occurs and MUST use minor-audit mode.
- Promote potential doc with short-path flag:
VS Code command: drm-copilot: Potential To Issue(command ID:drmCopilotExtension.potentialToIssue) --potential-path ${relativeFile} --promotion-type ${promotion-type} --work-mode minor-audit
- Create branch:
${promotion-type}/${short-name}-${issue-num}
- Create active feature folder with short-path flag:
VS Code command: drm-copilot: New Active Feature Folder(command ID:drmCopilotExtension.newActiveFeatureFolder) --feature-name ${long-name} --type ${promotion-type} --issue-number ${issue-num} --work-mode minor-audit
3a) Verify minor-audit folder integrity before proceeding:
${feature-folder}/issue.md exists and contains - Work Mode: minor-audit
${feature-folder}/issue.md contains an explicit ## Acceptance Criteria section
${feature-folder}/spec.md does not exist
${feature-folder}/user-story.md does not exist
- if any check fails, stop and remediate before planning
- Delegate minimal-audit plan creation to
atomic_planner with directive:
DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED
4a) Resolve and persist ${plan-path} before delegation:
- reuse the earliest existing
plan*.md in ${feature-folder} when present
- otherwise create exactly one canonical plan file path and reuse it for all revisions
- Require preflight validation via
atomic_executor until:
Execute plan Phase 0 only via executor and checkpoint evidence.
Branch:
- manual bootstrap: save state and stop ONLY when the initial user request explicitly opted into manual orchestration from the beginning,
- non-bootstrap: continue with constrained small-path development.
Automation rule:
- do not introduce manual bootstrap, human-operator validation, or any other manual handoff later in orchestration unless that initial explicit opt-in exists
- if automation cannot proceed, record blocked automated state instead of asking for manual intervention
- 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 explicit NONE)
- latest research artifact path(s)
- constraints/APIs/invariants to preserve
Mode-aware expectations:
- For
minor-audit, the explicit ## Acceptance Criteria section in issue.md is the primary acceptance-criteria source and spec.md/user-story.md may be intentionally absent by design.
- For
minor-audit, do not infer acceptance criteria from other issue.md sections such as verification notes, next steps, or severity checklists.
- For
minor-audit, spec.md/user-story.md must be treated as integrity failures when they appear unexpectedly in the active folder.
- For
full-feature, spec.md and user-story.md are expected alongside issue.md.
- For
full-bug, spec.md is expected alongside issue.md; user-story.md should be absent unless the requirements explicitly justify it.
Selected-mode persistence requirements:
- Producer outputs MUST persist exactly one marker in
issue.md metadata 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
full path is accepted, tooling MUST normalize it to full-feature before persistence.
- If a requested
minor-audit path is rejected by eligibility checks, tooling MUST fail closed to full-feature, emit fallback reason, and persist - Work Mode: full-feature.
1---2name: feature-promotion-lifecycle-53description: Deterministic promotion workflow from potential feature/bug entry to issue, branch, active feature folder, and downstream spec/research handoffs. Prefer MCP server (drm-copilot) tool invocations when the MCP server is reachable; use underlying scripts only as fallback.4---56# Feature Promotion Lifecycle78Canonical variable model and command sequence for promoting potential feature/bug entries and initializing active feature delivery.910## When to Use This Skill1112Use this skill when:13- A large-scope change requires feature/bug promotion workflow.14- A short-path workflow still requires promotion/folder initialization before delegated implementation.15- An orchestrator must create potential docs, promote to issue, branch, and active feature folder.16- Downstream research/spec agents depend on deterministic paths and identifiers.1718## MCP-First Execution Rule1920When the MCP server (`drm-copilot`) is reachable, execute the lifecycle through the MCP tool surface first.2122Canonical MCP tool invocations:23- feature potential entry: `mcp__drm-copilot__new_potential_entry` with `{"short_name": "${short-name}"}`24- bug potential entry: `mcp__drm-copilot__new_potential_bug_entry` with `{"short_name": "${short-name}"}`25- potential-to-issue promotion: `mcp__drm-copilot__potential_to_issue` with `{"potential_path": "${relativeFile}", "promotion_type": "${promotion-type}", "work_mode": "${work-mode}"}`26- active feature folder creation: `mcp__drm-copilot__new_active_feature_folder` with `{"feature_name": "${long-name}", "type": "${promotion-type}", "issue_number": "${issue-num}", "work_mode": "${work-mode}"}`2728Documented alternatives:29- VS Code extension commands (via `vscode/runCommand`): use when MCP server is unreachable but the VS Code extension command surface is available.30- Direct script/CLI commands: use only when neither MCP nor VS Code extension commands are available.31- When falling back, preserve the same variable model, flags, and work-mode semantics.3233## Canonical Variables3435- `${promotion-type}`: `feature` or `bug`36- `${short-name}`: lowercase slug, hyphen-separated37- `${relativeFile}`: workspace-relative path to created potential entry markdown38- `${long-name}`: `${relativeFile}` filename without `.md`39- `${issue-num}`: promoted GitHub issue number40- `${feature-folder}`: active feature folder path41- `${plan-path}`: single canonical plan file path reused across planning and preflight revisions42- `${work-mode}`: `minor-audit`, `full-feature`, or `full-bug` (legacy `full` is accepted only as an alias for `full-feature`)43- `${short-path-flag}`: `--work-mode minor-audit` (mandatory for short-path promotion/folder creation)4445## Canonical Fallback Command Sequence46471) Create potential entry by type:48- feature: `VS Code command: `drm-copilot: New Potential Entry` (command ID: `drmCopilotExtension.newPotentialEntry`) -ShortName ${short-name}`49- bug: `VS Code command: `drm-copilot: New Potential Bug Entry` (command ID: `drmCopilotExtension.newPotentialBugEntry`) --short-name ${short-name}`50512) Promote potential doc:52- `VS Code command: `drm-copilot: Potential To Issue` (command ID: `drmCopilotExtension.potentialToIssue`) --potential-path ${relativeFile} --promotion-type ${promotion-type} --work-mode ${work-mode}`53543) Create branch:55- `${promotion-type}/${short-name}-${issue-num}`56574) Create active feature folder:58- `VS Code command: `drm-copilot: New Active Feature Folder` (command ID: `drmCopilotExtension.newActiveFeatureFolder`) --feature-name ${long-name} --type ${promotion-type} --issue-number ${issue-num} --work-mode ${work-mode}`5960## Canonical Fallback Short-Path Sequence (Minor Audit Mode)6162When orchestrator routing selects short path, promotion/folder initialization still occurs and MUST use `minor-audit` mode.63641) Promote potential doc with short-path flag:65- `VS Code command: `drm-copilot: Potential To Issue` (command ID: `drmCopilotExtension.potentialToIssue`) --potential-path ${relativeFile} --promotion-type ${promotion-type} --work-mode minor-audit`66672) Create branch:68- `${promotion-type}/${short-name}-${issue-num}`69703) Create active feature folder with short-path flag:71- `VS Code command: `drm-copilot: New Active Feature Folder` (command ID: `drmCopilotExtension.newActiveFeatureFolder`) --feature-name ${long-name} --type ${promotion-type} --issue-number ${issue-num} --work-mode minor-audit`72733a) Verify minor-audit folder integrity before proceeding:74- `${feature-folder}/issue.md` exists and contains `- Work Mode: minor-audit`75- `${feature-folder}/issue.md` contains an explicit `## Acceptance Criteria` section76- `${feature-folder}/spec.md` does not exist77- `${feature-folder}/user-story.md` does not exist78- if any check fails, stop and remediate before planning79804) Delegate minimal-audit plan creation to `atomic_planner` with directive:81- `DIRECTIVE: MINIMAL-AUDIT PLAN REQUIRED`82834a) Resolve and persist `${plan-path}` before delegation:84- reuse the earliest existing `plan*.md` in `${feature-folder}` when present85- otherwise create exactly one canonical plan file path and reuse it for all revisions86875) Require preflight validation via `atomic_executor` until:88- `PREFLIGHT: ALL CLEAR`89906) Execute plan Phase 0 only via executor and checkpoint evidence.91927) Branch:93- manual bootstrap: save state and stop ONLY when the initial user request explicitly opted into manual orchestration from the beginning,94- non-bootstrap: continue with constrained small-path development.9596Automation rule:97- do not introduce manual bootstrap, human-operator validation, or any other manual handoff later in orchestration unless that initial explicit opt-in exists98- if automation cannot proceed, record blocked automated state instead of asking for manual intervention991008) Validate delivery via executor against `issue.md`, then run reduced audit/remediation loop until ready-to-merge.101102## Required Outputs for Downstream Handoffs103104Before delegating research/spec/planning, provide:105- `${feature-folder}/issue.md`106- `${feature-folder}/spec.md` (or expected target path)107- `${feature-folder}/user-story.md` (or explicit `NONE`)108- latest research artifact path(s)109- constraints/APIs/invariants to preserve110111Mode-aware expectations:112- For `minor-audit`, the explicit `## Acceptance Criteria` section in `issue.md` is the primary acceptance-criteria source and `spec.md`/`user-story.md` may be intentionally absent by design.113- For `minor-audit`, do not infer acceptance criteria from other `issue.md` sections such as verification notes, next steps, or severity checklists.114- For `minor-audit`, `spec.md`/`user-story.md` must be treated as integrity failures when they appear unexpectedly in the active folder.115- For `full-feature`, `spec.md` and `user-story.md` are expected alongside `issue.md`.116- For `full-bug`, `spec.md` is expected alongside `issue.md`; `user-story.md` should be absent unless the requirements explicitly justify it.117118Selected-mode persistence requirements:119- Producer outputs MUST persist exactly one marker in `issue.md` metadata above the first `##` heading:120 - `- Work Mode: minor-audit`121 - `- Work Mode: full-feature`122 - `- Work Mode: full-bug`123- Persisted marker MUST represent selected mode after eligibility checks, not requested mode.124- If a legacy requested `full` path is accepted, tooling MUST normalize it to `full-feature` before persistence.125- If a requested `minor-audit` path is rejected by eligibility checks, tooling MUST fail closed to `full-feature`, emit fallback reason, and persist `- Work Mode: full-feature`.