writing-specs
Skill1 starsChanged 3 months agoMITView on GitHub
Use when settled requirements need a technical design before implementation planning, especially for architecture, cross-module behavior, interfaces, data flow, persistence or data models, authorization or permissions, compatibility, failure handling, security, performance, or migration decisions. Do not use for simple localized changes whose implementation and validation path are already obvious.
8 other projects use a version of this.
Adopted by
Most recently taken up by
- victorhqc/filberttheir own version, first seen Nov 4, 2026
- iha2/superlitetheir own version, first seen Nov 1, 2026
- JetBrains/thinkrailtheir own version, first seen Oct 13, 2026
- whiteguo233/OpenBiliClawtheir own version, first seen Oct 8, 2026
- sergeyklay/.agentstheir own version, first seen Sep 28, 2026
- augments-labs/sdlc-skillstheir own version, first seen Aug 8, 2026
Other versions8 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 8
- JetBrains/thinkrail★ 7.9ksame name
- whiteguo233/OpenBiliClaw★ 3.7ksame name
- iha2/superlite★ 249same name
- devstefancho/skills★ 13same name
- sergeyklay/.agents★ 6same name
- victorhqc/filbert★ 4same name
- augments-labs/sdlc-skills★ 1same name
- xmtplabs/code-factory★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- dual-reviewSkill
- english-learning-card-imageSkill
- writing-briefsSkill
- writing-plansSkill
- xibin-douyin-script-extractorSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 9 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 8 edited versions we read keep these.
9
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 10
Write the smallest technical design that resolves the decisions an implementer should not rediscover.
- Distinctive: line 12
Do not turn an obvious local change into a design ceremony.
- Distinctive: line 20
Read project rules, the approved brief or settled requirements, nearby design documents, and the relevant source, configuration, tests, …
- Very specific: line 21
If no material technical decision remains, stop without producing a placeholder spec.
- Distinctive: line 23
If one safe solution follows clearly from the evidence, record the assumptions and proceed.
- Distinctive: line 24
Ask the user only when the choice materially changes product scope, a public contract, security, migration, irreversible risk, or another …
- Distinctive: line 25
Verify feasibility against the real project.
- Distinctive: line 26
Write and self-review the spec, then follow the project's review rules.
- Distinctive: line 66
Before handing off the spec, check that:
- Distinctive: line 68
Every material design claim is grounded in the actual project or clearly labeled as an assumption.
“Common” is measured: kept by at least 6 in 10 of the 8 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Writing Specs
Purpose
Write the smallest technical design that resolves the decisions an implementer should not rediscover. A brief defines the problem and requirements; a spec defines how the system should satisfy them; a plan sequences the implementation.
Do not turn an obvious local change into a design ceremony.
Default Location
Save specs to docs/specs/YYYY-MM-DD-<topic>-design.md unless project rules, an existing convention, or the user specifies another location. Preserve existing historical paths rather than renaming them for this skill.
Workflow
- Read project rules, the approved brief or settled requirements, nearby design documents, and the relevant source, configuration, tests, dependencies, and consumers.
- If no material technical decision remains, stop without producing a placeholder spec. Recommend direct implementation, or
writing-plansonly when real sequencing, dependency, or verification boundaries remain. - Identify only the decision surfaces that matter: architecture, component boundaries, control and data flow, interfaces, persistence and schemas, authorization and permissions, failure behavior, compatibility, observability, performance, security, and migration. Omit irrelevant sections.
- If one safe solution follows clearly from the evidence, record the assumptions and proceed. If a genuine unresolved decision remains, compare only plausible alternatives, recommend one, and explain the trade-off. Do not force a fixed number of options.
- Ask the user only when the choice materially changes product scope, a public contract, security, migration, irreversible risk, or another user-owned decision that evidence cannot settle. Otherwise choose the most reasonable default and label it.
- Verify feasibility against the real project. Distinguish confirmed behavior from assumptions and mark unavailable runtime checks explicitly.
- Write and self-review the spec, then follow the project's review rules. Do not require section-by-section approval, a separate visual companion, a commit, a worktree, subagents, or an implementation plan unless the task independently warrants them.
Spec Template
# <Change> - Technical Design
- Date: YYYY-MM-DD
- Status: Design pending review
- Inputs: <brief, issue, request, or existing design>
## Context and Requirements
<The settled behavior this design must satisfy. Link rather than duplicate a brief when possible.>
## Current System
<Relevant code paths, constraints, and evidence from the repository or runtime.>
## Proposed Design
<Components, responsibilities, control flow, and data flow.>
## Interfaces and Data
<Public or internal contracts, events, schemas, persistence, and compatibility only when relevant.>
## Failure and Edge Cases
<Errors, retries, concurrency, fallback, cleanup, and observability only when relevant.>
## Security, Performance, and Migration
<Include only applicable risks, rollout constraints, and mitigations.>
## Verification Strategy
<Tests, runtime checks, and acceptance evidence needed to validate the design.>
## Alternatives Considered
<Only real alternatives and why the recommendation is preferable.>
## Open Questions
<Only unresolved decisions that could change the design.>Quality Bar
Before handing off the spec, check that:
- Every material design claim is grounded in the actual project or clearly labeled as an assumption.
- The design resolves important boundaries and failure behavior without prescribing trivial patch mechanics.
- Requirement changes have been returned to the brief or request instead of being smuggled into the design.
- Alternatives appear only where a real trade-off exists.
- The verification strategy can detect the most likely failures introduced by the design.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

