code-simplification
Use after implementing features, before claiming a phase is complete, when reviewing AI-generated code, or when code feels overly complex. Also use when you…
Import a handwritten spec document into Shipyard, replacing brainstorming. Use when a freeform spec, requirements, or design document exists.
$ npx -y skills add lgbarn/shipyard --skill import-spec-file --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/import-spec-fileContext preview
The summary Claude sees to decide when to auto-load this skill.
Import a handwritten spec document into Shipyard, replacing brainstorming. Use when a freeform spec, requirements, or design document exists.
name: import-spec-file description: Import a handwritten spec document into Shipyard, replacing brainstorming. Use when a freeform spec, requirements, or design document exists. argument-hint: "[file-path] — path to a spec document (e.g. docs/my-spec.md or /abs/path/spec.md)"
You are executing the Shipyard spec-file import workflow. This is the path for handwritten, freeform, or pre-existing specification documents — use this instead of `/shipyard:brainstorm` when a spec already exists in a non-spec-kit format. Follow these steps precisely.
<prerequisites>
1. Verify `.shipyard/` directory exists. If not, tell the user to run `/shipyard:init` first, then stop. 2. Verify the spec file exists and is readable. If not, tell the user: "Spec file not found: `<path>`" and stop. 3. Note the spec file's filename, directory, and size (line count) for use in later steps.
If `.shipyard/PROJECT.md` already exists, use `AskUserQuestion` to ask: > "A project definition already exists in `.shipyard/PROJECT.md`. What would you like to do?"
</prerequisites>
<execution>
Read the full spec file. Then analyze its structure to identify the following sections (the document may use any section names — use judgment to identify the semantic equivalent):
| PROJECT.md section | Look for in the spec | |---|---| | **Project Name** | Document title (first `#` heading), filename, or explicit name field | | **Description** | Overview, Introduction, Summary, Purpose, Background, Scope sections | | **Goals** | Goals, Objectives, Features, Intended behavior summary, What this covers | | **Non-Goals** | Non-Goals, Out-of-Scope, Exclusions, What this does not cover | | **Requirements (Functional)** | Requirements, Rules, Validation rules, Behavior specification, Protocol, Acceptance criteria | | **Non-Functional Requirements** | Performance, Security, Scale, Reliability, Compliance, Non-functional constraints | | **Success Criteria** | Test scenarios, Acceptance tests, Examples, Verification cases | | **Constraints** | Assumptions, Constraints, Limitations, Dependencies, Technology choices, Deviations | | **Open Questions** | Open questions, TBD, TODO, Unresolved items, `[NEEDS CLARIFICATION]` markers, flagged gaps |
**Mapping rules:**
**After analyzing the spec, conduct a gap-filling interview before writing PROJECT.md.**
Identify which of the following are missing, ambiguous, or incomplete in the spec:
For each gap found, ask the user directly. Keep questions focused — one topic per question. Do not ask about things the spec already covers clearly. Aim for 2-5 questions total; stop when you have enough to write a complete PROJECT.md.
Invoke the `shipyard:shipyard-brainstorming` skill to guide this dialogue. Frame questions around the spec content — e.g., "The spec defines validation rules but doesn't describe where this library gets called from. Is it embedded in the report-ser
A Claude Code plugin for structured project execution. Plan work in phases, build with parallel agents and TDD, review with security audits and quality gates, and ship with confidence.
Repo: lgbarn/shipyard
Use after implementing features, before claiming a phase is complete, when reviewing AI-generated code, or when code feels overly complex. Also use when you…
Use when shipping features with public interfaces that lack docs, generating documentation, updating README files, writing API docs, creating architecture…
Use when starting feature work that needs a branch, creating worktrees for isolation, making atomic commits during development, or completing a development…
Import a spec-kit feature spec into Shipyard, replacing brainstorming. Use when a spec-kit feature directory exists with spec.md.
Use when working with Terraform (.tf, .tfvars), Ansible (playbooks, roles, inventory), Docker (Dockerfile, docker-compose.yml), Kubernetes (manifests, Helm…
Use when a phase or milestone is complete and you need to extract reusable knowledge, before shipping, or when reflecting on completed work. Also use when the…