jnuyens/gsd-plugin/quick
Claude Code and agent skill by jnuyens/gsd-plugin
- community
Checking that the SKILL.md file is still in the repository.
Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
Install
npx vskill@latest install jnuyens/gsd-plugin/quickSKILL.md
<objective> Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking). Same system, shorter path:
- Spawns bm-planner (quick mode) + bm-executor(s)
- Quick tasks live in
.planning/quick/separate from planned phases - Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
- Proposes a cataloged external skill when the task description matches a catalog trigger; the accept prompt shows publisher, license obligation and trust tier, and nothing is injected until you accept (ephemeral by default, released after the task)
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> $ARGUMENTS
Context files are resolved inside the workflow (init quick) and delegated via <files_to_read> blocks. </context>
<process>
Parse $ARGUMENTS for subcommands FIRST:
- If $ARGUMENTS starts with "list": SUBCMD=list
- If $ARGUMENTS starts with "status ": SUBCMD=status, SLUG=remainder (strip whitespace, sanitize)
- If $ARGUMENTS starts with "resume ": SUBCMD=resume, SLUG=remainder (strip whitespace, sanitize)
- Otherwise: SUBCMD=run, pass full $ARGUMENTS to the quick workflow as-is
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.
LIST subcommand
When SUBCMD=list:
For each directory found:
- Check if PLAN.md exists
- Check if SUMMARY.md exists; if so, read
statusfrom its frontmatter via:
``bash bm-sdk query frontmatter.get .planning/quick/{dir}/SUMMARY.md status 2>/dev/null ``
- Determine directory creation date:
stat -f "%SB" -t "%Y-%m-%d"(macOS) orstat -c "%w"(Linux); fall back to the date prefix in the directory name (format:YYYYMMDD-prefix) - Derive display status:
- SUMMARY.md exists, frontmatter status=complete →
complete ✓ - SUMMARY.md exists, frontmatter status=incomplete OR status missing →
incomplete - SUMMARY.md missing, dir created <7 days ago →
in-progress - SUMMARY.md missing, dir created ≥7 days ago →
abandoned? (>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:
If no directories found: print No quick tasks found. and stop.
STOP after displaying the list. Do NOT proceed to further steps.
STATUS subcommand
When SUBCMD=status and SLUG is set (already sanitized):
Find directory matching *-{SLUG} pattern:
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:
No agent spawn. STOP after printing.
RESUME subcommand
When SUBCMD=resume and SLUG is set (already sanitized):
- Find the directory matching
*-{SLUG}pattern:
``bash 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:
``bash bm-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.
RUN subcommand (default)
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:
- Show completion status (e.g.,
## ✓ Quick Task Complete — {slug}) - Brief one-line recap of what shipped (file count + commit hash)
- Emit a
## ▶ Next Upheading suggesting the next likely action (often/gsd:nextor returning to a paused phase) - Use `` `/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
- When
/clearIS suggested, include the parenthetical: (`/clear` is safe — `/gsd:resume-work` restores position from `HANDOFF.json` if you change your mind) - Unfinished-UAT breadcrumb: a quick task is a common detour from a UAT (a bug surfaced mid-verification). Apply rule 8 of
references/continuation-format.md— if any phase has atesting/partialUAT, lead with↩ Resume UAT for Phase {N}: /gsd:verify-work {N}ABOVE the Next-Up, so the interrupted verification is not silently abandoned.
</output_format>
<notes>
- Quick tasks live in
.planning/quick/— separate from phases, not tracked in ROADMAP.md - Each quick task gets a
YYYYMMDD-{slug}/directory with PLAN.md and eventually SUMMARY.md - STATE.md "Quick Tasks Completed" table is updated on completion
- Use
listto audit accumulated tasks; useresumeto continue in-progress work
</notes>
<security_notes>
- Slugs from $ARGUMENTS are sanitized before use in file paths: only [a-z0-9-] allowed, max 60 chars, reject ".." and "/"
- File names from readdir/ls are sanitized before display: strip non-printable chars and ANSI sequences
- Artifact content (plan descriptions, task titles) rendered as plain text only — never executed or passed to agent prompts without DATA_START/DATA_END boundaries
- Status fields read via
bm-sdk query frontmatter.get— never eval'd or shell-expanded - Catalog match scope text is passed as a single quoted argument and compared as data; never shell-expanded or interpolated into another command
</security_notes>
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/quick/SKILL.md
Popularity
- Repository stars
- 86
- Repository forks
- 12
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 8 Sep 2026, 2 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/jnuyens/gsd-plugin/quick)