From arn-code
This skill should be used when the user says "save plan", "save the plan", "arness code save plan", "structure this plan", "create project from plan", "export plan", "export project plan", "organize this plan", "set up project structure", "turn this into a project", "generate project structure", "finalize the plan", or wants to convert a planning conversation into an actionable phased project structure with implementation and testing plans.
npx claudepluginhub appsvortex/arness --plugin arn-codeThis skill uses the workspace's default tool permissions.
references/template-versioning.mdreferences/templates.mdreport-templates/default/BATCH_SIMPLIFICATION_REPORT_TEMPLATE.jsonreport-templates/default/BUGFIX_REPORT_TEMPLATE.jsonreport-templates/default/CATCHUP_REPORT_TEMPLATE.jsonreport-templates/default/CHANGE_RECORD_TEMPLATE.jsonreport-templates/default/IMPLEMENTATION_REPORT_TEMPLATE.jsonreport-templates/default/PROJECT_PROGRESS_REPORT_TEMPLATE.jsonreport-templates/default/REVIEW_REPORT_TEMPLATE.jsonreport-templates/default/SIMPLIFICATION_REPORT_TEMPLATE.jsonreport-templates/default/STANDARD_REPORT_TEMPLATE.jsonreport-templates/default/SWIFT_REPORT_TEMPLATE.jsonreport-templates/default/TASK_REVIEW_REPORT_TEMPLATE.jsonreport-templates/default/TESTING_REPORT_TEMPLATE.jsonscripts/save_plan.shSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Convert a planning conversation into a structured, executable project with phased implementation plans, testing plans, task lists, and progress tracking.
This skill requires Arness to be configured in the target project. If Arness configuration is not found in the project's CLAUDE.md, the user should run /arn-planning to get started.
Read the project's CLAUDE.md and look for a ## Arness section. Also check for a legacy ## Arness Save Plan section (from earlier versions of this skill).
If ## Arness is found, extract:
default or customask, auto, or manual (if present)Validate that all paths exist on disk. If any path is missing, warn the user before proceeding.
If the ## Arness section contains Template version and Template updates fields, compare the project's template version against the plugin version. If they differ, check for user modifications via checksums and either auto-update, prompt the user, or skip based on the configured preference. If ## Arness does NOT contain these fields, treat as legacy and skip.
Read
${CLAUDE_PLUGIN_ROOT}/skills/arn-code-save-plan/references/template-versioning.mdfor the full template version check procedure.
If legacy ## Arness Save Plan is found but no ## Arness, offer to migrate:
Inform the user: "I found a legacy ## Arness Save Plan section. Arness now uses a unified ## Arness configuration section."
Ask (using AskUserQuestion):
"Should I migrate this to the new format?"
Options:
If Yes, migrate:
## Arness.arness/If No, keep legacy: proceed using the legacy values, treating the missing Code patterns path as .arness/
If NEITHER section is found, Arness has not been configured:
/arn-planning to get started — it will set everything up automatically." Do not proceed without it.Ask the user for PROJECT_NAME if not already provided in the conversation.
Look for a PLAN_PREVIEW file in the plans directory:
PLAN_PREVIEW_*.md in <plans-dir>/PLAN_PREVIEW_websocket-notifications.md → websocket-notifications).~/.claude/plans/ as a legacy fallback. If plans are found there, show the most recent and ask the user to confirm. If nothing is found anywhere, inform the user: "No plan found. Run /arn-code-plan to create one first."Run the setup script with the resolved plan file path:
bash ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-save-plan/scripts/save_plan.sh <PROJECT_NAME> <OUTPUT_DIR> <resolved-plan-file-path>
This creates:
<OUTPUT_DIR>/<PROJECT_NAME>/
├── SOURCE_PLAN.md
├── plans/
└── reports/
If the script fails (non-zero exit code), report the error output to the user. Common causes: output directory does not exist, disk permissions, or PROJECT_NAME contains invalid characters. Do not proceed to Step 3 until the project structure is successfully created.
Create <OUTPUT_DIR>/<PROJECT_NAME>/INTRODUCTION.md using the template from ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-save-plan/references/templates.md.
The INTRODUCTION.md draws from up to THREE sources:
Finding the specification:
Spec: <path> — if found, read that file## Arness config) for files whose name matches the PROJECT_NAME pattern (e.g., project websocket-notifications matches spec FEATURE_websocket-notifications.md or BUGFIX_websocket-notifications.md)Use Claude's intelligence to interpret the source material and populate each INTRODUCTION.md section. Do NOT rely on exact section name matching — extract the relevant information regardless of how the source material is structured.
| INTRODUCTION.md Section | Primary Source | Fallback |
|---|---|---|
| Project Overview | Spec (Problem Statement / Bug Report) | Plan (any overview/summary content) |
| Architectural Definition | Spec (Architectural Assessment) | Plan (any architecture/design content) |
| Codebase Patterns | Stored pattern docs (code-patterns.md, testing-patterns.md, ui-patterns.md if present) | Stored pattern docs (code-patterns.md, testing-patterns.md) |
| Codebase References | Stored pattern docs (architecture.md) | Stored pattern docs (architecture.md) |
| Sketch Artifacts (conditional) | Spec (Sketch Reference section) | Scan arness-sketches/ for matching manifests |
| Scope & Boundaries | Spec (Scope & Boundaries) | Plan (any scope content) |
| Dependencies | Spec or Plan | Infer from components mentioned |
| Phase Overview | Plan (logical phases/steps) | Single phase if plan has no explicit phases |
Phase identification from SOURCE_PLAN.md: Plans may use any structure. Identify logical phases by looking for:
Finding sketch artifacts: Check whether the specification file (if found) contains a ## Sketch Reference section. If it does, extract the sketch directory path, manifest path, blueprint path, and component mapping table from that section and populate the ### Sketch Artifacts subsection in the Codebase References section of INTRODUCTION.md. If no spec is found or the spec has no Sketch Reference section, fall back to scanning the project root for a arness-sketches/ directory. If a arness-sketches/ directory exists, look for a subdirectory whose name matches the PROJECT_NAME (by name or keyword overlap). If a matching sketch directory is found with a sketch-manifest.json containing componentMapping and composition fields, populate the Sketch Artifacts subsection from the manifest data. If no sketch is found through either method, omit the Sketch Artifacts subsection entirely.
Every pattern in INTRODUCTION.md MUST reference real files and real code from the codebase. Do not use placeholder content — the INTRODUCTION.md is the ground truth that all phase plans reference.
For each phase identified in Step 3's Phase Overview, create <OUTPUT_DIR>/<PROJECT_NAME>/plans/PHASE_<N>_PLAN.md using the combined template from ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-save-plan/references/templates.md.
Extracting phase content from SOURCE_PLAN.md: The plan may use any structure. For each phase identified in Step 3:
If SOURCE_PLAN.md has no explicit phases: Treat the entire plan as Phase 1, or intelligently split it into phases based on logical groupings (e.g., infrastructure first, then features, then integration).
Each phase plan always has an Implementation section. Include a Testing section only if the SOURCE_PLAN.md describes tests, test cases, or test infrastructure for that phase. If the source plan contains no testing content, omit the Testing section entirely.
Implementation section:
Testing section (when applicable):
TASKS.md — Create <OUTPUT_DIR>/<PROJECT_NAME>/TASKS.md using the template from ${CLAUDE_PLUGIN_ROOT}/skills/arn-code-save-plan/references/templates.md.
Rules:
PROGRESS_TRACKER.json — Create <OUTPUT_DIR>/<PROJECT_NAME>/PROGRESS_TRACKER.json using PROJECT_PROGRESS_REPORT_TEMPLATE.json from the configured template path as the schema.
Populate with:
projectName: the PROJECT_NAMElastUpdated: current ISO 8601 timestampoverallStatus: "not_started"totalPhases: count of phasesphases[]:
phaseNumber, phaseTitle, planFile from the phase plansimplementation.status: "not_started", implementation.taskId: the implementation task number from TASKS.md for this phase, implementation.reportFile: reports/IMPLEMENTATION_REPORT_PHASE_N.jsontesting.status: "not_started" if the phase has a Testing section, or "none" if it does not. testing.taskId: the testing task number from TASKS.md (or null if no testing), testing.reportFile: reports/TESTING_REPORT_PHASE_N.jsonreview.verdict: empty string, review.reviewCycles: 0, review.reportFile: reports/TASK_REVIEW_TASK_N.jsonReview all created files and confirm with the user:
## Arness configuration sectionList all created files with their paths.
Next steps:
/arn-code-review-plan to validate the plan before execution/arn-code-taskify to convert TASKS.md into a Claude Code task list<OUTPUT_DIR>/<PROJECT_NAME>/
├── SOURCE_PLAN.md
├── INTRODUCTION.md
├── TASKS.md
├── PROGRESS_TRACKER.json
├── plans/
│ ├── PHASE_1_PLAN.md
│ ├── PHASE_2_PLAN.md
│ └── ...
└── reports/
└── (populated during execution)