From greymatter
Drafts a specification from a brainstorm or roadmap row, producing a contract of what will and won't be built. Useful when transitioning from ideation to planning.
How this skill is triggered — by the user, by Claude, or both
Slash command
/greymatter:writing-specsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
A spec is the contract: what's being built, what it must do, what it explicitly will not do, and how the pieces fit. It is what a plan implements *against*. It is not a plan — it does not enumerate steps, files, or commits.
A spec is the contract: what's being built, what it must do, what it explicitly will not do, and how the pieces fit. It is what a plan implements against. It is not a plan — it does not enumerate steps, files, or commits.
spec.md and spec.tracker.json exist in the initiative folder. Every section in the body is wrapped in <!-- section:N:start --> ... <!-- section:N:end --> flags with matching tracker entries. The user has approved the spec, and you've offered to invoke reviewing-specs.
§2); every settled decision in the brainstorm should appear in the spec as a constraint or design choice. For roadmap-row context, read just the row's <!-- decision:N --> flag block plus the roadmap's ## Thesis section — not the whole roadmap. For sibling specs (collision awareness), read just their <!-- section:1 --> (Goal) and <!-- section:2 --> (Non-goals) flag blocks. Use Read offset/limit mechanically to land on flagged regions; cite them by flag in the spec body so the reference survives sibling-spec edits.spec.tracker.json (kind: "spec", populate sections, all status: "draft").reviewing-specs. Stop.You MUST scaffold the spec via dev-pipeline.js assess. Do not hand-write the structure; do not adapt a prior spec. The assess verb copies the canonical templates into the initiative folder and patches frontmatter from the brainstorm — the templates are the single source of truth for the six required sections, the section flag syntax, and the tracker schema. reviewing-specs and dev-pipeline.js validate pair body flags ↔ tracker entries by ordinal, and a hand-written spec that drifts will fail validation.
node greymatter/scripts/dev-pipeline.js assess <init>/brainstorm.md --to spec
This writes <init>/spec.md (with topic patched into frontmatter) and <init>/spec.tracker.json (kind: "spec", sections at status: "draft"). Then populate. The body template ships all six required sections (Goal, Non-goals, Design, Constraints, Rejected alternatives, Open threads) wrapped in section:N flags with placeholder content. The tracker template ships kind: "spec" with the matching six sections at status: "draft".
You MAY add sections beyond the six when the topic genuinely needs them (e.g., migration, security, rollout). When you do, you MUST wrap each in a section:N flag AND add a corresponding tracker entry in the same change. You MUST NOT remove or reorder the six required sections.
When the spec references existing code (constraints section, design section), cite by symbol whenever the code has a name — lib/auth/token.js::verifyToken. The symbol name is the stable handle: greymatter's get_node_bundle <project> lib/auth/token.js verifyToken resolves it without caring what line it lives on, so the reference survives any future edit to the file. Line ranges (lib/auth/token.js:L42-L78) are the fallback for unnamed regions only — file headers, imports, config blocks. A spec that says "see lib/auth/token.js" without a symbol or range pushes the work of finding the relevant code onto every downstream reader and accumulates edit-debt every time the file changes.
spec.tracker.json. Body edits are content corrections only — and content corrections that change the contract should write a superseding spec, not mutate this one.npx claudepluginhub advenire-consulting/greymatter --plugin greymatterCreates or updates SPEC.md documents from requirements, notes, or interview output, structuring into sections for goals, design, edge cases, security, testing, and success criteria. Use for feature specs.
Generates or refines a project spec from a free-form request, PRD, or reviewer findings. Produces an immutable contract for downstream agents.
Distills any intent input (brain dump, PRD, email, transcript) into a canonical SPEC.md kernel and companion files. Useful when a user says create, validate, or update a spec.