dist/bm/skills/quick/SKILL.md
Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
npx skillsauth add jnuyens/gsd-plugin bm:quickInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Default: Skips research, discussion, plan-checker, verifier. Use when you know exactly what to do.
--discuss flag: Lightweight discussion before planning. Surfaces assumptions, captures decisions in CONTEXT.md. Use when the task has ambiguity worth resolving upfront.
--full flag: Complete quality pipeline — discussion + research + plan-checking + verification.
--validate flag: Plan-checking (max 2 iterations) and post-execution verification only. Quality guarantees without discussion or research.
--research flag: Spawns a focused research agent before planning. Investigates approaches, library options, and pitfalls. Use when unsure of the best approach.
Granular flags are composable: --discuss --research --validate equals --full.
Subcommands:
list — List all quick tasks with statusstatus <slug> — Show status of a specific quick taskresume <slug> — Resume a specific quick task by slug
</objective>
<execution_context> @${CLAUDE_PLUGIN_ROOT}/workflows/quick.md </execution_context>
<context> $ARGUMENTSContext files are resolved inside the workflow (init quick) and delegated via <files_to_read> blocks.
</context>
Parse $ARGUMENTS for subcommands FIRST:
Slug sanitization (for status and resume): Strip any characters not matching [a-z0-9-]. Reject slugs longer than 60 chars or containing .. or /. If invalid, output "Invalid session slug." and stop.
When SUBCMD=list:
ls -d .planning/quick/*/ 2>/dev/null
For each directory found:
status from its frontmatter via:
gsd-sdk query frontmatter.get .planning/quick/{dir}/SUMMARY.md status 2>/dev/null
stat -f "%SB" -t "%Y-%m-%d" (macOS) or stat -c "%w" (Linux); fall back to the date prefix in the directory name (format: YYYYMMDD- prefix)complete ✓incompletein-progressabandoned? (>7 days, no summary)SECURITY: Directory names are read from the filesystem. Before displaying any slug, sanitize: strip non-printable characters, ANSI escape sequences, and path separators using: name.replace(/[^\x20-\x7E]/g, '').replace(/[/\\]/g, ''). Never pass raw directory names to shell commands via string interpolation.
Display format:
Quick Tasks
────────────────────────────────────────────────────────────
slug date status
backup-s3-policy 2026-04-10 in-progress
auth-token-refresh-fix 2026-04-09 complete ✓
update-node-deps 2026-04-08 abandoned? (>7 days, no summary)
────────────────────────────────────────────────────────────
3 tasks (1 complete, 2 incomplete/in-progress)
If no directories found: print No quick tasks found. and stop.
STOP after displaying the list. Do NOT proceed to further steps.
When SUBCMD=status and SLUG is set (already sanitized):
Find directory matching *-{SLUG} pattern:
dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)
If no directory found, print No quick task found with slug: {SLUG} and stop.
Read PLAN.md and SUMMARY.md (if exists) for the given slug. Display:
Quick Task: {slug}
─────────────────────────────────────
Plan file: .planning/quick/{dir}/PLAN.md
Status: {status from SUMMARY.md frontmatter, or "no summary yet"}
Description: {first non-empty line from PLAN.md after frontmatter}
Last action: {last meaningful line of SUMMARY.md, or "none"}
─────────────────────────────────────
Resume with: /bm:quick resume {slug}
No agent spawn. STOP after printing.
When SUBCMD=resume and SLUG is set (already sanitized):
Find the directory matching *-{SLUG} pattern:
dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)
If no directory found, print No quick task found with slug: {SLUG} and stop.
Read PLAN.md to extract description and SUMMARY.md (if exists) to extract status.
Print before spawning:
[quick] Resuming: .planning/quick/{dir}/
[quick] Plan: {description from PLAN.md}
[quick] Status: {status from SUMMARY.md, or "in-progress"}
Load context via:
gsd-sdk query init.quick
Proceed to execute the quick workflow with resume context, passing the slug and plan directory so the executor picks up where it left off.
When SUBCMD=run:
Execute the quick workflow from @${CLAUDE_PLUGIN_ROOT}/workflows/quick.md end-to-end. Preserve all workflow gates (validation, task description, planning, execution, state updates, commits).
</process><output_format>
When the quick task completes (SUMMARY.md written, STATE.md updated), emit a Next Up continuation block following the pattern in references/continuation-format.md:
## ✓ Quick Task Complete — {slug})## ▶ Next Up heading suggesting the next likely action (often /bm:next or returning to a paused phase)`/clear` then: before the command only for quick tasks that ran for >5 tool calls or >10 minutes — short trivial tasks don't accumulate enough context to warrant a clear/clear IS suggested, include the parenthetical: (/clear is safe — /bm:resume-work restores position from HANDOFF.json if you change your mind)references/continuation-format.md — if any phase has a testing/partial UAT, lead with ↩ Resume UAT for Phase {N}: /bm:verify-work {N} ABOVE the Next-Up, so the interrupted verification is not silently abandoned.
</output_format><security_notes>
gsd-sdk query frontmatter.get — never eval'd or shell-expanded
</security_notes>tools
Manage parallel workstreams — list, create, switch, status, progress, complete, and resume
tools
Print the installed GSD plugin version and check online for updates
testing
Validate built features through conversational UAT
testing
Retroactively audit and fill Nyquist validation gaps for a completed phase