feat: add /spec-quick — fast path to the spec artifact - #15
feat: add /spec-quick — fast path to the spec artifact#15anachronicsofa wants to merge 1 commit into
Conversation
/spec-dc's review loop dispatches two fresh subagents per round until double approval (~3 rounds), so every round re-reads the spec and re-opens the cited code from scratch — up to six subagent runs. reviewer-fast's checklist is largely a subset of reviewer-pro's, the command's own final verification re-checks grounding/no-HOW/testability/structure a third time, and "all seven sections, each substantial" fights "no boilerplate" — producing padding that feeds the loop more surface to argue about. /spec-quick produces the same artifact — same path, same heading names, same contract with /plan-dc — under a bounded budget: - one AskUserQuestion batch maximum; anything still open becomes a stated assumption in Constraints & Out of Scope - research capped at one Explore subagent or ~5 targeted greps, citing only paths actually opened - five required sections; Success Criteria and Non-Functional Requirements are emitted only when they carry real content - one spec-dc/reviewer-pro pass, no second round — skipped entirely for a spec with <=3 functional requirements and no existing-code integration - final verification is `grep '^## '` instead of a full re-read - no closing question menu; it prints the next command /spec-dc is unchanged and stays the default for large or risky features. /plan-dc and /execute-dc keep the full dual loop — they measure an artifact against an upstream one, so adversarial redundancy there buys something the spec boundary doesn't. Wired into DOTCONTEXT_COMMANDS (so opencode/Copilot get it), init.sh, the update.sh managed set (delivers it to existing installs), help.sh, the AGENTS.md ## Workflows table, README, CLAUDE.md and CONTEXT.md. Reuses the existing spec-dc/reviewer-pro agent — no new agent files. update also prints a notice for AGENTS.md-only harnesses, whose Workflows table is create-only. ADR-020 -> v1.3 records the fast path and why it is scoped to the spec boundary. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
WalkthroughAdds ChangesSpec Quick workflow
Estimated code review effort: 3 (Moderate) | ~20 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 10
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude/commands/spec-quick.md:
- Around line 158-162: Update the “If You Get Stuck” section in both
.claude/commands/spec-quick.md (lines 158-162) and
templates/.claude/commands/spec-quick.md (lines 158-162) so three failed
attempts trigger a bounded escalation without issuing another clarification
question batch, preserving the one-question-batch contract.
- Around line 113-115: The review-skip predicate in both
.claude/commands/spec-quick.md lines 113-115 and
templates/.claude/commands/spec-quick.md lines 113-115 must require no
integration with existing code at all, while retaining the ≤3 functional
requirements limit. Update both distributed templates consistently and preserve
the instruction to state in chat when the review is skipped.
- Around line 117-129: Update the reviewer-dispatch instructions in both
.claude/commands/spec-quick.md (lines 117-129) and
templates/.claude/commands/spec-quick.md (lines 117-129) so Claude environments
use the existing Task-based spec-dc/reviewer-pro path, while non-Claude emitted
templates use a portable or harness-native reviewer mechanism or explicit
fallback. Preserve the reviewer prompt, checklist, and APPROVED/defect response
contract across both dispatch paths.
In @.context/CONTEXT.md:
- Line 22: Update the module-tree documentation near the command directory entry
to state that .claude/commands/ contains 14 templates, reflecting the addition
of /spec-quick; leave the surrounding documentation unchanged.
In @.context/decisions/020-spec-plan-execute-workflow.md:
- Around line 192-193: Reorder the ADR history entries so version 1.2 dated
2026-07-17 appears before version 1.3 dated 2026-07-30, preserving the content
of both entries and chronological ordering.
In `@README.md`:
- Line 145: Update the `.context/specs/` entry in README.md to state that
behavior specs are generated by both `/spec-dc` and `/spec-quick`, while
preserving the existing description and formatting.
In `@src/commands/init.sh`:
- Around line 106-109: The command download loop unconditionally overwrites
existing user command files. Update the loop in src/commands/init.sh (lines
106-109) to use create-only or managed-update behavior, then apply the same safe
behavior to the bundled implementation in dotcontext (lines 789-792), keeping
both implementations synchronized.
In `@src/commands/update.sh`:
- Around line 477-485: The new /spec-quick notice is unreachable when managed
templates are already current because the update flow returns first. In
src/commands/update.sh around the notice block, move or invoke the notice
evaluation before that early return, preserving its existing conditions and
messaging; apply the same control-flow fix in dotcontext around the
corresponding bundled notice block.
In `@templates/AGENTS.md`:
- Line 105: Update the opencode command-directory reference in the surrounding
workflow guidance to use the singular `.opencode/command/` path emitted by
`src/setup/agents.sh`, replacing the incorrect `.opencode/commands/` form.
- Around line 118-122: Update the language guidance for spec-dc and spec-quick
to use the full precedence: feature-request language, then Q&A language, then
the repository’s primary language, and finally English. Preserve the existing
requirements that prose follows this language while headings remain exactly as
written and filenames use ASCII kebab-case; leave plan-dc and execute-dc in
English.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 2dddcbf0-fd55-4962-bc0b-5f987da1b299
📒 Files selected for processing (12)
.claude/commands/spec-quick.md.context/CONTEXT.md.context/decisions/020-spec-plan-execute-workflow.mdCLAUDE.mdREADME.mddotcontextsrc/commands/help.shsrc/commands/init.shsrc/commands/update.shsrc/setup/agents.shtemplates/.claude/commands/spec-quick.mdtemplates/AGENTS.md
| **Skip the review entirely** when the spec is small: **≤3 functional requirements AND** no | ||
| integration with existing code beyond the paths you opened in Step 2. Say in chat that you | ||
| skipped it and why. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
The review-skip predicate is inconsistent in both distributed templates.
Both templates allow review skipping for small specs that integrate with existing code, while ADR-020 requires no existing-code integration.
.claude/commands/spec-quick.md#L113-L115: change the predicate to require no existing-code integration at all.templates/.claude/commands/spec-quick.md#L113-L115: apply the same corrected predicate.
📍 Affects 2 files
.claude/commands/spec-quick.md#L113-L115(this comment)templates/.claude/commands/spec-quick.md#L113-L115
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude/commands/spec-quick.md around lines 113 - 115, The review-skip
predicate in both .claude/commands/spec-quick.md lines 113-115 and
templates/.claude/commands/spec-quick.md lines 113-115 must require no
integration with existing code at all, while retaining the ≤3 functional
requirements limit. Update both distributed templates consistently and preserve
the instruction to state in chat when the review is skipped.
| Otherwise dispatch **one** `spec-dc/reviewer-pro` subagent (Task tool), substituting real values: | ||
|
|
||
| ```text | ||
| Review the behavior spec at: <SPEC PATH>. | ||
| The original request (the yardstick) was: <ORIGINAL REQUEST + clarifying Q&A>. | ||
|
|
||
| Apply your agent definition's checklist. This spec came from /spec-quick: `Success Criteria` and | ||
| `Non-Functional Requirements` are OPTIONAL there — their absence is NOT a defect. The spec is | ||
| expected to be in the request's language; a non-English spec is not a defect, but a spec in the | ||
| wrong language is. | ||
|
|
||
| Reply with ONLY the word APPROVED, or list each defect with its section / file:path / request | ||
| line and a concrete fix. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== locate spec-quick files =="
git ls-files | grep -E '(^|/)\.claude/commands/spec-quick\.md$|(^|/)spec-quick\.md$|templates/.claude/commands/spec-quick\.md$' || true
echo
echo "== file sizes =="
for f in $(git ls-files | grep -E '(^|/)\.claude/commands/spec-quick\.md$|(^|/)templates/\.claude/commands/spec-quick\.md$|(^|/)templates/.claude/commands/spec-quick\.md$'); do
wc -l "$f"
done
echo
echo "== relevant snippets =="
for f in $(git ls-files | grep -E '(^|/)\.claude/commands/spec-quick\.md$|(^|/)templates/.claude/commands/spec-quick\.md$'); do
echo "--- $f"
sed -n '1,170p' "$f" | nl -ba | sed -n '90,150p'
done
echo
echo "== occurrences of Task/tool and reviewer definitions =="
rg -n "Task|spec-dc/reviewer-pro|reviewer-pro|subagent|Apply your agent definition|Success Criteria|Non-Functional Requirements" .claude/commands/spec-quick.md templates/.claude/commands/spec-quick.md || true
echo
echo "== repository references to distributed template emission or Target harness =="
rg -n "distributed|template|harness|Claude\s*(Task|command)|Task\(|subagent|spec-quick|spec-dc/reviewer-pro|Non-Claude|non-Claude" -S . --glob '!node_modules' --glob '!dist' --glob '!build' | head -n 200Repository: goca-se/dotcontext
Length of output: 457
🏁 Script executed:
#!/bin/bash
set -euo pipefail
for f in .claude/commands/spec-quick.md templates/.claude/commands/spec-quick.md; do
echo "--- $f"
awk 'NR>=90 && NR<=150 { printf "%d:%s\n", NR, $0 }' "$f"
echo
done
echo "== occurrences in target files =="
for f in .claude/commands/spec-quick.md templates/.claude/commands/spec-quick.md; do
echo "--- $f"
grep -nE "Task|spec-dc/reviewer-pro|reviewer-pro|subagent|Apply your agent definition|Success Criteria|Non-Functional Requirements" "$f" || true
done
echo "== repository references to distributed template emission or Target harness =="
grep -RIn -E "distributed|template|harness|Claude\s*(Task|command)|Task\(|subagent|spec-quick|spec-dc/reviewer-pro|Non-Claude|non-Claude" . --exclude-dir=node_modules --exclude-dir=dist --exclude-dir=build | head -n 200 || trueRepository: goca-se/dotcontext
Length of output: 36032
Make the reviewer dispatch work for all emitted templates.
.claude/commands/spec-quick.md and templates/.claude/commands/spec-quick.md both dispatch spec-dc/reviewer-pro using Claude’s Task tool only. Since this workflow is also installed/copied non-Claude style, use a Claude-only path for Claude and a portable/harness-native reviewer path or fallback for the other templates.
📍 Affects 2 files
.claude/commands/spec-quick.md#L117-L129(this comment)templates/.claude/commands/spec-quick.md#L117-L129
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude/commands/spec-quick.md around lines 117 - 129, Update the
reviewer-dispatch instructions in both .claude/commands/spec-quick.md (lines
117-129) and templates/.claude/commands/spec-quick.md (lines 117-129) so Claude
environments use the existing Task-based spec-dc/reviewer-pro path, while
non-Claude emitted templates use a portable or harness-native reviewer mechanism
or explicit fallback. Preserve the reviewer prompt, checklist, and
APPROVED/defect response contract across both dispatch paths.
| ## If You Get Stuck | ||
|
|
||
| Three failed attempts at the same step → stop, explain what's blocking you, and ask how to | ||
| proceed with `AskUserQuestion` (or the harness's native structured-question tool). Never loop | ||
| indefinitely. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
The one-question-batch contract is contradicted in both templates.
Both templates prohibit a second batch and then request one in the stuck path.
.claude/commands/spec-quick.md#L158-L162: escalate without issuing another clarification batch.templates/.claude/commands/spec-quick.md#L158-L162: apply the same bounded escalation behavior.
📍 Affects 2 files
.claude/commands/spec-quick.md#L158-L162(this comment)templates/.claude/commands/spec-quick.md#L158-L162
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.claude/commands/spec-quick.md around lines 158 - 162, Update the “If You
Get Stuck” section in both .claude/commands/spec-quick.md (lines 158-162) and
templates/.claude/commands/spec-quick.md (lines 158-162) so three failed
attempts trigger a bounded escalation without issuing another clarification
question batch, preserving the one-question-batch contract.
| | `ADR (Architectural Decision Record)` | Documents a significant architectural decision with context, alternatives, and consequences | | ||
| | `Skill` | Step-by-step guide for a recurring pattern or task in the codebase | | ||
| | `Spec` / `Plan` | Spec = behavior contract, the WHAT (`/spec-dc`, `.context/specs/`); Plan = implementation plan with 100% traceability, the HOW (`/plan-dc`, `.context/plans/`) | | ||
| | `Spec` / `Plan` | Spec = behavior contract, the WHAT (`/spec-dc` or the fast-path `/spec-quick`, `.context/specs/`); Plan = implementation plan with 100% traceability, the HOW (`/plan-dc`, `.context/plans/`) | |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Update the stale command-count documentation.
The module tree at Line 46 still says .claude/commands/ contains 13 templates, but the registry now contains 14 after adding /spec-quick.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.context/CONTEXT.md at line 22, Update the module-tree documentation near
the command directory entry to state that .claude/commands/ contains 14
templates, reflecting the addition of /spec-quick; leave the surrounding
documentation unchanged.
| | 1.3 | 2026-07-30 | Added `/spec-quick` (§3a) — a fast path at the spec boundary: one question batch, bounded research, five required sections (Success Criteria + NFR conditional), a single `reviewer-pro` pass with no second round, `grep`-based final check, no closing menu. `/spec-dc` unchanged; `/plan-dc` and `/execute-dc` keep the dual loop | | ||
| | 1.2 | 2026-07-17 | `/spec-dc` writes the spec in the **language of the original request** (Portuguese request → Portuguese spec; defaults to the repo's primary language, then English). Prose only — the seven section headings and the filename slug stay ASCII structural anchors `/plan-dc` relies on. `/plan-dc` and `/execute-dc` are unchanged (English) | |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Keep the ADR history chronological.
Version 1.3 dated July 30, 2026 appears before version 1.2 dated July 17, 2026. Move 1.3 below 1.2 so the history reflects the actual sequence.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In @.context/decisions/020-spec-plan-execute-workflow.md around lines 192 - 193,
Reorder the ADR history entries so version 1.2 dated 2026-07-17 appears before
version 1.3 dated 2026-07-30, preserving the content of both entries and
chronological ordering.
| │ ├── code-review.md # Code review command | ||
| │ ├── commit.md # Smart commit command | ||
| │ ├── spec-dc.md # Write a behavior spec (the WHAT) | ||
| │ ├── spec-quick.md # Same spec, fast path (one review pass) |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Mention /spec-quick in the generated spec-directory description.
The .context/specs/ entry at Line 136 still says behavior specs are produced by /spec-dc only. Update it to mention both /spec-dc and /spec-quick.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 145, Update the `.context/specs/` entry in README.md to
state that behavior specs are generated by both `/spec-dc` and `/spec-quick`,
while preserving the existing description and formatting.
| for c in setup-context code-review spec-dc spec-quick plan-dc execute-dc add-decision add-skill \ | ||
| add-command create-pr pr-comment deep-context fix-bug commit; do | ||
| download "${BASE_URL}/templates/.claude/commands/${c}.md" ".claude/commands/${c}.md" | ||
| done |
There was a problem hiding this comment.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
The new init command can overwrite user content.
Both bundled and source implementations add spec-quick to an unconditional download loop.
src/commands/init.sh#L106-L109: use create-only or managed-update behavior for existing command files.dotcontext#L789-L792: keep the bundled implementation synchronized with that safe behavior.
📍 Affects 2 files
src/commands/init.sh#L106-L109(this comment)dotcontext#L789-L792
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/commands/init.sh` around lines 106 - 109, The command download loop
unconditionally overwrites existing user command files. Update the loop in
src/commands/init.sh (lines 106-109) to use create-only or managed-update
behavior, then apply the same safe behavior to the bundled implementation in
dotcontext (lines 789-792), keeping both implementations synchronized.
Source: Coding guidelines
| # ── Notice: /spec-quick is new (ADR-020 v1.3) ────────────────────────────── | ||
| # Claude gets it via managed_templates and opencode/Copilot via the re-emit above, | ||
| # but AGENTS.md is a create-only seed, so its "## Workflows" table stays as-is. | ||
| if [ -f "AGENTS.md" ] && ! grep -q "spec-quick" "AGENTS.md" 2>/dev/null; then | ||
| echo "" | ||
| print_yellow "New: /spec-quick -- the fast path to the same spec artifact (ADR-020 v1.3)." | ||
| print_gray " One question batch, bounded research, a single reviewer pass. /spec-dc is unchanged." | ||
| print_gray " Gemini/Cursor/Codex: add it to the '## Workflows' table in AGENTS.md (not auto-updated)." | ||
| fi |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
The update notice is unreachable on the no-change path.
Both implementations return before evaluating the new notice when managed templates are already current.
src/commands/update.sh#L477-L485: evaluate the notice before the early return.dotcontext#L1379-L1387: apply the same control-flow fix in the bundled executable.
📍 Affects 2 files
src/commands/update.sh#L477-L485(this comment)dotcontext#L1379-L1387
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/commands/update.sh` around lines 477 - 485, The new /spec-quick notice is
unreachable when managed templates are already current because the update flow
returns first. In src/commands/update.sh around the notice block, move or invoke
the notice evaluation before that early return, preserving its existing
conditions and messaging; apply the same control-flow fix in dotcontext around
the corresponding bundled notice block.
| | --- | --- | | ||
| | `setup-context` | Analyze the codebase and populate `.context/` | | ||
| | `spec-dc` | Write a behavior spec — the WHAT, with dual review (step 1 of spec → plan → execute) | | ||
| | `spec-quick` | Same spec artifact, fast path — bounded research, one review pass (use for small/clear features) | |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use the adapter’s actual opencode directory.
The surrounding guidance documents .opencode/commands/, but src/setup/agents.sh emits .opencode/command/. Correct the directory name so the new workflow points to the actual generated location.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/AGENTS.md` at line 105, Update the opencode command-directory
reference in the surrounding workflow guidance to use the singular
`.opencode/command/` path emitted by `src/setup/agents.sh`, replacing the
incorrect `.opencode/commands/` form.
| When running **`spec-dc`** or **`spec-quick`**, write the spec artifact in the **same language the user | ||
| used to describe the feature** (a Portuguese request produces a Portuguese spec), defaulting to the | ||
| repository's primary language, then English. This applies to the spec's prose only — keep the section | ||
| headings **exactly as written in the template** (English), and the filename slug in ASCII kebab-case; | ||
| both are structural anchors that `plan-dc` relies on. `plan-dc` and `execute-dc` stay in English. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Include the Q&A language fallback.
The command template falls back from request language to Q&A language, then repository language; this canonical guidance omits the Q&A fallback. Mirror the full precedence so multilingual clarification produces consistent specs.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@templates/AGENTS.md` around lines 118 - 122, Update the language guidance for
spec-dc and spec-quick to use the full precedence: feature-request language,
then Q&A language, then the repository’s primary language, and finally English.
Preserve the existing requirements that prose follows this language while
headings remain exactly as written and filenames use ASCII kebab-case; leave
plan-dc and execute-dc in English.
Summary
/spec-dc's review loop dispatches two fresh subagents per round until double approval (~3 rounds), so every round re-reads the spec and re-opens the cited code from scratch — up to six subagent runs plus four full readings of the file.reviewer-fast's checklist is largely a subset ofreviewer-pro's, the command's own Phase 4 re-checks grounding / no-HOW / testability / structure a third time, and "all seven sections, each substantial" fights "no boilerplate" — the padding that wins then feeds the loop more surface to argue about.This adds
/spec-quick: the same artifact (same path, same heading names, same contract with/plan-dc) under a bounded budget./spec-dcis unchanged and stays the default for large or risky features;/plan-dcand/execute-dckeep the full dual loop, since they measure an artifact against an upstream one — adversarial redundancy there buys something the spec boundary doesn't.Changes
templates/.claude/commands/spec-quick.md(+ local.claude/commands/copy):AskUserQuestionbatch maximum — anything still open becomes a stated assumption in Constraints & Out of ScopeExploreor ~5 targeted greps, citing only paths actually openedSuccess CriteriaandNon-Functional Requirementsemitted only when they carry real contentspec-dc/reviewer-propass, no second round — skipped entirely for ≤3 functional requirements with no existing-code integrationgrep '^## 'instead of a full re-read; no closing menu, it prints the next commandspec-dc/reviewer-proagent — no new agent files.DOTCONTEXT_COMMANDS(so opencode.opencode/command/and Copilot.github/prompts/get it),init.sh, theupdate.shmanaged set (delivers it to existing installs),help.sh, theAGENTS.md## Workflowstable, README,CLAUDE.md,CONTEXT.md.updatenotice forAGENTS.md-only harnesses (Gemini/Cursor/Codex) — that file is a create-only seed, so its Workflows table isn't rewritten.dotcontext(1927 lines)./spec-dc/spec-quickExploresweepsExploreor ~5 grepsreviewer-propass, or nonegrepon the headingsAskUserQuestionmenuArchitectural Impact
The change is in the control flow of the spec boundary — where review happens and how many times the artifact is read:
flowchart TD R[Feature request] --> C{Clarity check} C -->|/spec-dc| D1[0..N question batches] D1 --> D2[Extensive research] D2 --> D3[Write 7 mandatory sections] D3 --> D4[reviewer-pro + reviewer-fast<br/>fresh subagents] D4 -->|either reports gaps| D3 D4 -->|both APPROVED| D5[Phase 4: full re-read] D5 --> D6[AskUserQuestion menu] C -->|/spec-quick| Q1[1 question batch max] Q1 --> Q2[1 Explore or ~5 greps] Q2 --> Q3[Write 5 required sections<br/>+ 2 conditional] Q3 --> G{"≤3 FRs and no<br/>existing-code integration?"} G -->|yes| Q5 G -->|no| Q4[1 reviewer-pro pass] Q4 --> Q5["grep '^## '"] D6 --> S[".context/specs/spec-ts-slug.md"] Q5 --> S S --> P[/plan-dc/] style D4 fill:#ffe0e0,stroke:#c00 style Q4 fill:#e0ffe0,stroke:#0a0Both paths converge on the same artifact with the same heading anchors, so
/plan-dcis untouched and there is no format rework when you start with one and switch to the other.Type
src/change)src/change — rebuilt thedotcontextbinary)Checklist
make buildand committed the rebuiltdotcontext(CI fails if it's out of sync withsrc/)bash -npasses and I tested locally (./dotcontext --help,./dotcontext doctor→ 13 passed / 0 failed; the 2 warnings are pre-existing)description+argument-hintfrontmatter and is wired intoinit.sh+update.sh+DOTCONTEXT_COMMANDS(no new skill or agent file in this PR).context/decisions/— this conflicted with ADR-020 §3 ("all three commands end with a dual-reviewer loop until doubleAPPROVED"); resolved by updating ADR-020 to v1.3 with a new §3a, per theCLAUDE.mddecision-compliance rulefeat:)Test plan
make build→ 1927 lines;bash -n dotcontextclean./dotcontext --helplists/spec-quickunder Workflows./dotcontext doctor→.claude/commands/ — 15 command(s)(was 14)templates/.claude/commands/spec-quick.mdand.claude/commands/spec-quick.mdare byte-identicalgrep '^## 'on the command confirms the five required spec headings match/spec-dc's names exactly (the anchors/plan-dcrelies on)/spec-quickhas not been run end-to-end on a real feature — the prompt itself is unexercised. Worth a first run on something small before merging.dotcontext initin a scratch dir emitsspec-quick.mdfor Claude / opencode / Copilotdotcontext updatein an existing install offers the new command and prints theAGENTS.mdnoticereviewer-proflagging a missingSuccess Criteria/Non-Functional Requirementssection despite the prompt telling it they're optional hereGenerated with Claude Code
Summary by CodeRabbit
New Features
/spec-quickcommand for creating lean behavior specifications with limited clarification, research, and review./spec-quickinto setup, template generation, updates, and CLI help across supported workflows.Documentation
/spec-quick, its output, and its streamlined process.