Claude-skill-registry-data manage-lifecycle

Manage plan lifecycle with status.toon and phase operations

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry-data
Claude Code · Install into ~/.claude/skills/
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"
manifest: data/manage-lifecycle/SKILL.md
source content

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

FieldDescription
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

StatusMeaning
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

OperationUse CaseRecoverable
delete-plan
Replace, abandon, cleanupNo
archive
Completed plans for referenceYes (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

CommandParametersDescription
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)

CommandParametersDescription
delete-plan
--plan-id
Delete entire plan directory

Phase Routing

The

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

PhaseSkillDescription
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