返回 Skill 列表
extension
分类: AI Agent 能力无需 API Key

manage-lifecycle

使用status.toon和阶段操作管理计划生命周期

person作者: jakexiaohubgithub

Manage Lifecycle Skill

Manage plan lifecycle with status.toon and phase operations. Replaces plan.md and absorbs phase-management skill functionality.

What This Skill Provides

  • Status.toon CRUD operations
  • Phase management (transitions, progress)
  • Plan discovery (list all plans)
  • Phase routing (skill mapping)
  • Delete operations (via manage-files)
  • Archive operations

When to Activate This Skill

Activate this skill when:

  • Creating or updating plan status
  • Transitioning between phases
  • Discovering all plans
  • Deleting plans (to replace or abandon)
  • Archiving completed plans

Storage Location

Status is stored in the plan directory:

.plan/plans/{plan_id}/status.toon

Archived plans:

.plan/archived-plans/{yyyy-mm-dd}-{plan-name}/

File Format

TOON format with phases table:

title: Implement JWT Authentication
current_phase: 4-execute

phases[5]{name,status}:
1-init,done
2-outline,done
3-plan,done
4-execute,in_progress
5-finalize,pending

created: 2025-12-02T10:00:00Z
updated: 2025-12-02T14:30:00Z

Status Fields

| Field | Description | |-------|-------------| | title | Plan title | | current_phase | Current active phase | | phases | Table of phase names and statuses | | created | ISO timestamp when created | | updated | ISO timestamp of last update |

Note: Domain information is stored in config.toon (as a domains array), not in status.toon.

Phase Statuses

| Status | Meaning | |--------|---------| | pending | Not started | | in_progress | Currently active | | done | Completed |


Status Operations

Script: pm-workflow:manage-lifecycle:manage-lifecycle

read

Read plan status.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle read \
  --plan-id {plan_id}

Output (TOON):

status: success
plan_id: my-feature

plan:
  title: Implement JWT Authentication
  current_phase: 4-execute
  phases[5]{name,status}:
  1-init,done
  2-outline,done
  3-plan,done
  4-execute,in_progress
  5-finalize,pending

create

Initialize status.toon for a new plan.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle create \
  --plan-id {plan_id} \
  --title "Feature Title" \
  --phases 1-init,2-outline,3-plan,4-execute,5-finalize \
  [--force]

Parameters:

  • --plan-id (required): Plan identifier (kebab-case)
  • --title (required): Plan title
  • --phases (required): Comma-separated phase names
  • --force: Overwrite existing status.toon

Output (TOON):

status: success
plan_id: my-feature
file: status.toon
created: true

plan:
  title: Feature Title
  current_phase: 1-init

set-phase

Set the current phase.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle set-phase \
  --plan-id {plan_id} \
  --phase 4-execute

Output (TOON):

status: success
plan_id: my-feature
current_phase: 4-execute
previous_phase: 3-plan

update-phase

Update a specific phase status.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle update-phase \
  --plan-id {plan_id} \
  --phase 1-init \
  --status done

Output (TOON):

status: success
plan_id: my-feature
phase: 1-init
phase_status: done

progress

Calculate plan progress.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle progress \
  --plan-id {plan_id}

Output (TOON):

status: success
plan_id: my-feature

progress:
  total_phases: 5
  completed_phases: 3
  current_phase: 4-execute
  percent: 60

Phase Management Operations

list

Discover all plans.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle list \
  [--filter 1-init,4-execute]

Parameters:

  • --filter: Filter by phases (comma-separated)

Output (TOON):

status: success
total: 2
plans:
  - id: my-feature
    current_phase: 4-execute
    status: in_progress
  - id: bug-fix-123
    current_phase: 1-init
    status: in_progress

transition

Transition to next phase.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle transition \
  --plan-id {plan_id} \
  --completed 1-init

Output (TOON):

status: success
plan_id: my-feature
completed_phase: 1-init
next_phase: 2-outline

archive

