spec-writing — Concrete Specification Writing
Apply compact writing rules that let readers follow a process without guessing what the system does or where its output goes.
Language Rules
- Auto-detect the requested output language and write in that language.
- For English output, read writing-rules.md and abstract-verbs.md.
- For Japanese output, read writing-rules.ja.md and abstract-verbs.ja.md.
- An explicit language override takes priority over automatic detection.
- Load one language pair only. Do not combine language-specific rules across pairs.
Scope
Use this skill to generate or revise requirements, designs, task plans, test plans, and related specification reports.
The skill provides two contracts:
writing-rules* defines shared SW-* rules for process descriptions, audience separation, reasoning, and sequence diagrams.
abstract-verbs* is the primary source for stable AV-* candidate patterns and the evidence required to make each use concrete.
Execution Flow
Step 1: Identify the document and audience
- Determine whether the output is a requirement, design, task plan, test plan, or a revision of one.
- Identify the readers of each section before drafting it.
- Keep an overview understandable with general system names. Put types, functions, events, and storage identifiers in implementation-facing sections.
Step 2: Load the writing contract
- Read the writing rules and abstract-verb vocabulary selected by the Language Rules.
- Treat
SW-* and AV-* IDs as stable identifiers when explaining or reporting a rewrite.
- Apply the rules before generating new text and before changing existing text.
Step 3: Write observable processes
For every process description, make these elements traceable in the same sentence, list item, paragraph, or adjacent sequence-diagram messages:
- The actor that performs the process.
- The trigger, state, event, or input that starts it.
- The observable action, such as storing, comparing, calculating, sending, rejecting, or stopping.
- The destination or consumer of the result.
Do not force all four elements into one sentence when nearby text identifies them unambiguously. Do not invent an actor, trigger, action, or destination that the source requirements do not establish; use a visible placeholder or record the unresolved decision instead.
Step 4: Apply audience and reasoning rules
- Apply every common
SW-* rule in the selected writing reference.
- Apply language-specific rules from that reference when present.
- State the mechanism behind a causal claim.
- Remove unsupported certainty, hedging, intensifiers, previews, summaries, and generic praise that add no requirement or design information.
- In a sequence diagram, name the data in each message and show the receiver's next observable action in an adjacent message or note.
Step 5: Self-check before delivery
- Search the draft for every
Pattern in the selected abstract-verb table.
- For each match, inspect nearby text for all four process elements and the row's
Required evidence.
- Keep the term when the surrounding text makes the operation unambiguous, including a defined mathematical operation.
- Rewrite an underspecified use with concrete actions and destinations.
- Confirm that overview sections remain readable without implementation identifiers and that implementation-facing sections retain identifiers needed to build the system.
- Confirm that every sequence-diagram message names its payload and the receiver's subsequent action.
Error Handling
| Situation |
Action |
| A selected reference file is missing |
Name the missing file and stop before generating or revising the specification. |
| An abstract-verb table has missing columns or duplicate IDs |
Apply the available writing rules, report that the vocabulary self-check could not run, and do not infer replacement rows. |
| The source does not determine one of the four process elements |
Preserve the uncertainty with a named placeholder or unresolved decision; do not fabricate behavior. |
| The term describes a defined mathematical operation |
Keep the term when its input, transformation rule, and output are explicit. |
Attribution
This skill distills specification-focused rules from k16shikano/japanese-tech-writing, published at https://gist.github.com/k16shikano/fd287c3133457c4fd8f5601d34aa817d under the Unlicense. This skill's repository license remains MIT.
1---2name: spec-writing3description: Write and revise requirements, designs, task plans, and test plans with concrete process descriptions, traceable reasoning, and audience-appropriate detail. Provides a stable abstract-verb vocabulary for specification checks. English triggers: "write a clear specification", "revise this design", "apply spec-writing" 日本語トリガー: 「読みやすい仕様書を書く」「設計書を推敲」「spec-writingを適用」4license: MIT5---67# spec-writing — Concrete Specification Writing89Apply compact writing rules that let readers follow a process without guessing what the system does or where its output goes.1011## Language Rules12131. Auto-detect the requested output language and write in that language.142. For English output, read [writing-rules.md](references/writing-rules.md) and [abstract-verbs.md](references/abstract-verbs.md).153. For Japanese output, read [writing-rules.ja.md](references/writing-rules.ja.md) and [abstract-verbs.ja.md](references/abstract-verbs.ja.md).164. An explicit language override takes priority over automatic detection.175. Load one language pair only. Do not combine language-specific rules across pairs.1819## Scope2021Use this skill to generate or revise requirements, designs, task plans, test plans, and related specification reports.2223The skill provides two contracts:2425- `writing-rules*` defines shared `SW-*` rules for process descriptions, audience separation, reasoning, and sequence diagrams.26- `abstract-verbs*` is the primary source for stable `AV-*` candidate patterns and the evidence required to make each use concrete.2728## Execution Flow2930### Step 1: Identify the document and audience31321. Determine whether the output is a requirement, design, task plan, test plan, or a revision of one.332. Identify the readers of each section before drafting it.343. Keep an overview understandable with general system names. Put types, functions, events, and storage identifiers in implementation-facing sections.3536### Step 2: Load the writing contract37381. Read the writing rules and abstract-verb vocabulary selected by the Language Rules.392. Treat `SW-*` and `AV-*` IDs as stable identifiers when explaining or reporting a rewrite.403. Apply the rules before generating new text and before changing existing text.4142### Step 3: Write observable processes4344For every process description, make these elements traceable in the same sentence, list item, paragraph, or adjacent sequence-diagram messages:45461. The actor that performs the process.472. The trigger, state, event, or input that starts it.483. The observable action, such as storing, comparing, calculating, sending, rejecting, or stopping.494. The destination or consumer of the result.5051Do not force all four elements into one sentence when nearby text identifies them unambiguously. Do not invent an actor, trigger, action, or destination that the source requirements do not establish; use a visible placeholder or record the unresolved decision instead.5253### Step 4: Apply audience and reasoning rules54551. Apply every common `SW-*` rule in the selected writing reference.562. Apply language-specific rules from that reference when present.573. State the mechanism behind a causal claim.584. Remove unsupported certainty, hedging, intensifiers, previews, summaries, and generic praise that add no requirement or design information.595. In a sequence diagram, name the data in each message and show the receiver's next observable action in an adjacent message or note.6061### Step 5: Self-check before delivery62631. Search the draft for every `Pattern` in the selected abstract-verb table.642. For each match, inspect nearby text for all four process elements and the row's `Required evidence`.653. Keep the term when the surrounding text makes the operation unambiguous, including a defined mathematical operation.664. Rewrite an underspecified use with concrete actions and destinations.675. Confirm that overview sections remain readable without implementation identifiers and that implementation-facing sections retain identifiers needed to build the system.686. Confirm that every sequence-diagram message names its payload and the receiver's subsequent action.6970## Error Handling7172| Situation | Action |73|---|---|74| A selected reference file is missing | Name the missing file and stop before generating or revising the specification. |75| An abstract-verb table has missing columns or duplicate IDs | Apply the available writing rules, report that the vocabulary self-check could not run, and do not infer replacement rows. |76| The source does not determine one of the four process elements | Preserve the uncertainty with a named placeholder or unresolved decision; do not fabricate behavior. |77| The term describes a defined mathematical operation | Keep the term when its input, transformation rule, and output are explicit. |7879## Attribution8081This skill distills specification-focused rules from `k16shikano/japanese-tech-writing`, published at https://gist.github.com/k16shikano/fd287c3133457c4fd8f5601d34aa817d under the Unlicense. This skill's repository license remains MIT.