project-specification-writer
Generate a complete software specification document for the current project/repo, including architecture, data model, key processes, pseudocode, and Mermaid diagrams (context, container/deployment, module relations, sequence, ER, class, flowchart, state).
Best use case
project-specification-writer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate a complete software specification document for the current project/repo, including architecture, data model, key processes, pseudocode, and Mermaid diagrams (context, container/deployment, module relations, sequence, ER, class, flowchart, state).
Teams using project-specification-writer should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/project-specification-writer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How project-specification-writer Compares
| Feature / Agent | project-specification-writer | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate a complete software specification document for the current project/repo, including architecture, data model, key processes, pseudocode, and Mermaid diagrams (context, container/deployment, module relations, sequence, ER, class, flowchart, state).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Project Specification Writer (Instruction-only)
## Goal
When invoked, produce a **single, comprehensive specification document** for the **current repository/project** with **all required sections**:
1. Architecture and technology choices
2. Data model
3. Key processes
4. Pseudocode
5. System context diagram
6. Container/deployment overview
7. Module relationship diagram (Backend / Frontend)
8. Sequence diagram
9. ER diagram
10. Class diagram (key backend classes)
11. Flowchart
12. State diagram
**Default output file:** `docs/specification.md`
(If `docs/` does not exist, create it. If user requests another path, follow it.)
---
## Invocation behavior
### Minimal questions policy
Ask **at most 5** clarifying questions **only if** the repo does not contain enough information to avoid unsafe guessing.
If information is missing, proceed with best-effort inference and add an **“Assumptions & Open Questions”** section near the top.
### No hallucinations rule
Do **not** invent details. If you cannot locate evidence in the repo, label as:
- **Assumption**
- **Unknown/TBD**
- **Open question**
---
## Repo reconnaissance workflow (do this first)
1. Identify repo root and high-level structure:
- Look for: `README*`, `docs/`, `architecture/`, `ADR*`, `design*`, `SPEC*`.
2. Detect tech stack and runtime:
- Backend signals: `pyproject.toml`, `requirements.txt`, `go.mod`, `pom.xml`, `build.gradle`, `.csproj`, `package.json` (server), `Dockerfile`
- Frontend signals: `package.json`, `pnpm-lock.yaml`, `yarn.lock`, `vite.config.*`, `next.config.*`
3. Detect data layer:
- DB migrations: `migrations/`, `prisma/schema.prisma`, `alembic/`, `db/schema.sql`, `knexfile.*`
- ORM models: `models/`, `entities/`, `schema/`
4. Detect deployment:
- `docker-compose.yml`, `Dockerfile*`, `k8s/`, `helm/`, `.github/workflows/*`, `terraform/`
5. Collect “evidence pointers” while reading (file paths + brief notes).
You will use these pointers throughout the spec.
---
## Output requirements (strict)
- Produce **one Markdown document**.
- Use **clear headings** matching the 12 required items.
- All diagrams must be in fenced Mermaid blocks:
\`\`\`mermaid
...
\`\`\`
- Each section must be **project-specific** (grounded in repo findings).
- Keep diagrams at the right abstraction level:
- **Context/Container**: high-level systems and deployed containers/services
- **Module diagram**: major frontend/backend modules and their dependencies
- **Class diagram**: only key backend classes (5–15), not every class
---
# Specification Document Template (write exactly this structure)
# {{Project Name}} — Specification
**Version:** {{date}}
**Repo:** {{repo identifier if known}}
**Primary stack:** {{inferred stack}}
## Assumptions & Open Questions
- Assumption: ...
- Open question: ...
## 1. Architecture and technology choices
### 1.1 Architecture overview
- System style (e.g., monolith, modular monolith, microservices)
- Key components and responsibilities
- Trust boundaries (auth, secrets, network zones) if applicable
### 1.2 Technology choices (with rationale)
Provide a table:
| Area | Choice | Evidence | Why this choice | Alternatives considered |
|---|---|---|---|---|
### 1.3 Non-functional requirements (NFRs)
- Performance, availability, security, observability, compliance, cost
- What the repo suggests (or what’s missing)
## 2. Data model
### 2.1 Conceptual model
- List core entities and what they represent
- Identify ownership and lifecycle boundaries
### 2.2 Logical model (tables/collections)
Provide a table:
| Entity/Table | Primary key | Key fields | Relationships | Notes |
|---|---|---|---|---|
### 2.3 Data integrity & constraints
- Uniqueness, foreign keys, soft delete, audit fields, tenancy strategy, etc.
## 3. Key processes
List 3–7 “key processes” (system behaviors) using this structure:
- **Process name**
- Trigger:
- Inputs:
- Outputs:
- Key steps:
- Error cases:
- Observability (logs/metrics/traces):
## 4. Pseudocode
For each key process, provide pseudocode:
- Use clear function signatures
- Include validation, error handling, retries/transactions where relevant
Example format:
```text
function ProcessName(input):
validate input
begin transaction (if needed)
...
return resultRelated Skills
startup-business-analyst-financial-projections
Create detailed 3-5 year financial model with revenue, costs, cash flow, and scenarios
project-scaffolding
Project type detection matrix, template recommendations per project type, post-scaffolding checklist, Harness integration patterns, and testing recommendations
project-knowledge
CEI architecture, modules, data flows, conventions, tech stack decisions
[PROJECT]-deployment-patterns
[PROJECT] CI/CD pipeline and deployment automation patterns
maintain-project-rules
Audit and maintain project rules in .cursor/rules/. Use when auditing project rules, checking prefix convention, syncing doc/rules.md, or when the user asks about .cursor/rules or prefix convention.
fiber-logging-and-project-structure
Applies best practices for logging, project structure, and environment variable usage specifically to the main application file.
azure-ai-projects-java
Azure AI Projects SDK for Java. High-level SDK for Azure AI Foundry project management including connections, datasets, indexes, and evaluations.
azure-ai-projects-dotnet
Azure AI Projects SDK for .NET. High-level client for Azure AI Foundry projects including agents, connections, datasets, deployments, evaluations, and indexes.
analyzing-specifications
Use when analyzing requirements or project specifications - guides shannon analyze command, explains 8D complexity output, caching behavior, context-aware mode with --project flag
acc-create-specification
Generates DDD Specification for PHP 8.5. Creates reusable business rule objects for validation, filtering, and querying with composite pattern support. Includes unit tests.
vue-writer
Skill for creating and editing Vue.js components following Prowi conventions. Use when writing Vue files, creating components, or refactoring frontend code. Enforces modern patterns like defineModel(), TypeScript, and Composition API.
typescript-hook-writer
Expert guidance for developing Claude Code hooks in TypeScript with shared utilities, esbuild compilation, and Vitest testing - distributes compiled JS while maintaining TypeScript development experience