This skill should be used when the user has a specification (or set of specs) and wants to prepare for implementation. Activated when the user asks to "create an implementation plan", "choose a tech stack", "prepare for implementation", "what technologies should we use", "create a blueprint from these specs", "technical discovery", "implementation blueprint", or wants to bridge the gap between specification documents and actually building the project.
From project-docsnpx claudepluginhub ichabodcole/project-docs-scaffold-template --plugin project-docsThis skill uses the workspace's default tool permissions.
references/tech-decision-guide.mdFetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Retrieves current documentation, API references, and code examples for libraries, frameworks, SDKs, CLIs, and services via Context7 CLI. Ideal for API syntax, configs, migrations, and setup queries.
Uses ctx7 CLI to fetch current library docs, manage AI coding skills (install/search/generate), and configure Context7 MCP for AI editors.
Bridge the gap between specification documents and implementation. Through a structured interview with the user, produce an Implementation Blueprint - a technical companion document to the specification that gives an agent or developer everything needed to start building.
The blueprint captures decisions about technology choices, project structure, development environment, and non-functional requirements that specifications intentionally leave open.
When the user has:
generate-spec or
manually written)Before interviewing the user, read all specification documents to understand:
Summarize the findings back to the user before proceeding: "Based on the specs, this is a [scope description] with [key technical needs]. I have [N] technical decisions to work through with you." This builds shared understanding and lets the user correct misreadings early.
This analysis also informs which interview questions are relevant. Skip questions that don't apply to the project.
From the specifications, identify technical decisions that need answers. Group them into categories:
Always relevant:
Conditionally relevant (based on spec contents):
Prioritize decisions by impact. Framework choice constrains everything downstream, so resolve it first. Styling choices can often be deferred or changed later, so ask about those after the big decisions are locked in.
Ask focused questions in batches of 2-4 to avoid overwhelming the user. Start with the highest-impact decisions and work toward details.
Round 1: Platform & Framework
Start by understanding the target:
If the user has no preference, propose options based on the spec requirements. Explain trade-offs briefly. Let the user choose.
Round 2: UI & Styling
Based on the framework choice:
Round 3: Data & State
Based on the persistence needs from specs:
Round 4: Development Environment
Round 5: Non-Functional Requirements
Write the Implementation Blueprint to docs/implementation-blueprint.md (or the
location the user specifies).
# Implementation Blueprint
## Project Overview
Brief summary of what's being built (from specs) and the chosen approach.
## Platform & Targets
- Target platforms
- Minimum browser/OS versions
- PWA requirements (if applicable)
## Tech Stack
### Core
- Language: [choice]
- Framework: [choice]
- Runtime: [choice, if applicable]
### UI & Styling
- Component library: [choice]
- Styling approach: [choice]
- Icon library: [choice]
- Theme system: [approach]
### Data Layer
- Local storage: [choice]
- State management: [choice]
- Validation: [choice]
- API client: [choice, if applicable]
### Audio/Media (if applicable)
- Audio engine: [choice]
- Format support: [formats]
- Caching strategy: [approach]
## Project Structure
Proposed directory layout for the chosen framework.
Include key directories and their purposes.
## Development Environment
- Package manager: [choice]
- Node/runtime version: [version]
- Linting: [tool + config]
- Formatting: [tool + config]
- Pre-commit hooks: [if any]
## Testing Strategy
- Unit tests: [framework]
- Integration tests: [framework]
- E2E tests: [framework, if applicable]
- Coverage target: [percentage]
## Build & Deployment
- Build tool: [choice]
- Deployment target: [where]
- CI/CD: [approach]
- Environment configuration: [approach]
## Non-Functional Requirements
- Performance: [targets]
- Accessibility: [WCAG level]
- Offline support: [approach]
- Internationalization: [if applicable]
## Asset Management
- Static assets: [where they live]
- Sound/media files: [hosting approach]
- Images and icons: [bundling approach]
## Key Libraries
Table of specific libraries/packages to use:
| Purpose | Library | Version | Rationale |
|---------|---------|---------|-----------|
## Mapping: Spec Domains → Implementation
How each specification domain maps to the project structure:
| Spec File | Implementation Area | Key Files/Modules |
|-----------|-------------------|-------------------|
## Open Questions
Any decisions deferred or needing further research.
Good blueprint entry:
### Data Layer
- Local storage: Dexie.js 4.x (IndexedDB wrapper)
Chosen for its reactive queries and simple API, fitting the offline-first PWA requirement.
- State management: Zustand 4.x
Lightweight, no boilerplate, works well with React 18 concurrent features.
- Validation: Zod 3.x
Runtime schema validation for import/export and form inputs.
Bad blueprint entry:
### Data Layer
- Use a local database for storing data
- Add state management
- Validate inputs
The good entry is actionable - an agent can install those exact packages and start coding. The bad entry defers every decision.
The blueprint complements but does not replace the specifications:
| Document | Answers | Example |
|---|---|---|
| Specification | What to build | "Sessions have a 1-5 rating system" |
| Blueprint | How to build it | "Ratings stored in SQLite via Drizzle ORM, UI via shadcn StarRating component" |
Together, these two documents provide everything needed to begin implementation. An agent receiving both should be able to scaffold the project, install dependencies, and start building features.
If specs are missing key details (e.g., no data model, vague UI description), note the gaps and ask the user whether to:
If the user says "just pick everything for me," propose a default stack based on the spec requirements and the user's stated platform. Present it as a draft for approval rather than a final decision. The user should still confirm before the blueprint is written.
If the user's preferred technology doesn't naturally support a spec requirement (e.g., choosing a framework with poor offline support when specs require offline-first), flag the tension. Propose workarounds or alternative technologies. Document the trade-off in the blueprint.
If the user wants the same spec implemented on multiple platforms (e.g., web + mobile), produce one blueprint per platform or a single blueprint with platform-specific sections. Highlight shared code opportunities and platform-specific divergences.
For detailed guidance on evaluating technology options: