feature-quick
Skill0 starsChanged 6 months agoMITView on GitHub
Lightweight entry point for small, well-understood changes
We split this skill into the rules it gives an agent
37 rules. About 0 are common, 21 are distinctive, and 16 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈21
Distinctive · estimate
This author's own choices. Worth a look.
16
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
No architectural decisions are needed
- Distinctive: line 18
Use /feature instead when:
- Very specific: line 28
Check that .feature/project-config.md exists.
- Very specific: line 29
If not: "Run /setup-vallorcine to set up the project profile first."
- Very specific: line 38
Check if .feature/<quick-slug>/status.md exists.
- Distinctive: line 41
Read it and report current state exactly as /feature-resume would.
- Very specific: line 46
Create .feature/<quick-slug>/ and write initial status.md.
- Distinctive: line 55
Before clarifying or proceeding, evaluate the description against the complexity signals below.
- Distinctive: line 111
If "Stay as quick": continue as /feature-quick, note the signals in status.md and proceed with heightened scope vigilance (see Step 3).
- Very specific: line 141
Only proceed as /feature-quick if user selects "Continue as quick".
- Distinctive: line 148
Read the description. Make a judgment call:
- Distinctive: line 176
After at most one round of clarification, proceed.
- Very specific: line 237
Update .feature/CLAUDE.md Active Features table (mode: quick).
- Distinctive: line 243
Read project-config.md for source directory, test directory, and conventions.
- Distinctive: line 246
Do not do a broad scan. Read only what is needed to:
- Very specific: line 267
If the bundle is empty (no specs match this scope) or .spec/ doesn't exist, the coverage file is vacuous and the rest of the spec workflow …
- Distinctive: line 274
If the codebase scan reveals the change is larger than the description suggests:
- Distinctive: line 291
Wait for response before continuing (unless complexity_override is already set, in which case log the finding and continue).
- Distinctive: line 298
Write tests for the described behaviour.
- Distinctive: line 300
Test names describe behaviour
- Distinctive: line 301
Must be verified to fail before proceeding
- Very specific: line 302
If
.feature/<quick-slug>/spec-coverage.mdhas rows: every test that satisfies a loaded requirement carries @spec <spec-id>.R<n> per … - Distinctive: line 322
Write on "Approve" or immediately if the user provides changes.
- Very specific: line 324
Run the test suite. Confirm all new tests fail.
- Very specific: line 325
Update status.md: Testing cycle 1 → complete, substage → "tests verified failing".
- Distinctive: line 339
If "Proceed": proceed to Step 5.
- Distinctive: line 353
Run tests after each logical unit.
- Very specific: line 355
If .feature/<quick-slug>/spec-coverage.md has rows, refresh impl coverage:
- Distinctive: line 360
Verify every loaded requirement has at least one annotated cell before proceeding to Step 6.
- Very specific: line 363
Update status.md: Implementation cycle 1 → complete.
- Very specific: line 392
Run full test suite after refactor.
- Very specific: line 393
Update status.md: Refactor cycle 1 → complete, Refactor stage → complete.
- Very specific: line 400
If .feature/<quick-slug>/spec-coverage.md has rows, run the coverage gate before closing.
- Distinctive: line 411
If the gate fails: surface the uncovered list, give the user three resolutions (annotate / waive / override with reason in the close note).
- Distinctive: line 413
Do not mark the task complete until either the gate passes or the user explicitly accepts the gap.
- Very specific: line 416
Update .feature/CLAUDE.md — move to Completed / Archived if the change is committed and no further work is planned.
- Distinctive: line 443
If "Draft PR now": invoke /feature-pr "<quick-slug>" as a sub-agent immediately.
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 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
/feature-quick "<description>"
A lightweight entry point for small, well-understood changes that don't need scoping interviews, domain analysis, or work planning. Same TDD discipline as the full pipeline — test → implement → refactor — with minimal setup.
Use this when:
- You already know exactly what needs to be built
- The change follows an established pattern in the codebase
- No architectural decisions are needed
- A full /feature pipeline would take longer than the work itself
Use /feature instead when:
- The change touches multiple systems or domains
- You need to decide between approaches
- The scope isn't clear yet
- The feature will take more than a session to implement
Pre-flight guard
Check that .feature/project-config.md exists.
If not: "Run /setup-vallorcine to set up the project profile first."
Idempotency pre-flight
Generate quick-slug from the description in kebab-case, prefixed with q-:
e.g. "add isActive to User" → q-add-isactive-to-user
Check if .feature/<quick-slug>/status.md exists.
If it exists: Read it and report current state exactly as /feature-resume would. Say: "This quick task was already started. Resuming." and jump to the appropriate stage. Do not restart.
If it does not exist:
Create .feature/<quick-slug>/ and write initial status.md.
Proceed to Step 1.
Step 1 — Complexity assessment (ALWAYS FIRST, before any other work)
Before clarifying or proceeding, evaluate the description against the complexity signals below. This check runs on the raw description alone — do not scan the codebase yet.
Complexity signals — count how many apply
Scope signals
- Mentions 2 or more distinct constructs (classes, modules, services)
- Uses words like "and", "also", "as well as", "plus" connecting distinct behaviours
- Touches more than one domain (e.g. "update the API and the database schema")
- Implies a new abstraction or pattern that doesn't exist yet
Uncertainty signals
- Description is vague about the expected interface or behaviour
- Contains "not sure how to", "figure out", "design", "decide between"
- No clear location in the codebase ("somewhere in the backend")
Decision signals
- Requires choosing between approaches ("should I use X or Y")
- Involves an architectural boundary (auth, persistence, external service)
- Would benefit from an ADR or KB lookup before writing code
Size signals
- Implies more than ~3 new constructs
- Would likely span more than one session to implement
- Feels like a "feature" rather than a "change"
Thresholds and responses
0–1 signals: Proceed as /feature-quick. Display your understanding and continue.
2–3 signals: Soft warning. Display the assessment and ask for confirmation:
⚡ QUICK · <quick-slug>
───────────────────────────────────────────────
⚠️ This might be bigger than a /feature-quick task.
Signals I noticed:
· <signal 1>
· <signal 2>
/feature-quick works best for focused, single-construct changes.
For this, /feature would give you: scoping confirmation, domain analysis,
work planning with stub contracts, and crash recovery across sessions.
Options:
1. Continue as /feature-quick — I'll keep it tight and flag scope creep if I find it
2. Switch to /feature — run /feature "<description>" for the full pipeline
Use AskUserQuestion with options:
- "Stay as quick"
- "Switch to full /feature"
───────────────────────────────────────────────If "Stay as quick": continue as /feature-quick, note the signals in status.md and proceed with heightened scope vigilance (see Step 3).
4+ signals: Hard redirect. The description is clearly feature-scale:
⚡ QUICK · <quick-slug>
───────────────────────────────────────────────
⛔ This looks like a feature, not a quick task.
Signals I noticed:
· <signal 1>
· <signal 2>
· <signal 3>
· <signal 4>
/feature-quick is for single-construct, single-session changes. This description
suggests multiple constructs, multiple domains, or decisions that need
scoping before writing code.
Recommended: /feature "<description>"
I can still run this as /feature-quick if you're certain it's smaller than it sounds.
Use AskUserQuestion with options:
- "Continue as quick (I understand the risk)"
- "Switch to /feature"
───────────────────────────────────────────────Only proceed as /feature-quick if user selects "Continue as quick".
Record forced override in status.md: complexity_override: true.
After complexity check — understand the task
If proceeding as /feature-quick after passing or confirming:
Read the description. Make a judgment call:
If the description is unambiguous (clear construct, clear behaviour, clear location in the codebase): display your understanding and proceed immediately.
I'll implement: <one sentence restatement>
Construct: <what will be created or changed>
Location: <where in the codebase>
Tests will verify: <the key behaviour>
Proceeding to tests. Say "stop" if this isn't right.If the description is ambiguous (unclear scope, unclear expected behaviour, or could mean multiple things): ask at most 2 targeted questions. Do not ask about anything the implementation itself can decide.
Good questions:
- "Should this replace the existing X or sit alongside it?"
- "What should happen when the input is empty/null?"
- "Does this need to be backwards compatible with Y?"
Bad questions (don't ask these — decide them yourself):
- "What should I name the method?"
- "Should I add error handling?" (yes, always)
- "Should I write tests for edge cases?" (yes, always)
After at most one round of clarification, proceed. Do not interview.
Step 2 — Write status.md
Write .feature/<quick-slug>/status.md:
---
feature: "<quick-slug>"
created: "<YYYY-MM-DD HH:MM>"
last_updated: "<YYYY-MM-DD HH:MM>"
mode: "quick"
---
# Quick Task Status — <quick-slug>
## Description
<one-sentence restatement of the task>
## Construct
<what is being created or changed, and where>
## Current Position
**Stage:** testing
**Substage:** not-started
**Last successful checkpoint:** task described
**Complexity signals:** <n> detected
**Complexity override:** false
## Stage Completion
| Stage | Status | Completed | Notes |
|-------|--------|-----------|-------|
| Testing | not-started | — | cycle 1 |
| Implementation | not-started | — | cycle 1 |
| Refactor | not-started | — | cycle 1 |
## TDD Cycle Tracker
| Cycle | Tests written | Tests passing | Refactor done | Missing tests |
|-------|--------------|---------------|---------------|---------------|Write .feature/<quick-slug>/cycle-log.md:
---
feature: "<quick-slug>"
created: "<YYYY-MM-DD>"
mode: "quick"
---
# Cycle Log — <quick-slug>
---
## <YYYY-MM-DD> — started
**Agent:** Quick Command
**Summary:** Task started. <description>
---Update .feature/CLAUDE.md Active Features table (mode: quick).
Step 3 — Scan the codebase and check for governing specs
Read project-config.md for source directory, test directory, and conventions.
Scan the relevant part of the codebase — the module or file the change touches. Do not do a broad scan. Read only what is needed to:
- Understand the existing interface the change extends or touches
- Know what test file to write into (or whether to create a new one)
- Confirm the change is as small as described (if it's larger, say so)
Spec resolution (mandatory if .spec/ exists). Quick tasks that touch a
construct governed by an APPROVED spec must annotate the same way the full
pipeline does — otherwise traceability gets quietly skipped on the smallest
changes. Run:
if [[ -f .spec/CLAUDE.md || -d .spec/registry ]]; then
mkdir -p .feature/<quick-slug>
bash .claude/scripts/spec-resolve.sh "<task description>" 25000 \
> .feature/<quick-slug>/spec-bundle.md
bash .claude/scripts/spec-coverage.sh init \
.feature/<quick-slug>/spec-coverage.md \
.feature/<quick-slug>/spec-bundle.md
fiIf the bundle is empty (no specs match this scope) or .spec/ doesn't
exist, the coverage file is vacuous and the rest of the spec workflow is a
no-op. If the bundle has rows, this task is now subject to the same
annotation rules as a full feature — Steps 4 and 5 below must add @spec
annotations and run spec-coverage.sh update, and Step 7 must verify the
gate before closing.
If the codebase scan reveals the change is larger than the description suggests:
⚠️ SCOPE CHECK · Quick → Feature
───────────────────────────────────────────────
This looks bigger than a /feature-quick task.
I found: <what makes it larger — be specific>
<If complexity_override: true in status.md:>
Note: you already confirmed proceeding as /feature-quick despite complexity signals.
Flagging for visibility — continuing unless you say stop.
<Otherwise:>
Options:
1. Continue as /feature-quick — I'll implement what you described and note the larger
context for later
2. Upgrade to /feature — run /feature "<description>" for full pipeline supportWait for response before continuing (unless complexity_override is already set, in which case log the finding and continue).
Step 4 — Write tests (failing)
Write tests for the described behaviour. Same rules as /feature-test:
- Against the public interface only
- Test names describe behaviour
- Must be verified to fail before proceeding
- If
.feature/<quick-slug>/spec-coverage.mdhas rows: every test that satisfies a loaded requirement carries@spec <spec-id>.R<n>perrules/spec-annotation-protocol.md. After writing tests, run:
and verify each Test cell that should be annotated is now non-pending.bash .claude/scripts/spec-coverage.sh update \ .feature/<quick-slug>/spec-coverage.md --all
Display:
── Tests ───────────────────────────────────────
Tests I'll write:
1. test_<n> — <scenario>
2. test_<n> — <scenario>
Use AskUserQuestion with options:
- "Approve"
- "Describe changes"
(include Other for custom input)Write on "Approve" or immediately if the user provides changes.
Run the test suite. Confirm all new tests fail.
Update status.md: Testing cycle 1 → complete, substage → "tests verified failing".
Append tests-written to cycle-log.md.
Display:
── Tests written ───────────────────────────────
<n> tests written and verified failing.
───────────────────────────────────────────────
Use AskUserQuestion with options:
- "Proceed"
- "Stop"
───────────────────────────────────────────────If "Proceed": proceed to Step 5.
Step 5 — Implement
Implement the change. Same rules as /feature-implement:
- Minimum correct implementation
- Follow project-config.md conventions
- Never modify tests
- Escalate genuine contract conflicts (don't work around them)
- Carry
@specannotations forward from the test to the implementation method or smallest enforcing site, when the matching test was annotated.
Run tests after each logical unit. When all pass:
If .feature/<quick-slug>/spec-coverage.md has rows, refresh impl coverage:
bash .claude/scripts/spec-coverage.sh update \
.feature/<quick-slug>/spec-coverage.md --allVerify every loaded requirement has at least one annotated cell before proceeding to Step 6. Fix annotations if cells are still pending.
Update status.md: Implementation cycle 1 → complete.
Append implemented to cycle-log.md.
Display:
── Implementation complete ──────────────────────
All tests passing.
───────────────────────────────────────────────
Use AskUserQuestion with options:
- "Proceed"
- "Stop"
───────────────────────────────────────────────If "Proceed": proceed to Step 6.
Step 6 — Refactor
Same checklist as /feature-refactor, same cycle limits (warn at 3, stop at 5), same missing-test escalation rules. Skip Step 4b (adversarial audit pass) — quick tasks don't have spec analysis findings to audit against, and the scope is too small for adversarial testing to add value.
For a /feature-quick task the refactor is usually fast — most of the checklist will be "nothing to do here" for a small change. Work through it anyway; security and missing-test checks are the ones most likely to find something even on small changes.
Run full test suite after refactor. Must be all passing.
Update status.md: Refactor cycle 1 → complete, Refactor stage → complete.
Append refactor-complete to cycle-log.md.
Step 7 — Close
If .feature/<quick-slug>/spec-coverage.md has rows, run the coverage gate
before closing. The gate is the structural enforcement of the annotation
protocol — quick tasks must clear it the same way full features do:
if [[ -f .feature/<quick-slug>/spec-coverage.md ]]; then
bash .claude/scripts/spec-coverage.sh gate \
.feature/<quick-slug>/spec-coverage.md
fiIf the gate fails: surface the uncovered list, give the user three resolutions (annotate / waive / override with reason in the close note). Do not mark the task complete until either the gate passes or the user explicitly accepts the gap.
Update .feature/CLAUDE.md — move to Completed / Archived if the change is
committed and no further work is planned. Or leave in Active if it is part of
a larger piece of work still in progress.
Display:
───────────────────────────────────────────────
⚡ QUICK complete · <quick-slug>
Tokens : <TOKEN_USAGE>
───────────────────────────────────────────────
Done. <n> tests passing.
Changes:
<bullet list of what was written or changed>
<If the task revealed larger scope:>
Note: this touched <area> which may be worth a full /feature pass later.
───────────────────────────────────────────────
Use AskUserQuestion with options:
- "Draft PR now"
- "Skip"
(run /feature-pr "<quick-slug>" any time)
───────────────────────────────────────────────If "Draft PR now": invoke /feature-pr "<quick-slug>" as a sub-agent immediately.
If "Skip": stop.
In this repository45 other files it gives its agents.
- decisions/CLAUDE.mdCLAUDE.md
- kb/CLAUDE.mdCLAUDE.md
- spec/CLAUDE.mdCLAUDE.md
- work/CLAUDE.mdCLAUDE.md
- script-devSkill
- architectSkill
- auditSkill
- capabilitiesSkill
- curateSkill
- decisionsSkill
- feature-cleanupSkill
- feature-completeSkill
- feature-coordinateSkill
- feature-domainsSkill
- feature-hardenSkill
- feature-implementSkill
- feature-planSkill
- feature-prSkill
- feature-refactorSkill
- feature-resumeSkill
- feature-retroSkill
- featureSkill
- feature-testSkill
- kbSkill
- project-contextSkill
- researchSkill
- setup-vallorcineSkill
- spec-authorSkill
- spec-backfillSkill
- spec-initSkill
- spec-resolveSkill
- specSkill
- spec-splitSkill
- spec-verifySkill
- spec-writeSkill
- uninstall-vallorcineSkill
- upgrade-vallorcineSkill
- vallorcine-helpSkill
- work-decomposeSkill
- work-planSkill
- work-resumeSkill
- work-runSkill
- workSkill
- work-startSkill
- work-statusSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

