From spec-first
Routes requests into spec-first workflows before substantial work like editing files, running state-changing commands, debugging, reviewing, planning, setup, updates, or architecture decisions.
npx claudepluginhub sunrain520/spec-firstThis skill uses the workspace's default tool permissions.
`using-spec-first` is the standalone meta skill and entry governor for `spec-first` in this repository.
Routes tasks to appropriate spec skills like spec-research or spec-plan based on type, orchestrates workflow phases from research to finish. Use when starting conversations or tasks.
Enforces spec-first workflow for non-trivial builds: frames problems, creates spec.md, todo.md, decisions.md before coding to clarify decisions and verify outcomes.
Transforms ideas into structured specifications (requirements, design, tasks) before implementation. Use when building features, fixing bugs, refactoring, or designing systems.
Share bugs, ideas, or general feedback.
using-spec-first is the standalone meta skill and entry governor for spec-first in this repository.
Its job is to decide whether the current request should enter a spec-first workflow, and if so, route it to the right workflow before the agent starts changing state.
It is not a command-backed workflow, slash command, or $spec-* workflow. It is exposed as a standalone meta skill so host skill discovery can load the full entry policy:
.claude/skills/using-spec-first/SKILL.md and also reads the managed block in CLAUDE.md; its SessionStart hook may re-inject that same bootstrap block..agents/skills/using-spec-first/SKILL.md and also reads the managed block in AGENTS.md.It does not exist to force every task through brainstorming.
If you were dispatched as a subagent or worker for a specific bounded task, do not restart workflow routing unless the parent explicitly asked you to choose a workflow. Complete the assigned task within its scope and report back.
spec-first workflows should handle the request.using-spec-first governs entry routing only. Once a workflow starts, follow that workflow's own SKILL.md./spec:*, $spec-*, or a skill name), honor that route unless it is clearly impossible or unsafe.Treat these as substantial work:
These are not substantial work:
spec-first provides no meaningful routing benefitUse a decision tree, not a blanket "brainstorm first" rule. Pick the first strongly matching route. If multiple routes apply, choose the workflow that best matches the user's immediate intent.
When multiple routes could apply, use this priority:
Do not chain multiple workflows automatically unless the active workflow explicitly hands off. Route to the next best workflow and let that workflow govern its own handoff.
/spec:mcp-setup$spec-mcp-setup/spec:* / $spec-* entries, route to:
/spec:update$spec-update/spec:setup$spec-setup/spec:sessions$spec-sessions/spec:slack-research$spec-slack-research/spec:graph-bootstrap$spec-graph-bootstrap/spec:debug$spec-debug/spec:code-review$spec-code-review/spec:doc-review$spec-doc-review/spec:ideate$spec-ideate/spec:brainstorm or /spec:ideate$spec-brainstorm or $spec-ideate/spec:plan$spec-planspec-write-tasks as a standalone skill. Do not describe it as /spec:write-tasks or $spec-write-tasks; it is not a command-backed workflow./spec:work$spec-work/spec:work-beta$spec-work-beta/spec:polish-beta$spec-polish-beta/spec:compound$spec-compound/spec:compound-refresh$spec-compound-refreshgit-commit-push-pr skill in description-only mode; do not expose a separate spec-first PR-description workflow entrypoint./spec:release-notes$spec-release-notes/spec:optimize$spec-optimizespec-first.workflow-first does not mean brainstorming-first.spec-brainstorm the universal default front door.using-superpowers rule that “if there is a 1% chance a skill applies, you must invoke it.”using-spec-first itself as a command-backed workflow./spec:*.$spec-*.spec-session-inventory and spec-session-extract.spec-first init, clean, update, or other state-changing commands just because this governor matched; first route to the appropriate workflow or ask a narrow confirmation when required.These thoughts mean pause and apply the routing rules before acting:
| Thought | Better move |
|---|---|
| "I'll just edit the file first." | Check whether this is work, debug, update, or compound-refresh. |
| "This is just a quick architecture/prompt change." | Treat architecture, prompt, workflow, and contract changes as substantial work. |
| "I need to inspect a bunch of files before deciding." | Do a minimal fact check only; route if the request is already clearly review/debug/plan/work. |
| "The user asked for a review, but I can answer informally." | Use code-review or doc-review when the review target is concrete. |
| "The task is vague, but I can probably implement something." | Use brainstorm or plan before work. |
| "A helper skill exists, so I should expose it." | Only public workflows are user entrypoints; internal helpers stay hidden. |
| "I should run init/update now." | Route to update or setup first unless the user explicitly requested the command. |
/spec:*.$spec-*.using-spec-first itself is a standalone meta skill, not a /spec:* or $spec-* workflow entrypoint.spec-write-tasks is a standalone skill for optional plan-to-task-pack compilation, not a /spec:* or $spec-* workflow entrypoint.If this guidance has already been injected through CLAUDE.md, AGENTS.md, or Claude SessionStart:
using-spec-first just to bootstrap yourself/spec:* or $spec-* workflow entrypoint when routing is neededskills/using-spec-first/SKILL.md as the source-of-truth text for this routing policyspec-first init --claude or spec-first init --codexIf no spec-first workflow meaningfully applies, answer directly or perform the normal task without forcing workflow indirection.