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).

16 stars

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

$curl -o ~/.claude/skills/project-specification-writer/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/devops/project-specification-writer/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/project-specification-writer/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How project-specification-writer Compares

Feature / Agentproject-specification-writerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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 result

Related Skills

startup-business-analyst-financial-projections

16
from diegosouzapw/awesome-omni-skill

Create detailed 3-5 year financial model with revenue, costs, cash flow, and scenarios

project-scaffolding

16
from diegosouzapw/awesome-omni-skill

Project type detection matrix, template recommendations per project type, post-scaffolding checklist, Harness integration patterns, and testing recommendations

project-knowledge

16
from diegosouzapw/awesome-omni-skill

CEI architecture, modules, data flows, conventions, tech stack decisions

[PROJECT]-deployment-patterns

16
from diegosouzapw/awesome-omni-skill

[PROJECT] CI/CD pipeline and deployment automation patterns

maintain-project-rules

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Applies best practices for logging, project structure, and environment variable usage specifically to the main application file.

azure-ai-projects-java

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Azure AI Projects SDK for .NET. High-level client for Azure AI Foundry projects including agents, connections, datasets, deployments, evaluations, and indexes.

analyzing-specifications

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

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