Awesome-omni-skill 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).
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/devops/project-specification-writer-majiayu000" ~/.claude/skills/diegosouzapw-awesome-omni-skill-project-specification-writer && rm -rf "$T"
skills/devops/project-specification-writer-majiayu000/SKILL.mdProject Specification Writer (Instruction-only)
Goal
When invoked, produce a single, comprehensive specification document for the current repository/project with all required sections:
- Architecture and technology choices
- Data model
- Key processes
- Pseudocode
- System context diagram
- Container/deployment overview
- Module relationship diagram (Backend / Frontend)
- Sequence diagram
- ER diagram
- Class diagram (key backend classes)
- Flowchart
- 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)
- Identify repo root and high-level structure:
- Look for:
,README*
,docs/
,architecture/
,ADR*
,design*
.SPEC*
- Look for:
- Detect tech stack and runtime:
- Backend signals:
,pyproject.toml
,requirements.txt
,go.mod
,pom.xml
,build.gradle
,.csproj
(server),package.jsonDockerfile - Frontend signals:
,package.json
,pnpm-lock.yaml
,yarn.lock
,vite.config.*next.config.*
- Backend signals:
- Detect data layer:
- DB migrations:
,migrations/
,prisma/schema.prisma
,alembic/
,db/schema.sqlknexfile.* - ORM models:
,models/
,entities/schema/
- DB migrations:
- Detect deployment:
,docker-compose.yml
,Dockerfile*
,k8s/
,helm/
,.github/workflows/*terraform/
- 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:
function ProcessName(input): validate input begin transaction (if needed) ... return result