spae-spec
Skill2 starsChanged 15 days agoMITView on GitHub
- Initialize a new SPAE workstream. - Finish an interrupted draft (phase: spec, status: active). - Rewrite requirements from scratch when /verify routes back (status: revision_required). - Distill user requests, verification findings, and codebase context into concise, testable requirements while preserving SPAE phase boundaries. - Generate .spae/[workstream]/SPEC.md and advance STATE.json to phase: plan. Resolve target workstream by first matching rule: - Explicit: workstream name argument → .spae/[name]/. - Implicit active: no name, no proposal → .spae/current target. - Implicit new:…
In this repository21 other files it gives its agents.
- auto-commitSkill
- cleanSkill
- code-reviewSkill
- coverageSkill
- documentSkill
- purifySkill
- puritySkill
- refactorSkill
- spae-buildSkill
- spae-checkSkill
- spae-fixSkill
- spae-inspectSkill
- spae-orchestrateSkill
- spae-planSkill
- spae-prepareSkill
- spae-spawnSkill
- spae-verifySkill
- structureSkill
- testSkill
- tipSkill
- troubleshootSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
23 rules. About 0 are common, 10 are distinctive, and 13 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
13
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 33
Implicit active: no name, no proposal → .spae/current target.
- Very specific: line 34
Implicit new: no name, proposal → .spae/current target when it lacks STATE.json or reads phase: spec, status: active.
- Distinctive: line 62
Read AGENTS.md at project root in full when present.
- Distinctive: line 68
Read codebase sections narrowly.
- Distinctive: line 78
Treat observations as context, not spec items:
- Very specific: line 86
Write from scratch; never reuse the prior SPEC.md.
- Very specific: line 95
Create .spae/[workstream]/ when absent.
- Very specific: line 96
Write SPEC.md, replacing any prior version.
- Very specific: line 97
Write STATE.json per references/STATE.md exit snapshot.
- Very specific: line 113
Write observable, testable, and implementation-neutral requirements.
- Distinctive: line 120
Never invent exclusions, assumptions, edge cases, or failure modes.
- Very specific: line 130
Run the aspect sweep on Draft only, per references/aspect-sweep.md.
- Distinctive: line 138
AGENTS.mdauthority: If AGENTS.md exists at project root, its constraints, conventions, and gates bind all spec requirements. - Very specific: line 141
Write scope: write only .spae/current symlink, .spae/[workstream]/ directory, SPEC.md, and STATE.json.
- Very specific: line 146
Version control and release: never author requirements for version control (git staging, commits, branches, tags) or release operations …
- Distinctive: line 151
Autonomy: never ask users for input or clarification mid-execution.
- Very specific: line 171
State schema: never introduce STATE.json fields outside references/STATE.md.
- Very specific: line 183
Ensure .spae/[workstream]/SPEC.md contains distilled requirements and structure matching references/SPEC.md exactly.
- Very specific: line 204
Ensure .spae/[workstream]/STATE.json specifies phase: "plan", status: "active", cursor: {}, and tasks: {}.
- Distinctive: line 207
Verify invocations without a workstream name, with a proposal, resolve per Input rules.
- Distinctive: line 214
Verify all other halt conditions leave artifacts intact.
- Distinctive: line 219
Keep prose terse while ensuring clarity.
- Distinctive: line 222
Use lists and sub-lists for long sentences and dense paragraphs.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Spec (SPAE)
When to use
- Initialize a new
SPAE workstream. - Finish an interrupted draft (
phase: spec,status: active). - Rewrite requirements from scratch when
/verifyroutes back (status: revision_required).
Goal
- Distill user requests, verification findings, and codebase context
into concise, testable requirements while preserving
SPAEphase boundaries. - Generate
.spae/[workstream]/SPEC.mdand advanceSTATE.jsontophase: plan.
Input
Resolve target workstream by first matching rule:
- Explicit: workstream name argument →
.spae/[name]/. - Implicit active: no name, no proposal →
.spae/currenttarget. - Implicit new: no name, proposal →
.spae/currenttarget when it lacksSTATE.jsonor readsphase: spec,status: active; otherwise a new kebab-case slug unused under.spae/.
Sources:
Draft: proposal or task argument.Revision:.spae/[workstream]/VERIFY.md.- Both:
AGENTS.mdat project root; codebase. .spae/[workstream]/STATE.jsonwhen present;references/STATE.mdholds field reference, directives, and snapshots.
Workflow
Select path by target state:
Draft: target directory absent, lacksSTATE.json, orSTATE.jsonreadsphase: spec,status: active.Revision:STATE.jsonreadsstatus: revision_required.
- GATE—Make no writes:
- Parse
STATE.jsonwhen present; self-heal missing metadata:version("1.0"),workstream(target directory name),status("active");PERSISTwrites the healed fields. - Select
DraftorRevision. - Halt on any Halt conditions entry.
- Parse
- ORIENT—State goal and path in one sentence:
- Source code and
SPAEartifacts stay unmodified untilPERSIST. - Read
AGENTS.mdat project root in full when present. Revision: readVERIFY.mdin full.
- Source code and
- PLAN—Identify codebase sections to read:
Draft: sections the proposal touches.Revision: source files eachVERIFY.mdfinding names.
- ACT—Draft
SPEC.mdcontent:- Read codebase sections narrowly; widen only on uncertainty.
Draft:- Seed the aspect ledger from an existing
SPEC.md, when present, then sweep the proposal perreferences/aspect-sweep.md. - Derive goal, requirements, testing strategy, out-of-scope boundaries, and assumptions from the ledger.
- Seed the aspect ledger from an existing
Revision:- Convert each hard block into a spec item.
- Assess soft findings against
YAGNI; discard soft findings addingunrequestedscope or theoretical complexity. - Treat observations as context, not spec items:
- Re-classify an observation naming a clear
SPEC.mddeviation as a hard block, then convert it. - Convert an observation to a spec item only when it names
actionable scope reduction—simplify or remove an existing
element—never to formalize or expand
unrequestedscope. - Otherwise, drop after noting context.
- Re-classify an observation naming a clear
- Inspect source files to ground new requirements.
- Write from scratch; never reuse the prior
SPEC.md; assign freshR-NNNidentifiers.
- Apply Directives and Constraints; follow
references/SPEC.mdstructure.
- VERIFY—Loop over Verification criteria for
SPEC.md:- For each failure: return to
ACT, fix, then re-enterVERIFY. - Exit only when every criterion passes.
- Halt only on a Halt conditions entry.
- For each failure: return to
- PERSIST—Write in order:
- Create
.spae/[workstream]/when absent. - Write
SPEC.md, replacing any prior version. - Write
STATE.jsonperreferences/STATE.mdexit snapshot. - Point
.spae/currentsymlink to.spae/[workstream]. - Re-read
STATE.jsonand.spae/current; on a mismatch against Verification state criteria, rewrite and re-read beforeREPORT.
- Create
- REPORT—Emit result following result directives and using result template.
Directives
- Optimize for agent, token, and context efficiency.
- Align with existing codebase patterns; avoid speculative design.
- Filter all requirements and incoming findings against
YAGNI; discardunrequestedscope, speculative design, or theoretical complexity. File YAGNI-discarded ledger aspects underOut of scopewith a one-line rationale, never a silent drop. - Write observable, testable, and implementation-neutral requirements;
tag each with a unique, stable
R-NNNidentifier. - Match level of detail to task size; avoid process bloat:
- Require failure modes and edge cases only when the proposal introduces complex branching or error paths.
- Set
AssumptionstoNoneon single-behavior specs unless explicit constraints exist. - Never invent exclusions, assumptions, edge cases, or failure modes; keep section headers intact.
- Consult
references/verification-guide.md; decide what evidence proves each requirement, translate manual checks into automated evidence, and record outcomes lacking practical evidence asOut of scoperesidual risks. - Consult
references/prose-protocol.mdbefore draftingSPEC.md. - Refine and optimize
SPEC.mdfor agent consumption: agents read it for varied purposes, with no memory of this run; keep it self-contained, explicit, and token-dense. - Run the aspect sweep on
Draftonly, perreferences/aspect-sweep.md;RevisionconsumesVERIFY.mdfindings directly. ReferencePHASE_COUNTby name only. - Surface aspect-sweep phases run in the result
Actionslist (for example,aspect sweep: 8/8 phases, 12/12 sections mapped).
Constraints
AGENTS.mdauthority: IfAGENTS.mdexists at project root, its constraints, conventions, and gates bind all spec requirements; contradictions count as spec defects.- Write scope: write only
.spae/currentsymlink,.spae/[workstream]/directory,SPEC.md, andSTATE.json; forbid all other writes. Inspect source code to ground requirements and confirm fit; stay read-only. - Phase boundary: hand off work to
/plan; don't decompose tasks. - Version control and release: never author requirements for version
control (git staging, commits, branches, tags) or release operations
(package publishing, deployments); place them under
Out of scopewith the template's standard rationale. Never stage or commit.spae/or execute git mutations. - Autonomy: never ask users for input or clarification
mid-execution; halts and failures stop autonomously. Never author a
spec item, testing strategy, or assumption presuming human execution,
an attended or interactive terminal, or human presence; treat such a
need as a scope defect and resolve before
PERSIST. - Ambiguity: resolve from codebase evidence first; fall back to a
documented conservative assumption only when evidence proves
insufficient; record under Assumptions in
SPEC.md. - Contradictions: audit
SPEC.mdfor internal conflict—mutually exclusive requirements, a requirement anOut of scopeitem forbids, a requirement contradictingAGENTS.md,Assumptions, orTesting strategy, or an assumption contradicting source code. Self-heal by precedence:AGENTS.mdoverrides requirements.- Requirements override
Out of scope, except version control, release, and human-presence exclusions. - Requirements override assumptions and testing strategy.
- Source code overrides assumptions.
- Otherwise apply the Ambiguity fallback; never halt on a contradiction.
- State schema: never introduce
STATE.jsonfields outsidereferences/STATE.md. - Halt conditions: halt without writing; report
Failedwith a diagnostic underFindings:.spae/currentmissing or dangling when resolution needs it.STATE.jsonholds unparseable JSON syntax.- Target state matches neither path.
Draftwithout a proposal or task.RevisionwithoutVERIFY.md.
Verification
- Ensure
.spae/[workstream]/SPEC.mdcontains distilled requirements and structure matchingreferences/SPEC.mdexactly. - Confirm each item carries a unique
R-NNNidentifier. - Confirm no Contradictions finding survives in
SPEC.md. - Confirm zero requirements mandate git operations, package publishing, or release deployments.
- Confirm no spec item, testing strategy, or assumption in
SPEC.mdpresumes human execution, an attended or interactive terminal, or human presence. - Confirm testing strategy covers expected behavior; require failure modes and edge cases only for complex proposals; allow single-target verification on single-behavior specs.
- Confirm section depth matches task size; no invented edge case, failure mode, or exclusion on a single-behavior spec.
- Confirm every
Draftaspect-ledger entry resolves to anR-NNN,Out of scope,Assumption,Testing strategyelement, orGoalsuccess criterion—no orphaned aspect. - Confirm every proposal
section-refmaps to a ledger signature or carriesno claim, perreferences/aspect-sweep.md. - Confirm
Revisionruns no aspect sweep; convertedVERIFY.mditems map directly to spec items. - Ensure
.spae/[workstream]/STATE.jsonspecifiesphase: "plan",status: "active",cursor: {}, andtasks: {}. - Confirm
.spae/currentlinks to.spae/[workstream]. - Verify invocations without a workstream name, with a proposal, resolve per Input rules.
- Confirm revision processes resolve every
VERIFY.mdhard block and soft finding, and each converted observation, without editing forbidden files. - Confirm unparseable
STATE.jsonor orphaned artifacts halt with diagnostics; no artifacts modified. - Verify all other halt conditions leave artifacts intact.
Result directives
- Minimum words. Maximum signal.
- Keep prose terse while ensuring clarity.
- Optimize prose for agent, token, and context efficiency.
- Split actions, findings, and summaries into terse bullet points.
- Use lists and sub-lists for long sentences and dense paragraphs.
- Emit result template as live markdown—never in a code fence.
- Output nothing outside template.
- Source every
SPAE Statusvalue from confirmed re-read, never from working memory of intent.
Result template
<!-- prettier-ignore-start -->### Execution Summary
- **Actions**:
- [Terse list of actions taken]
- **Files**:
- [Terse list of affected files]
- **Findings**:
- [Terse list of notable findings]
- **Summary**:
- [Terse list of summary of changes]
> **`SPAE` Status** • `[workstream-name]`
> **Result**: [Spec Complete | Revision Complete | Failed]
> **Next Phase**: `/plan` _(unless failed)_
> **Impact**: [Terse impact statement]
>
> _Run `/plan` to decompose `SPEC.md` into atomic tasks._ _(unless failed)_<!-- prettier-ignore-end -->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.

