feat(quick-dev): one-shot route generates spec trace file#2121
feat(quick-dev): one-shot route generates spec trace file#2121
Conversation
One-shot changes now leave a lightweight spec file with frontmatter, intent summary, and suggested review order — eliminating numbering gaps when quick-dev is used as the primary dev loop. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…cture Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
🤖 Augment PR SummarySummary: Updates the Changes:
🤖 Was this summary useful? React with 👍 or 👎 |
| 5. Route — choose exactly one: | ||
|
|
||
| **a) One-shot** — zero blast radius: no plausible path by which this change causes unintended consequences elsewhere. Clear intent, no architectural decisions. | ||
| 1. Derive a valid kebab-case slug from the clarified intent. If the intent references a tracking identifier (story number, issue number, ticket ID), lead the slug with it (e.g. `3-2-digest-delivery`, `gh-47-fix-auth`). If `{implementation_artifacts}/spec-{slug}.md` already exists, append `-2`, `-3`, etc. Set `spec_file` = `{implementation_artifacts}/spec-{slug}.md`. |
There was a problem hiding this comment.
{slug} is used like a workflow variable in the spec-{slug}.md path, but it isn’t defined in this step’s frontmatter or workflow.md; this can violate the skill validation requirement that {...} references be defined. If this is intended as a literal placeholder for the human/agent to substitute, consider avoiding brace-form here so it won’t be treated as a variable. (Guideline: skill_validation)
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
| Write `{spec_file}` using `./spec-template.md`. Fill only these sections — delete all others: | ||
|
|
||
| 1. **Frontmatter** — fill `title`, `type`, `created`, `status: 'done'`. Add `route: 'one-shot'`. | ||
| 2. **Title and Intent** — `# {title}` heading and `## Intent` with **Problem** and **Approach** lines. Reuse the summary you already generated for the terminal. |
There was a problem hiding this comment.
The inline {title} in # {title} looks like a variable reference rather than a human-filled placeholder, which can trip variable-resolution/validation rules if title isn’t a defined runtime/config variable. If it’s meant to be literal placeholder text, consider representing it without {...} so it won’t be interpreted as a variable. (Guideline: skill_validation)
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
📝 WalkthroughWalkthroughUpdated the one-shot workflow path to derive slug-based spec file names during routing and introduced a "Generate Spec Trace" phase that creates the spec file from a template. Modified the presentation phase to open the generated spec file with VS Code instead of all changed files. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 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.
🧹 Nitpick comments (1)
src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md (1)
56-57: Consider extracting the duplicated slug derivation logic.The slug derivation and
spec_fileassignment logic is identical between the one-shot route (lines 56-57) and the plan-code-review route (line 61). This duplication creates a maintenance burden if the logic needs updating.Consider extracting this into a shared instruction block referenced by both routes, or document that changes to one must be mirrored to the other.
Also applies to: 61-61
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md` around lines 56 - 57, The duplicated slug derivation and spec_file assignment used in the one-shot route and the plan-code-review route should be extracted into a single reusable instruction block (e.g., derive_spec_slug or spec_slug_derivation) and invoked by both routes; update the two places to call this shared block and remove the duplicated steps so changes to kebab-case slug rules, tracking-id prefixing, and existing-file suffixing (`-2`, `-3`, etc.) are made in one spot, or alternatively add a clear comment referencing the other route to ensure both are kept in sync.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In `@src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.md`:
- Around line 56-57: The duplicated slug derivation and spec_file assignment
used in the one-shot route and the plan-code-review route should be extracted
into a single reusable instruction block (e.g., derive_spec_slug or
spec_slug_derivation) and invoked by both routes; update the two places to call
this shared block and remove the duplicated steps so changes to kebab-case slug
rules, tracking-id prefixing, and existing-file suffixing (`-2`, `-3`, etc.) are
made in one spot, or alternatively add a clear comment referencing the other
route to ensure both are kept in sync.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Run ID: 9497eba0-cad7-4352-8952-fa36e29b2905
📒 Files selected for processing (2)
src/bmm-skills/4-implementation/bmad-quick-dev/step-01-clarify-and-route.mdsrc/bmm-skills/4-implementation/bmad-quick-dev/step-oneshot.md
Summary
spec-{slug}.md) with frontmatter, intent summary, and suggested review order — eliminating numbering gaps when quick-dev is used as the primary dev loopspec_filefor both routes (not just plan-code-review)Test plan
spec-{slug}.mdtrace file appears in{implementation_artifacts}status: doneandroute: one-shot:linepathsnpm run validate:skillspasses (confirmed locally)🤖 Generated with Claude Code