backlog-writer
Guides authoring of a new spec document. Ensures every required section is present and meets minimum quality before the item enters the gate pipeline. Does not validate gates or make approval decisions.
Best use case
backlog-writer is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Guides authoring of a new spec document. Ensures every required section is present and meets minimum quality before the item enters the gate pipeline. Does not validate gates or make approval decisions.
Teams using backlog-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/backlog-writer/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How backlog-writer Compares
| Feature / Agent | backlog-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?
Guides authoring of a new spec document. Ensures every required section is present and meets minimum quality before the item enters the gate pipeline. Does not validate gates or make approval decisions.
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
# Backlog Writer
Content authoring guide for spec documents. This skill produces a correctly structured spec document file ready for GATE-WRITE. It does not run gates, judge gate outcomes, or make implementation decisions.
## Rule Anchor
- `.agents/rules/spec-workflow.md` > HARD GATE: No Immediate Implementation
- `backlog-pipeline` skill > State Machine
## When to Use
Invoked by `backlog-pipeline` when a new spec document needs to be created. Also usable directly when drafting a spec document outside the pipeline.
## New vs Existing Items
**New item:** Create `.agents/spec-docs/draft/<ID>.md` from the schema below.
**Existing item (migration):** If a file already exists but uses an old schema (no frontmatter, no `## Test Plan`, no `## Evidence Log`):
1. Read the existing file.
2. Extract existing content and map to new sections.
3. Overwrite with the full new schema, preserving extracted content.
4. Set frontmatter `status: draft` — must pass GATE-WRITE before upgrading.
5. Existing Acceptance Criteria → map to `## Completion Criteria`, add TC-N IDs, rewrite to meet quality bar.
## Output
A `.agents/spec-docs/draft/<ID>.md` file with frontmatter `status: draft`, containing all required sections.
## Spec Document File Schema
Create or rewrite the file at `.agents/spec-docs/draft/<ID>.md` using this exact structure:
```markdown
---
status: draft
type: <one of 11 prefixes — see taxonomy below>
tags: [<tag>, <tag>]
---
# <ID>: <Title>
## Problem
<!-- symptom + reproduction condition -->
## Architecture Review
### Affected Scope
### Alternatives Considered
### Decision
### Architecture Review Checklist
- [ ] 영향 패키지/레이어 목록 작성 완료
- [ ] Sibling scan 완료 — 또는 N/A: <명시적 이유>
- [ ] 대안 최소 2개 검토 완료
- [ ] 결정 근거 문서화 완료
## Solution
## Affected Files
## Completion Criteria
<!-- TC-N prefix required on every item -->
- [ ] TC-01: <criterion>
- [ ] TC-02: <criterion>
## Test Plan
<!-- Derived from type + tags. One row per TC-N. -->
| TC-ID | Test Type | Tool / Approach | Notes |
| ----- | --------- | --------------- | ----- |
| TC-01 | <type> | <tool> | |
| TC-02 | <type> | <tool> | |
## Tasks
- [ ] `.agents/tasks/<ID>.md` — 미생성 (GATE-APPROVAL 통과 후 생성)
## Evidence Log
```
---
## Section-by-Section Authoring Guide
### Frontmatter
**`type`** — choose exactly one from the 11-prefix taxonomy:
| Prefix | Nature | SDLC Basis |
| --------------- | ------------------------------------------------ | ---------------------------------------------------------------------- |
| `SCREEN` | UI / visual output (web, terminal, mobile) | IEEE 830 UI Requirements; ISO/IEC 25010 Usability |
| `API` | HTTP / WebSocket / RPC / MCP interface | IEEE 830 External Interface; REST/RPC contracts |
| `FLOW` | Multi-step user/agent interaction sequence | IEEE 830 Use Case; SDLC User Story |
| `BEHAVIOR` | System-internal execution, state transitions | IEEE 830 Functional Requirements; ISO/IEC 25010 Reliability |
| `DATA` | Schema, type contract, data model | IEEE 830 Data Requirements; ISO/IEC 25010 Data model |
| `RULE` | Business logic, validation, constraints | IEEE 830 Functional Requirements; ISO/IEC 25010 Functional suitability |
| `AGREEMENT` | Cross-system / cross-team boundary contract | SLA; Consumer-Driven Contracts |
| `INFRA` | Build, deploy, CI/CD | IEEE 830 Design Constraints; Deployment Spec |
| `PERF` | Performance contract (latency, throughput, cost) | ISO/IEC 25010 Performance Efficiency |
| `SECURITY` | Auth, threat boundary, data protection | ISO/IEC 25010 Security; OWASP Secure SDLC |
| `OBSERVABILITY` | Logs, metrics, traces, event emission contract | ISO/IEC 25010 Maintainability; SRE 3 Pillars |
**`tags`** — YAML array, pick all that apply:
_Environment / Platform (determines test tooling):_
`web` · `mobile-web` · `desktop` · `cli` · `ios` · `android`
_Protocol / Format (determines verification method):_
`rest` · `websocket` · `mcp` · `json-schema` · `typescript`
_NFR cross-cutting (triggers additional test requirements):_
`i18n` · `a11y` · `async` · `streaming` · `realtime` · `auth`
**Test strategy** — derive from the table below and write it in `## Test Plan` header or preamble:
| Type | Tags | Derived test strategy |
| ------------- | ---------------- | ------------------------------------------- |
| SCREEN | web / desktop | Playwright E2E |
| SCREEN | mobile-web | Playwright E2E (mobile viewport) |
| SCREEN | cli | Process spawn + stdout assertion |
| SCREEN | i18n | Locale rendering test |
| SCREEN | a11y | axe-core accessibility test |
| API | rest | HTTP integration test |
| API | websocket | WebSocket integration test |
| API | mcp | MCP protocol integration test |
| FLOW | web / mobile-web | Playwright E2E scenario |
| FLOW | cli | Process integration test |
| FLOW | agent | Agent simulation E2E |
| BEHAVIOR | async | Async state assertion integration test |
| BEHAVIOR | streaming | Stream output integration test |
| DATA | json-schema | Zod / JSON Schema validation test |
| DATA | typescript | vitest-expect-type / tsd type test |
| RULE | _(any)_ | Unit test |
| AGREEMENT | _(any)_ | Consumer-driven contract test |
| INFRA | ci | CI pipeline smoke test |
| PERF | _(any)_ | Benchmark test (timing assertions) |
| SECURITY | auth | Auth integration + permission boundary test |
| OBSERVABILITY | _(any)_ | Log / event emission assertion test |
Multiple tags → list all derived strategies, one per line.
---
### `## Problem`
**Minimum required content:**
1. Concrete symptom — what command, code path, or output is wrong
2. Reproduction condition — when and where it occurs
**Rejected (GATE-WRITE will FAIL):** "TBD", vague single sentence, "It doesn't work correctly"
---
### `## Architecture Review`
#### `### Affected Scope`
List every package, layer, and file that changes. Format: `packages/<name>` / `<file path>`.
#### `### Alternatives Considered`
Minimum 2 alternatives. For each: one-line description + Pro + Con.
#### `### Decision`
Which alternative was chosen and why. Reference the trade-off.
#### `### Architecture Review Checklist`
All 4 items must be `[x]` before GATE-WRITE can pass:
- Normal: `- [x] 영향 패키지/레이어 목록 작성 완료`
- Sibling scan N/A: `- [x] Sibling scan 완료 — N/A: not a CLI command family`
- Sibling scan done: `- [x] Sibling scan 완료 — agent-cli {chat,print,init} 전부 확인`
Never leave `[ ]`. Unchecked = work not done.
---
### `## Completion Criteria`
**Rules:**
- Every item MUST have a `TC-N` prefix (TC-01, TC-02, …) — no exceptions.
- Write BEFORE implementation begins.
- Minimum 1 criterion per distinct feature or sub-item.
- Two accepted forms:
1. **Command form** (preferred): `TC-01: <command> → exits <code> / outputs <string>`
2. **Observable behavior form** (visual/terminal): exact string, ANSI code, specific observable output
**Rejected (GATE-WRITE will FAIL):**
- Item without TC-N prefix
- "Works correctly", "No errors", "Feature is implemented"
- "Displays correctly" (too vague)
---
### `## Test Plan`
**Rules:**
- One row per TC-N item in `## Completion Criteria`.
- Derive Test Type + Tool from the type + tags derivation table.
- If a TC-N cannot be covered by automated test: write the reason in Notes and mark `manual`.
**Rejected (GATE-WRITE will FAIL):**
- Missing row for any TC-N
- "TBD" in Test Type or Tool
- No Notes entry when Tool is "manual"
---
### `## Tasks`
Leave placeholder at draft time. Populated by `backlog-gate-guard` at GATE-IMPLEMENT.
---
### `## Evidence Log`
Leave empty at draft time. All entries written by `backlog-gate-guard`. Never write manually.
## What This Skill Does NOT Do
- Run any gate or make PASS/FAIL decisions → that is `backlog-gate-guard`
- Update frontmatter status → that is `backlog-pipeline`
- Write Evidence Log entries → that is `backlog-gate-guard`
- Decide which test type to use beyond the derivation tableRelated Skills
backlog-pipeline
Orchestrator for the spec document gate pipeline. Reads current status from frontmatter, determines the next gate, invokes backlog-writer or backlog-gate-guard, and updates frontmatter status on PASS. Does nothing else.
backlog-gate-guard
Validates a single named gate for a spec document and appends the result to the Evidence Log. Invoked as a subagent by backlog-pipeline. Does exactly one thing — check one gate and record the outcome.
backlog-execution-orchestrator
Use when executing backlog-driven work, multi-PR initiatives, recommendation-gated implementation, or one-backlog-per-PR workflows. Orchestrates owner skills without duplicating their detailed procedures.
web-design-guidelines
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
vitest-testing-strategy
Defines a practical testing strategy for TypeScript and JavaScript using Vitest across unit, integration, and type-level tests. Use when adding features, refactoring, or preventing regressions with fast feedback loops.
version-management
All packages must have the same version. Use changesets for coordinated version bumps. Never version packages independently.
vercel-react-native-skills
React Native and Expo best practices for building performant mobile apps. Use when building React Native components, optimizing list performance, implementing animations, or working with native modules. Triggers on tasks involving React Native, Expo, mobile performance, or native platform APIs.
vercel-react-best-practices
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.
vercel-composition-patterns
React composition patterns that scale. Use when refactoring components with boolean prop proliferation, building flexible component libraries, or designing reusable APIs. Triggers on tasks involving compound components, render props, context providers, or component architecture. Includes React 19 API changes.
user-request-gate
Use immediately when the user requests any implementation, code change, feature addition, fix, or modification. Gates code writing behind a backlog draft document. Read-only exploration is always permitted.
type-boundary-and-ssot
Applies Robota's preferred workflow for trust-boundary validation, strict typing, quality gates, and owner-based SSOT reuse. Use when adding or reviewing type contracts, boundary parsing, shared contract ownership, or running quality checks.
tdd-red-green-refactor
Kent Beck's TDD workflow. Use when writing new code or modifying existing behavior. Enforces the Red-Green-Refactor cycle with small, verifiable steps.