Archive a completed plan.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle archive \
  --plan-id {plan_id} \
  [--dry-run]

Output (TOON):

status: success
plan_id: my-feature
archived_to: .plan/archived-plans/2025-12-02-my-feature/

Delete Operations

Delete operations use pm-workflow:manage-files:manage-files (not manage-lifecycle) because deletion involves removing plan directories, not just status management.

delete-plan

Delete an entire plan directory. Use when:

  • Replacing an existing plan with a fresh one
  • Abandoning a plan that's no longer needed
  • Cleaning up failed or corrupted plans
python3 .plan/execute-script.py pm-workflow:manage-files:manage-files delete-plan \
  --plan-id {plan_id}

Parameters:

  • --plan-id (required): Plan identifier to delete

Output (TOON):

status: success
plan_id: my-feature
action: deleted
path: .plan/plans/my-feature
files_removed: 7

Error Output:

status: error
plan_id: my-feature
error: plan_not_found
message: Plan directory does not exist

Safety Notes:

  • Only deletes directories under .plan/plans/
  • Validates plan_id format (kebab-case)
  • Does NOT prompt for confirmation (caller handles user confirmation)
  • Cannot be undone - ensure user confirms before calling

Delete vs Archive

| Operation | Use Case | Recoverable | |-----------|----------|-------------| | delete-plan | Replace, abandon, cleanup | No | | archive | Completed plans for reference | Yes (moved to archived-plans) |


route

Get skill for a phase.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle route \
  --phase 4-execute

Parameters:

  • --phase (required): Phase name (e.g., 1-init, 2-outline, 3-plan, 4-execute, 5-finalize)

Output (TOON):

status: success
phase: 4-execute
skill: plan-execute
description: Execute implementation tasks

get-routing-context

Get combined routing context (phase, skill, and progress) in one call.

python3 .plan/execute-script.py pm-workflow:manage-lifecycle:manage-lifecycle get-routing-context \
  --plan-id {plan_id}

Parameters:

  • --plan-id (required): Plan identifier

Output (TOON):

status: success
plan_id: my-feature
title: Implement JWT Authentication
current_phase: 4-execute
skill: plan-execute
skill_description: Execute implementation tasks
total_phases: 5
completed_phases: 3
phases:
  - name: 1-init
    status: done
  - name: 2-outline
    status: done
  - name: 3-plan
    status: done
  - name: 4-execute
    status: in_progress
  - name: 5-finalize
    status: pending

Scripts

Script: pm-workflow:manage-lifecycle:manage-lifecycle

| Command | Parameters | Description | |---------|------------|-------------| | read | --plan-id | Read plan status | | create | --plan-id --title --phases [--force] | Initialize status.toon | | set-phase | --plan-id --phase | Set current phase | | update-phase | --plan-id --phase --status | Update phase status | | progress | --plan-id | Calculate plan progress | | list | [--filter] | Discover all plans | | transition | --plan-id --completed | Transition to next phase | | archive | --plan-id [--dry-run] | Archive completed plan | | route | --phase | Get skill for phase | | get-routing-context | --plan-id | Get combined routing context |

Script: pm-workflow:manage-files:manage-files (delete operations)

| Command | Parameters | Description | |---------|------------|-------------| | delete-plan | --plan-id | Delete entire plan directory |


Phase Routing

The route command returns skill names for each phase (from script PHASE_ROUTING):

| Phase | Skill | Description | |-------|-------|-------------| | init | plan-init | Initialize plan structure | | outline | solution-outline | Create solution outline with deliverables | | plan | task-plan | Create tasks from deliverables | | execute | plan-execute | Execute implementation tasks | | finalize | plan-finalize | Finalize with commit/PR |

Note: These are skill names, not full bundle:skill notation.

Note: Domain information is managed in config.toon (via domains array), not in status.toon. Domains are detected during the outline phase.


Error Handling

status: error
plan_id: my-feature
error: invalid_transition
message: Cannot transition from 'init' to 'execute' - must complete phases in order