/gsd-quick
Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
$ npx -y skills add open-gsd/gsd-core --skill gsd-quick --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/gsd-quick
Context preview
The summary Claude sees to decide when to auto-load this skill.
Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
SKILL.md
gsd-quick.SKILL.mdname: gsd-quick
description: "Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents"
argument-hint: "[list | status <slug> | resume <slug> | --full] [--validate] [--discuss] [--research] [task description]"
allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
- Agent
- AskUserQuestion
<objective> Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking).
Quick mode is the same system with a shorter path:
- Spawns gsd-planner (quick mode) + gsd-executor(s)
- Quick tasks live in `.planning/quick/` separate from planned phases
- Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
**Default:** Skips research, discussion, plan-checker, verifier. Use when you know exactly what to do.
**`--discuss` flag:** Lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md. Use when the task has ambiguity worth resolving upfront.
**`--full` flag:** Enables the complete quality pipeline — discussion + research + plan-checking + verification. One flag for everything.
**`--validate` flag:** Enables plan-checking (max 2 iterations) and post-execution verification only. Use when you want quality guarantees without discussion or research.
**`--research` flag:** Spawns a focused research agent before planning. Investigates implementation approaches, library options, and pitfalls for the task. Use when you're unsure of the best approach.
Granular flags are composable: `--discuss --research --validate` gives the same result as `--full`.
**Subcommands:**
- `list` — List all quick tasks with status
- `status <slug>` — Show status of a specific quick task
- `resume <slug>` — Resume a specific quick task by slug
</objective>
<execution_context> @~/.claude/gsd-core/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:
ls -d .planning/quick/*/ 2>/dev/null
For each directory found:
- Check if PLAN.md exists
- Check if SUMMARY.md exists; if so, read `status` from its frontmatter via:
gsd-tools query frontmatter.get .planning/quick/{dir}/SUMMARY.md status- Determine directory creation date: `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)
- 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:
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.
STATUS subcommand
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: /gsd-quick resume {slug}No agent spawn. STOP after printing.
RESUME subcommand
When SUBCMD=resume and SLUG is set (already sanitized):
1. Find the directory matching `*-{SLUG}` pattern:
dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)2. If no directory found, print `No quick task found with slug: {SLUG}` and stop.
3. Read PLAN.md to extract description and SUMMARY.md (if exists) to extract status.
4. Print before spawning:
[quick] Resuming: .planning/quick/{dir}/
[quick] Plan: {description from PLAN.md}
[quick] Status: {status from SUMMARY.md, or "in-progress"}5. Load context via:
gsd-tools query init.quick
6. 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 end-to-end. Preserve all workflow gates (validation, task description, plannin
Read more
name: gsd-quick description: "Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents" argument-hint: "[list | status <slug> | resume <slug> | --full] [--validate] [--discuss] [--research] [task description]" allowed-tools: - Read - Write - Edit - Glob - Grep - Bash - Agent - AskUserQuestion
<objective> Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking).
Quick mode is the same system with a shorter path:
- Spawns gsd-planner (quick mode) + gsd-executor(s)
- Quick tasks live in `.planning/quick/` separate from planned phases
- Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
**Default:** Skips research, discussion, plan-checker, verifier. Use when you know exactly what to do.
**`--discuss` flag:** Lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md. Use when the task has ambiguity worth resolving upfront.
**`--full` flag:** Enables the complete quality pipeline — discussion + research + plan-checking + verification. One flag for everything.
**`--validate` flag:** Enables plan-checking (max 2 iterations) and post-execution verification only. Use when you want quality guarantees without discussion or research.
**`--research` flag:** Spawns a focused research agent before planning. Investigates implementation approaches, library options, and pitfalls for the task. Use when you're unsure of the best approach.
Granular flags are composable: `--discuss --research --validate` gives the same result as `--full`.
**Subcommands:**
- `list` — List all quick tasks with status
- `status <slug>` — Show status of a specific quick task
- `resume <slug>` — Resume a specific quick task by slug
</objective>
<execution_context> @~/.claude/gsd-core/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:
ls -d .planning/quick/*/ 2>/dev/null
For each directory found:
- Check if PLAN.md exists
- Check if SUMMARY.md exists; if so, read `status` from its frontmatter via:
gsd-tools query frontmatter.get .planning/quick/{dir}/SUMMARY.md status- Determine directory creation date: `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)
- 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:
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.
STATUS subcommand
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: /gsd-quick resume {slug}No agent spawn. STOP after printing.
RESUME subcommand
When SUBCMD=resume and SLUG is set (already sanitized):
1. Find the directory matching `*-{SLUG}` pattern:
dir=$(ls -d .planning/quick/*-{SLUG}/ 2>/dev/null | head -1)2. If no directory found, print `No quick task found with slug: {SLUG}` and stop.
3. Read PLAN.md to extract description and SUMMARY.md (if exists) to extract status.
4. Print before spawning:
[quick] Resuming: .planning/quick/{dir}/
[quick] Plan: {description from PLAN.md}
[quick] Status: {status from SUMMARY.md, or "in-progress"}5. Load context via:
gsd-tools query init.quick
6. 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 end-to-end. Preserve all workflow gates (validation, task description, plannin
Git. Ship. Done. A light-weight meta-prompting, context engineering, and spec-driven development system for Claude Code, OpenCode, Antigravity CLI, Kimi CLI, Kilo, Codex, Copilot, Cursor, Windsurf, and more.
Repo: open-gsd/gsd-core
Other skills on gsd-core.
- /gsd-add-tests
Generate tests for a completed phase based on UAT criteria and implementation
Open skill - /gsd-ai-integration-phase
Generate an AI-SPEC.md design contract for phases that involve building AI systems.
Open skill - /gsd-audit-fix
Autonomous audit-to-fix pipeline — find issues, classify, fix, test, commit
Open skill - /gsd-audit-milestone
Audit milestone completion against original intent before archiving
Open skill - /gsd-audit-uat
Cross-phase audit of all outstanding UAT and verification items
Open skill - /gsd-autonomous
Run all remaining phases autonomously — discuss→plan→execute per phase
Open skill

