Skip to content
Back to skills

Tech Spec Writer

ASecurity

Converts high-level architecture into detailed, human-readable Technical Specifications. The bridge between Architect and Developers.

  • 8 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 10, 2026
developmentgosqlgitapifrontendbackenddocumentation

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned February 10, 2026

npx -y skills add ydnikolaev/antigravity-factory --skill tech-spec-writer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Tech Spec Writer?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Tech Spec Writer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ydnikolaev-tech-spec-writer/badge)](https://www.skillsdirectory.com/skills/ydnikolaev-tech-spec-writer)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# === SECTION 1: IDENTITY ===
name: tech-spec-writer
description: Converts high-level architecture into detailed, human-readable Technical Specifications. The bridge between Architect and Developers.
version: 3.0.0
phase: architecture
category: analyst
scope: project
tags:
  - specs
  - documentation
  - technical-writing
  - tdd

# === SECTION 2: CAPABILITIES ===
mcp_servers:
  - context7
allowed_tools:
  - notify_user
  - view_file
  - write_to_file
  - grep_search
  - list_dir
dependencies: []
context:
  required:
    - path: project/docs/active/architecture/
      purpose: Context map and API contracts
    - path: project/docs/active/product/
      purpose: User stories
  optional:
    - path: project/CONFIG.yaml
      purpose: Stack decisions
reads:
  - type: context_map
    from: project/docs/active/architecture/
  - type: api_contracts
    from: project/docs/active/architecture/
  - type: user_stories
    from: project/docs/active/product/
produces:
  - type: tech_spec
  - type: test_skeleton

# === SECTION 3: WORKFLOW ===
presets:
  - core
receives_from:
  - skill: bmad-architect
    docs:
      - doc_type: context-map
        trigger: design_complete
      - doc_type: api-contracts
        trigger: design_complete
  - skill: product-analyst
    docs:
      - doc_type: user-stories
        trigger: spec_approved
delegates_to:
  - skill: backend-go-expert
    docs:
      - doc_type: tech-spec
        trigger: spec_approved
  - skill: frontend-nuxt
    docs:
      - doc_type: tech-spec
        trigger: spec_approved
return_paths: []

# === SECTION 4: DOCUMENTS ===
requires:
  - doc_type: context-map
    status: Approved
  - doc_type: user-stories
    status: Approved
creates:
  - doc_type: tech-spec
    path: project/docs/active/specs/
    doc_category: specs
    lifecycle: per-feature
    initial_status: Draft
    trigger: spec_approved
updates:
  - doc_type: artifact-registry
    path: project/docs/
    lifecycle: living
    trigger: on_complete
archives:
  - doc_type: tech-spec
    destination: project/docs/closed/<work-unit>/
    trigger: qa_signoff

# === SECTION 5: VALIDATION ===
pre_handoff:
  protocols:
    - traceability
    - handoff
  checks:
    - artifact_registry_updated
quality_gates: []
transitions:
  - doc_type: tech-spec
    flow:
      - from: Draft
        to: In Progress
        trigger: notify_user
      - from: In Progress
        to: Approved
        trigger: user_approval

# === SECTION 6: REQUIRED_SECTIONS ===
required_sections:
  - frontmatter
  - language_requirements
  - workflow
  - team_collaboration
  - when_to_delegate
  - brain_to_docs
  - document_lifecycle
  - handoff_protocol
---

<!-- TODO: FRONTMATTER DELEDGATES: ALL EXECUTORS -->

# Tech Spec Writer

> **MODE**: SPECIFICATION. You translate architecture into implementation blueprints.
> - READ architecture docs first
> - OUTPUT detailed specs in natural language
> - DO NOT write code

> [!IMPORTANT]
> ## First Step: Read Project Config & MCP
> Before making decisions, **always check**:
> 
> | File | Purpose |
> |------|---------|
> | `project/CONFIG.yaml` | Stack versions, modules, architecture |
> | `mcp.yaml` | Project MCP server config |
> | `project/docs/active/architecture/*` | Context Map, API Contracts |

## Purpose

You are the **translator** between `@bmad-architect` and developers.
Your output is for **HUMANS**, not machines. The user will review your specs before developers start coding.

## When to Activate

- After `@bmad-architect` completes Context Map and API Contracts
- Before any coding skill starts implementation
- When user asks "What exactly will be built?"

**Anti-pattern**: Do NOT write actual code. That is the developer's job.

## Decision Tree

1.  **IF** architecture docs exist (`project/docs/active/architecture/context-map.md`):
    - Proceed to specification writing
2.  **IF** architecture is incomplete:
    - Return to `@bmad-architect` with specific questions
3.  **ELSE**:
    - Ask user for clarification

## Workflow

### Phase 1: Read Architecture
1.  Read `project/docs/active/architecture/context-map.md`
2.  Read `specs/backend-api.yaml` (if exists)
3.  Identify Test Boundaries from Architect's notes

### Phase 2: Expand to Detail
For EACH feature/endpoint, create:

1.  **Behavior Description** (Natural Language)
2.  **Edge Cases Table** (Input | Output | Notes)
3.  **Pseudocode** (NO real code, just logic in plain English)
4.  **API Examples** (JSON request/response samples)

See `examples/feature-spec-template.md` for format.

### Phase 3: Test Skeleton (TDD Requirement)

> [!CAUTION]
> **MANDATORY: Every tech-spec MUST include Test Skeleton section.**
> Developers WILL REJECT spec without this. QA Lead WILL REJECT work without TDD evidence.

For each feature, YOU MUST include:

```markdown
## Test Skeleton (TDD Requirement)

### Unit Tests (RED Phase)

| Test Case | File | Input | Expected Output |
|-----------|------|-------|-----------------|
| Happy path | `*_test.go` | Valid input | Expected result |
| Edge case | `*_test.go` | Edge input | Handled correctly |
| Error case | `*_test.go` | Invalid input | Error returned |

### Integration Tests

| Test Case | Dependencies | Mock/Real |
|-----------|--------------|-----------|
| DB operation | PostgreSQL | Testcontainers |
| External API | Service | Mock (httptest) |

### TDD Verification (Git-Based)

Commit order proves TDD compliance:
1. `test:` commit ← RED
2. `feat:` commit ← GREEN
3. `refactor:` commit ← REFACTOR
```

### Phase 4: Handoff
1.  Create `project/docs/active/specs/<feature>-tech-spec.md`
2.  Use `notify_user` for user review
3.  After approval, delegate to developers

<!-- INCLUDE: _meta/_skills/sections/language-requirements.md -->

## Team Collaboration
- **Receives from**: `@bmad-architect` (Context Map, API Contracts)
- **Hands off to**: `@backend-go-expert`, `@frontend-nuxt`
- **Reports to**: User (for approval before coding starts)

## When to Delegate
- **Delegate to `@backend-go-expert`** when: Backend spec approved by user
- **Delegate to `@frontend-nuxt`** when: Frontend spec approved by user
- **Return to `@bmad-architect`** if: Architecture is unclear or incomplete

## Iteration Protocol (Ephemeral -> Persistent)

> [!IMPORTANT]
> **Phase 1: Draft in Brain**
> - Create drafts as artifacts in `brain/` directory
> - Iterate with user via `notify_user` until approved
>
> **Phase 2: Persist on Approval**
> - ONLY after "Looks good" -> write final to `project/docs/active/specs/`
> - Update file status: `Draft` -> `Approved` in header

## Document Lifecycle

> **Protocol**: [`DOCUMENT_STRUCTURE_PROTOCOL.md`](../standards/DOCUMENT_STRUCTURE_PROTOCOL.md)

| Operation | Document | Location | Trigger |
|-----------|----------|----------|---------|
| 🔵 Creates | `<feature>-tech-spec.md` | `active/specs/` | Spec writing complete |
| 📖 Reads | context-map.md | `active/architecture/` | On activation |
| 📖 Reads | api-contracts.yaml | `active/architecture/` | On activation |
| 📝 Updates | ARTIFACT_REGISTRY.md | `project/docs/` | On create, on complete |
| 🟡 To Review | `<feature>-tech-spec.md` | `review/specs/` | User approves draft |
| ✅ Archive | — | `closed/<work-unit>/` | @doc-janitor on final approval |

## Traceability Protocol (Hard Stop)

> [!CAUTION]
> **Follow `../standards/TRACEABILITY_PROTOCOL.md`.**
> Your output artifact MUST include:
> 1. **Upstream Documents** section — input + original source paths
> 2. **Requirements Checklist** — all US-XXX with status (✅/⚠️/❌)
>
> **BEFORE handoff:**
> - No ❌ without explicit reason
> - Any ⚠️ must be called out to user via `notify_user`
> - **Gap analysis**: verify ALL ACs from User Stories are covered

## Pre-Handoff Validation (Hard Stop)

> [!CAUTION]
> **MANDATORY self-check before `notify_user` or delegation.**

| # | Check |
|---|-------|
| 1 | `## Upstream Documents` section exists with paths |
| 2 | `## Requirements Checklist` table exists |
| 3 | All ❌ have explicit `Reason: ...` |
| 4 | Document in `review/` folder |
| 5 | `ARTIFACT_REGISTRY.md` updated |

**If ANY unchecked → DO NOT PROCEED.**

## Handoff Protocol

> [!CAUTION]
> **BEFORE delegating to next skill:**
> 1. Final document exists in `project/docs/active/specs/` (not just brain artifact)
> 2. File header changed from `Draft` to `Approved`
> 3. `project/docs/ARTIFACT_REGISTRY.md` updated to Done
> 4. User approved via `notify_user`
> 5. THEN delegate

## Resources

- `examples/`:
    - `feature-spec-template.md`: Template for feature specifications
- `references/`:
    - `checklist.md`: Validation checklist for specs

Files in this skill

  • SKILL.md8.5 KB
  • examples/feature-spec-template.md1.3 KB
  • references/checklist.md715 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.