Claude-skill-registry-data manage-lifecycle
Manage plan lifecycle with status.toon and phase operations
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/manage-lifecycle" ~/.claude/skills/majiayu000-claude-skill-registry-data-manage-lifecycle && rm -rf "$T"
data/manage-lifecycle/SKILL.mdManage 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 |
|---|---|
| Plan title |
| Current active phase |
| Table of phase names and statuses |
| ISO timestamp when created |
| 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 |
|---|---|
| Not started |
| Currently active |
| 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:
(required): Plan identifier (kebab-case)--plan-id
(required): Plan title--title
(required): Comma-separated phase names--phases
: Overwrite existing status.toon--force
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 by phases (comma-separated)--filter
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:
(required): Plan identifier to delete--plan-id
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 |
|---|---|---|
| Replace, abandon, cleanup | No |
| 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:
(required): Phase name (e.g., 1-init, 2-outline, 3-plan, 4-execute, 5-finalize)--phase
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:
(required): Plan identifier--plan-id
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 status |
| | Initialize status.toon |
| | Set current phase |
| | Update phase status |
| | Calculate plan progress |
| | Discover all plans |
| | Transition to next phase |
| | Archive completed plan |
| | Get skill for phase |
| | Get combined routing context |
Script:
pm-workflow:manage-files:manage-files (delete operations)
| Command | Parameters | Description |
|---|---|---|
| | Delete entire plan directory |
Phase Routing
The
route command returns skill names for each phase (from script PHASE_ROUTING):
| Phase | Skill | Description |
|---|---|---|
| init | | Initialize plan structure |
| outline | | Create solution outline with deliverables |
| plan | | Create tasks from deliverables |
| execute | | Execute implementation tasks |
| 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