From spade
Fast-track path for trivial work — tiny bug fixes, one-line tweaks, config nudges, docs typos, and other changes too small for the full SPADE loop. Use when someone says "just fix this small thing", "quick tweak", "one-line change", "typo fix", "rename this variable", or when you would otherwise invoke /spade-scope for a change that clearly meets every gate criterion below. Do NOT use for anything touching architecture, auth, schemas, public APIs, or requiring more than one focused commit.
How this skill is triggered — by the user, by Claude, or both
Slash command
/spade:spade-quickThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Before doing anything else, run `~/.spade/bin/spade-update-check` using the
Before doing anything else, run ~/.spade/bin/spade-update-check using the
Bash tool and show the output to the user if it is non-empty. If the script
does not exist or fails, skip silently and continue with the skill.
Read .spade/config in the current project directory. This file specifies
which Linear team, project, and default assignee to use. Use these values
for all Linear operations. If the file doesn't exist, ask the human which
team and project to use, or suggest running /spade-onboard first.
Before any tracker call or local-file access, resolve the operating mode
once per docs/FRAMEWORK.md § Mode Resolver:
mode: from .spade/config. An explicit value (linear,
local, or hybrid) wins immediately.mode: is absent, auto-detect: probe with a list_teams MCP call
(try/skip, 5-second timeout). Resolve linear if it returns a team
set containing linear.team_id; otherwise resolve local.mode with a configured team_id and a
failing probe is a fail-loud abort; an absent mode with a
failing probe degrades quietly to local.Do not embed the resolver algorithm — it is single-sourced in FRAMEWORK.md. The resolved mode governs every tracker-vs-local branch in this skill:
linear — the tracker is canonical; operate against Linear MCP.local — .spade/ files are canonical; make zero Linear MCP
calls; read and write the paths in FRAMEWORK.md § Local Layout.hybrid — the tracker is canonical; after a successful tracker
write, mirror to .spade/ best-effort per FRAMEWORK.md § Hybrid Mode.You are delivering a trivial change through the SPADE fast-track path.
The full loop (Scope → Plan → Approve → Deliver → Evaluate) is friction
theatre for a typo fix or a one-line config tweak. /spade-quick compresses
it into four steps — Identify → Fix → Verify → PR — where the PR
description is the audit artefact and there are no sub-issues.
This path is a privilege, not a default. If any gate criterion below
fails, stop and run /spade-scope for the full loop instead. The gate
exists so fast-track does not slowly swallow the framework.
Fast-track should feel fast but not reckless.
/spade-scope. The cost
of restarting is low; the cost of a fast-track change that should
have had a Scope is high.type:*
label applies if it's not obvious.Walk through each of these before writing any code. If any one fails,
stop and invoke /spade-scope instead.
package.json, pyproject.toml, go.mod,
Cargo.toml, Gemfile, and equivalents must remain untouched.git revert should undo the
entire change cleanly.If any criterion fails, stop immediately and tell the human:
This doesn't fit the fast-track gate because [specific criterion]. Running
/spade-scopefor the full loop is the right call here.
Do not attempt to "partially" fast-track by skipping just one rule. The gate is all-or-nothing.
Every quick-path change gets a type:* label. Pick the closest match:
type:bug — fixing incorrect behaviourtype:tweak — small behaviour or UX adjustment that isn't strictly a bugtype:chore — maintenance, version bumps (non-breaking), housekeepingtype:docs — documentation, comments, README updatestype:refactor — rename, extract, inline, or similar non-behavioural changeIf the work is ambiguous between two types, ask the human via
AskUserQuestion (per docs/FRAMEWORK.md § "Asking the Human")
listing the candidate types as options. This is a closed-set
decision; don't ask in free-form prose.
Similarly, if the gate-check produces an ambiguous "is this trivial
enough" judgement that the human needs to call, prompt via
AskUserQuestion with options Continue on quick path /
Fall back to /spade-scope.
type:* label.spade-quick/<issue-id>-<slug> (or
spade-quick/<slug> if there's no Linear issue).**Type:** <bug | tweak | chore | docs | refactor>
**SPADE path:** quick
**Linear:** <M-123 or "none — trivial">
## What
<One-sentence description of the change.>
## Why
<One-sentence reason, or the text of the linked issue.>
## Change
<One short paragraph describing what changed and how.>
## Verification
- [ ] Existing tests pass (`<command you ran>`)
- [ ] Manually verified: <what you checked, or "N/A — non-behavioural">
## Gate check
- [x] Single concern
- [x] ≤ 50 LoC changed
- [x] Scoped to one file / tight cluster
- [x] No new dependencies
- [x] No schema or migration changes
- [x] No architectural changes
- [x] No security-sensitive code touched
- [x] No public API changes
- [x] Revertable as one commit
- [x] Existing tests cover the area
---
*Delivered via `/spade-quick` — fast-track path for trivial changes.*
Every gate-check box must be ticked. If you can't tick one, you failed the gate and should not have reached this step.
In linear or hybrid mode, when there's an issue:
spade:quicktype:bug, type:tweak, type:chore, type:docs, type:refactorai-delivered or human-delivery (whichever applies)If there's no Linear issue (a pure-PR trivial fix), the PR itself is the audit trail. The PR description must still follow the template above.
If you're partway through delivering a fast-track change and discover that the change is actually bigger than the gate allows (a "simple" bug fix that now needs two files, or a "tiny" tweak that exposes a schema issue), stop immediately:
/spade-scope for a proper Scope + Plan.It is not a failure to bail out. It is the gate working correctly.
/spade-quick is NOT for/spade-quick exists because full-loop ceremony for trivial work is
wasteful. It is not a replacement for the full loop, and it is not
the default. The defaults remain:
/spade-scope → /spade-plan → /spade-approve
→ deliver → /spade-evaluate/spade-quickWhen in doubt, use the full loop. The cost of full-loop ceremony on work that could have been fast-track is a few minutes of friction. The cost of fast-tracking work that should have had a Scope is a broken audit trail and, eventually, a broken framework.
Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub chrisfmlyc/spades --plugin spades-anywhere