Claude-skill-registry erk-planning
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/erk-planning" ~/.claude/skills/majiayu000-claude-skill-registry-erk-planning && rm -rf "$T"
manifest:
skills/data/erk-planning/SKILL.mdsource content
Erk Planning Skill
When to Load
Load this skill when user mentions:
- "update plan", "update the plan", "update issue"
- "modify the plan", "change the plan"
- "edit the issue", "update the issue"
When these triggers fire and a plan was saved in this session:
- Check for
in session scratch:plan-saved-issue.markererk exec marker read --session-id <session-id> plan-saved-issue - If found (exit code 0), invoke
with the marker content/local:plan-update <issue-number> - If not found (exit code 1), ask user for issue number
Overview
Erk-plans are GitHub issues that track implementation plans. They have a two-part structure:
- Issue body: Machine-readable metadata (timestamps, comment IDs, dispatch info)
- First comment: Human-readable plan content in a
metadata blockplan-body
This separation keeps metadata parseable while plan content remains readable.
Plan Issue Structure
Issue #123: "Add feature X [erk-plan]" ├── Body (metadata only): │ <!-- erk:metadata-block:plan-header --> │ created_at: 2025-01-05T12:00:00Z │ created_by: username │ plan_comment_id: 456789 │ <!-- /erk:metadata-block:plan-header --> │ │ ## Commands │ - `erk implement 123` │ - `erk plan submit 123` │ └── Comment #456789 (first comment, plan content): <!-- erk:metadata-block:plan-body --> <details open><summary>Plan</summary> # Add feature X ## Implementation Steps 1. Step one 2. Step two </details> <!-- /erk:metadata-block:plan-body -->
Quick Reference
Creating a Plan Issue
After writing a plan in plan mode:
# Via slash command (recommended) /erk:plan-save # Via CLI erk exec plan-save-to-issue --format display --session-id="<session-id>"
Updating an Existing Plan Issue
When you need to modify a plan that's already saved to GitHub:
# Via slash command /local:plan-update 123 # Via CLI erk exec plan-update-issue --issue-number 123 --session-id="<session-id>"
When to update vs create new:
| Scenario | Action |
|---|---|
| Minor corrections (typos, clarifications) | Update existing |
| Adding details discovered during exploration | Update existing |
| Plan is fundamentally wrong/obsolete | Create new via |
| Significant scope change | Create new, close old |
The Update Workflow
-
Fetch existing plan (if not in local files):
gh issue view 123 --comments --json commentsExtract content from
block in first comment.plan-body -
Enter plan mode and make modifications
-
Update the issue:
/local:plan-update 123 -
Optionally add a comment explaining what changed:
gh issue comment 123 --body "Updated plan: added step 3 for edge case handling"
Plan Mode Integration
When exiting plan mode with an existing linked issue (e.g., from
.impl/issue.json), consider:
- Update existing: If iterating on the same plan
- Save as new: If this is a fresh plan unrelated to the linked issue
- Implement directly: If changes are ready to code
The
plan-update-issue command finds plan content from:
flag (explicit file path)--plan-path- Session scratch storage (via
)--session-id
directory (latest plan file)~/.claude/plans/
Related Commands
| Command | Purpose |
|---|---|
| Create new plan issue from current plan |
| Update existing plan issue |
| Save plan and immediately implement |
| Analyze and recreate obsolete plan |
| Implement a saved plan |
Resources
references/
- Complete update workflow with examplesworkflow.md