From shipwright-project
Decomposes project requirements into planning units for /shipwright-plan, scaffolds project structure, and generates CLAUDE.md and agent documentation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/shipwright-project:projectThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Decomposes project requirements into well-scoped components for /shipwright-plan.
references/error-handling.mdreferences/first-actions.mdreferences/interview-protocol.mdreferences/project-manifest.mdreferences/project-scaffolding.mdreferences/spec-generation.mdreferences/split-heuristics.mdreferences/step-0-context-recovery.mdreferences/step-1-interview.mdreferences/step-4-confirmation.mdreferences/step-5-create-dirs.mdreferences/step-6-spec-gen.mdreferences/step-7-scaffolding.mdreferences/step-8-completion.mdDecomposes project requirements into well-scoped components for /shipwright-plan. Enhanced fork of deep-project with profile-aware decomposition and project scaffolding.
This Kern is a thin orchestrator — section headers + cross-references to
references/*.md. Read the references on-demand when the corresponding
step fires. The agent reads Kern fully at startup; references are loaded
when their step is reached.
Governing rules: Read and follow shared/constitution.md (ALWAYS /
ASK FIRST / NEVER boundaries).
BEFORE using any other tools, complete the First Actions checklist in references/first-actions.md:
shipwright_run_config.json
presence; if missing, AskUserQuestion + END TURN)The reference file is authoritative for the exact prompts, banner text, shell invocations, and resume-step mapping. Do not paraphrase or condense — copy verbatim from the reference into your output where required.
When this phase runs as a phase-runner subagent under the single-session
pipeline (shipwright_run_config.json mode: "single_session"), interactive
AskUserQuestion gates — incl. A.1 and Step 4 — follow a per-gate policy.
Resolve each before stopping:
uv run "${SHIPWRIGHT_PLUGIN_ROOT}/../../shared/scripts/tools/resolve_gate_policy.py" \
--phase project --list --project-root .
Apply the effective_policy: auto-default → proceed with the default_answer
(no END-TURN; e.g. the interview is answered from the seed, the split manifest is
auto-approved); orchestrator-approve / hard-stop → STILL STOP and hand back to
the orchestrator (never auto-answer — e.g. a missing Supabase secret). Outside a
driven single-session run (standalone / adopted) every gate is interactive. Full contract:
shared/prompts/single-session-gate-discipline.md.
See references/step-0-context-recovery.md.
If the orchestrator handed you a phaseTaskId (you were dispatched as a
phase-runner subagent by /shipwright-run), run get_phase_context.py --phase-task-id <id> BEFORE Step 1. Otherwise (standalone), continue
with Step 1.
See references/step-1-interview.md for the full step. Detailed interview guidance is in references/interview-protocol.md.
Goal: Surface the user's mental model of the project and combine it with Claude's intelligence.
Assumptions-first (before the first clarifying question): list your inferred assumptions explicitly — web-app vs CLI, stack, persistence, auth model — and ask the user to correct them. See the "Surface Inferred Assumptions First" pre-phase in interview-protocol.md.
Context to read depends on input mode (File / Inline / Chat). For
Extension scope, read ALL existing project context (CLAUDE.md,
.shipwright/agent_docs/*, all .shipwright/planning/*/spec.md).
Interview depth ranges Light (1-3) for Extensions to Deep (8-15) for Chat-mode Full Applications. One AskUserQuestion per question.
Checkpoints:
{planning_dir}/shipwright_project_interview.md (transcript){planning_dir}/requirements.mdSee references/split-heuristics.md for evaluation criteria.
Goal: Determine if project benefits from multiple splits or is a single coherent unit.
Context to read:
{initial_file} - The original requirements{planning_dir}/shipwright_project_interview.md - Interview transcriptSee references/project-manifest.md for manifest format.
Goal: Summarize splits, map relationships and write the project manifest.
Checkpoint: Write {planning_dir}/project-manifest.md with Claude's
proposal.
See references/step-4-confirmation.md.
Goal: Get user approval on split structure.
Present the manifest and use AskUserQuestion to get the user's feedback.
If changes requested, update project-manifest.md directly and
re-present. On approval, proceed to Step 5.
See references/step-5-create-dirs.md.
Goal: Create split directories from the approved manifest.
uv run "{plugin_root}/scripts/checks/create-split-dirs.py" --planning-dir "{planning_dir}"
Checkpoint: Directory existence. Resume from Step 6 if directories exist.
See references/step-6-spec-gen.md. Detailed file formats in references/spec-generation.md.
Goal: Write spec files for each split directory.
Checkpoint: Spec file existence.
See references/step-7-scaffolding.md. Detailed CLAUDE.md + .shipwright/agent_docs generation in references/project-scaffolding.md.
Goal: Generate CLAUDE.md and .shipwright/agent_docs/ for the
target project.
This step only runs for Full Application scope. Extensions already have these files.
Key sub-flows (see reference for the verbatim shell commands and templates):
{plugin_root}/../../shared/profiles/ JSONs; supabase-nextjs is the
primary supported profile.architecture.md, decision_log.md,
conventions.md, and .claude/rules/*.md.suggest_iterate is registered in
shipwright-iterate; no project-level install. Cleanup of legacy
.claude/settings.json UserPromptSubmit entries is documented in
the reference.write-project-config.py.decision_log.md via the shared
write_decision_log.py tool — once per project-specific decision.supabase init,
supabase link --project-ref, verify .supabase/ exists.delete_branch_on_merge=true if a
GitHub remote exists.Checkpoint: CLAUDE.md existence + supabase/config.toml existence
(supabase-nextjs only).
See references/step-8-completion.md for the full verification list, the C1/C2/C3/C4/C5 + phase_history canon, and the final summary banner.
Verification (all must pass before "phase complete"):
.shipwright/agent_docs/ directory exists with all 5 files (Full
Application only)Phase complete — update pipeline state by running the C1/C2/C3/C5 + phase_history block from references/step-8-completion.md, then call the orchestrator update-step to mark the project phase complete.
See references/error-handling.md for the invalid-input-file and session-conflict prompts.
npx claudepluginhub svenroth-ai/shipwright --plugin shipwright-projectGuides collaborative design exploration before implementation: explores context, asks clarifying questions, proposes approaches, and writes a design doc for user approval.
Creates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.
Resolves in-progress git merge or rebase conflicts by analyzing history, understanding intent, and preserving both changes where possible. Runs automated checks after resolution.