spec-framework
SKILL.md
Specification Framework
Detailed structure for each layer of a specification.
Applicability Rubric
| Condition | Pass | Fail |
|---|---|---|
| Structuring new spec | Writing a spec from scratch | Spec structure already established |
| Layer completeness check | Need to verify all layers are addressed | Layers are already complete |
| Element selection | Deciding which elements to include | Elements already chosen |
| Multi-layer coordination | Ensuring layers align with each other | Single-layer change only |
Apply when: Any condition passes
Core Principles
Intent Layer
Provides context for judgment calls:
| Element | Role | Core |
|---|---|---|
| Purpose | What problem the system solves | ✓ |
| Users | Who uses it, what they accomplish | ✓ |
| Impacts | What behavior changes indicate success (drives priority) | |
| Success criteria | What defines "done" and "working" | |
| Non-goals | What is explicitly out of scope |
Without intent, implementers make technically correct but misaligned decisions.
Design Layer
Defines observable behaviors and boundaries:
| Element | Role | Format | Core |
|---|---|---|---|
| System boundary | What's inside vs outside | See Boundary types | |
| User journeys | Task flows achieving impacts | Context → Action → Outcome | |
| Interfaces | Contracts between internal modules | - | |
| Presenter | How system presents to users | UI: colors, layout / CLI: output format / API: response structure | |
| Behaviors | Outcomes for each state × operation | State + Operation → Result | ✓ |
| Error scenarios | How failures are handled | - | ✓ |
Boundary types:
| Type | Defines | Example |
|---|---|---|
| Responsibility | What system does / does not do | "Validates input; does not store history" |
| Interaction | Input assumptions / Output guarantees | "Assumes authenticated user; Returns JSON only" |
| Control | What system controls / depends on | "Controls order state; Depends on payment service" |
Consistency Layer
Establishes patterns for uniform implementation (all items enhance quality, none required for minimal spec):
| Concept | Role | Example |
|---|---|---|
| Context | Shared understanding | "This is event-driven" |
| Terminology | Same concept uses same name throughout | "Order" not "Purchase/Transaction/Request" |
| Pattern | Recurring situation → approach | "State changes via events" |
| Form | Expected structure | "Events have type, payload", "Primary: #FF0000", "Errors to stderr" |
| Contract | Interaction agreement | "Handlers must be idempotent" |
Weave these into relevant sections rather than listing separately.
Implementation Standards (Optional)
For projects requiring code-level consistency across multiple contributors or extended development periods.
| Category | Purpose | Examples |
|---|---|---|
| Architecture | Module boundaries and dependencies | Clean Architecture, Hexagonal, Layered |
| Design Patterns | Reusable solutions | Repository, Factory, Strategy |
| Testing Style | Test structure and conventions | Given-When-Then, Arrange-Act-Assert |
| Code Organization | Directory structure and naming | Feature-based, layer-based, naming conventions |
When to include:
- Multiple contributors work on the codebase
- Development spans extended periods
- Codebase requires shared conventions
When to skip:
- Simple scripts or single-file utilities
- Prototypes or proof-of-concept
- Short-lived projects
Layer Selection Guide
| Project Characteristic | Intent | Design | Consistency | Implementation Standards |
|---|---|---|---|---|
| Solo prototype | Core only | Core only | Skip | Skip |
| Small team (2-5) | Full | Full | Terminology + Patterns | Optional |
| Multi-team | Full | Full | Full | Recommended |
| External API / Public contract | Full | Full | Full | Required |
Element Completeness Guide
| Design Element | When to Include | When to Skip |
|---|---|---|
| System boundary | External dependencies exist | Self-contained utility |
| User journeys | Multiple user-facing flows | Single-purpose tool |
| Interfaces | Multiple internal modules | Monolithic implementation |
| Presenter | User-facing output matters | Internal service |
| Behaviors | Always (Core) | Never skip |
| Error scenarios | Always (Core) | Never skip |
Completion Rubric
Before Applying Framework
| Criterion | Pass | Fail |
|---|---|---|
| Scope understanding | Know what the system does | Scope unclear |
| Layer necessity evaluated | Determined which layers needed per project type | Blindly applying all layers |
| Existing content assessed | Reviewed any existing spec content | Starting without context |
During Application
| Criterion | Pass | Fail |
|---|---|---|
| Intent before Design | Intent layer completed before Design details | Design written without Intent |
| Core elements present | All Core-marked elements addressed | Core elements missing |
| Boundaries explicit | System boundaries clearly defined | Boundaries implied or missing |
| Layer selection justified | Layer depth matches project characteristic | Over/under-layered for context |
After Application
| Criterion | Pass | Fail |
|---|---|---|
| Intra-layer consistency | Elements within each layer do not contradict | Internal contradictions |
| Cross-layer alignment | Design serves Intent; Consistency supports Design | Layers misaligned |
| Element completeness | Included elements fully specified | Partial elements left incomplete |
Weekly Installs
1
Repository
elct9620/claude…c-pluginGitHub Stars
1
First Seen
6 days ago
Security Audits
Installed on
zencoder1
amp1
cline1
openclaw1
opencode1
cursor1