跳到主要内容
知仓学习社ZHICANG

gsd_quick

Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents

不碰外部(只输出文字)无严重或高危命中davepoon/buildwithclaude

它会碰到什么

扫了多少1 个文本文件,8 KB
它会碰到什么不碰外部(只输出文字)
命中总数0 处
命中统计严重 0 · 高 0 · 中 0 · 低 0

这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。

技能内容

<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_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:

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-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) 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)
  1. If no directory found, print No quick task found with slug: {SLUG} and stop.
  1. Read PLAN.md to extract description and SUMMARY.md (if exists) to extract status.
  1. Print before spawning:
   [quick] Resuming: .planning/quick/{dir}/
   [quick] Plan: {description from PLAN.md}
   [quick] Status: {status from SUMMARY.md, or "in-progress"}
  1. Load context via:
   gsd-sdk query init.quick
  1. 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 Up heading suggesting the next likely action (often /gsd:next or 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 /clear IS suggested, include the parenthetical: (/clear is safe — /gsd:resume-work restores position from HANDOFF.json if you change your mind)

The skip-clear-on-trivial-tasks rule keeps the prompt cache investment intact for follow-up small fixes; the suggest-clear-on-substantial-tasks rule sheds accumulated context before a phase-scope shift.

</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 list to audit accumulated tasks; use resume to 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 gsd-sdk query frontmatter.get — never eval'd or shell-expanded

</security_notes>

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。

它属于哪个仓库

星标★ 3,470
本站分层T1
该仓技能数381
原文件路径plugins/gsd/skills/quick/SKILL.md

同一个仓库里的其他技能

看这个仓库的全部 381 个技能