|
|
|
|
@@ -1,13 +1,15 @@
|
|
|
|
|
<purpose>
|
|
|
|
|
Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking). Quick mode spawns gsd-planner (quick mode) + gsd-executor(s), tracks tasks in `.planning/quick/`, and updates STATE.md's "Quick Tasks Completed" table.
|
|
|
|
|
|
|
|
|
|
With `--discuss` flag: lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md so the planner treats them as locked.
|
|
|
|
|
With `--full` flag: enables the complete quality pipeline — discussion + research + plan-checking + verification. One flag for everything.
|
|
|
|
|
|
|
|
|
|
With `--full` flag: enables plan-checking (max 2 iterations) and post-execution verification for quality guarantees without full milestone ceremony.
|
|
|
|
|
With `--validate` flag: enables plan-checking (max 2 iterations) and post-execution verification only. Use when you want quality guarantees without discussion or research.
|
|
|
|
|
|
|
|
|
|
With `--discuss` flag: lightweight discussion phase before planning. Surfaces assumptions, clarifies gray areas, captures decisions in CONTEXT.md so the planner treats them as locked.
|
|
|
|
|
|
|
|
|
|
With `--research` flag: spawns a focused research agent before planning. Investigates implementation approaches, library options, and pitfalls. Use when you're unsure how to approach a task.
|
|
|
|
|
|
|
|
|
|
Flags are composable: `--discuss --research --full` gives discussion + research + plan-checking + verification.
|
|
|
|
|
Granular flags are composable: `--discuss --research --validate` gives the same result as `--full`.
|
|
|
|
|
</purpose>
|
|
|
|
|
|
|
|
|
|
<required_reading>
|
|
|
|
|
@@ -27,9 +29,10 @@ Valid GSD subagent types (use exact names — do not fall back to 'general-purpo
|
|
|
|
|
**Step 1: Parse arguments and get task description**
|
|
|
|
|
|
|
|
|
|
Parse `$ARGUMENTS` for:
|
|
|
|
|
- `--full` flag → store as `$FULL_MODE` (true/false)
|
|
|
|
|
- `--discuss` flag → store as `$DISCUSS_MODE` (true/false)
|
|
|
|
|
- `--research` flag → store as `$RESEARCH_MODE` (true/false)
|
|
|
|
|
- `--full` flag → store `$FULL_MODE=true`, `$DISCUSS_MODE=true`, `$RESEARCH_MODE=true`, `$VALIDATE_MODE=true`
|
|
|
|
|
- `--validate` flag → store `$VALIDATE_MODE=true`
|
|
|
|
|
- `--discuss` flag → store `$DISCUSS_MODE=true`
|
|
|
|
|
- `--research` flag → store `$RESEARCH_MODE=true`
|
|
|
|
|
- Remaining text → use as `$DESCRIPTION` if non-empty
|
|
|
|
|
|
|
|
|
|
If `$DESCRIPTION` is empty after parsing, prompt user interactively:
|
|
|
|
|
@@ -48,25 +51,34 @@ If still empty, re-prompt: "Please provide a task description."
|
|
|
|
|
|
|
|
|
|
Display banner based on active flags:
|
|
|
|
|
|
|
|
|
|
If `$DISCUSS_MODE` and `$RESEARCH_MODE` and `$FULL_MODE`:
|
|
|
|
|
If `$FULL_MODE` (all phases enabled — `--full` or all granular flags):
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (DISCUSS + RESEARCH + FULL)
|
|
|
|
|
GSD ► QUICK TASK (FULL)
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
◆ Discussion + research + plan checking + verification enabled
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If `$DISCUSS_MODE` and `$FULL_MODE` (no research):
|
|
|
|
|
If `$DISCUSS_MODE` and `$RESEARCH_MODE` and `$VALIDATE_MODE` (no `$FULL_MODE` — composed granularly):
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (DISCUSS + FULL)
|
|
|
|
|
GSD ► QUICK TASK (DISCUSS + RESEARCH + VALIDATE)
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
◆ Discussion + research + plan checking + verification enabled
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If `$DISCUSS_MODE` and `$VALIDATE_MODE` (no research):
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (DISCUSS + VALIDATE)
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
◆ Discussion + plan checking + verification enabled
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If `$DISCUSS_MODE` and `$RESEARCH_MODE` (no full):
|
|
|
|
|
If `$DISCUSS_MODE` and `$RESEARCH_MODE` (no validate):
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (DISCUSS + RESEARCH)
|
|
|
|
|
@@ -75,10 +87,10 @@ If `$DISCUSS_MODE` and `$RESEARCH_MODE` (no full):
|
|
|
|
|
◆ Discussion + research enabled
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If `$RESEARCH_MODE` and `$FULL_MODE` (no discuss):
|
|
|
|
|
If `$RESEARCH_MODE` and `$VALIDATE_MODE` (no discuss):
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (RESEARCH + FULL)
|
|
|
|
|
GSD ► QUICK TASK (RESEARCH + VALIDATE)
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
◆ Research + plan checking + verification enabled
|
|
|
|
|
@@ -102,10 +114,10 @@ If `$RESEARCH_MODE` only:
|
|
|
|
|
◆ Research phase enabled — investigating approaches before planning
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
If `$FULL_MODE` only:
|
|
|
|
|
If `$VALIDATE_MODE` only:
|
|
|
|
|
```
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
GSD ► QUICK TASK (FULL MODE)
|
|
|
|
|
GSD ► QUICK TASK (VALIDATE)
|
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
|
|
|
|
|
|
|
|
◆ Plan checking + verification enabled
|
|
|
|
|
@@ -367,16 +379,16 @@ If research file not found, warn but continue: "Research agent did not produce o
|
|
|
|
|
|
|
|
|
|
**Step 5: Spawn planner (quick mode)**
|
|
|
|
|
|
|
|
|
|
**If `$FULL_MODE`:** Use `quick-full` mode with stricter constraints.
|
|
|
|
|
**If `$VALIDATE_MODE`:** Use `quick-full` mode with stricter constraints.
|
|
|
|
|
|
|
|
|
|
**If NOT `$FULL_MODE`:** Use standard `quick` mode.
|
|
|
|
|
**If NOT `$VALIDATE_MODE`:** Use standard `quick` mode.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
Task(
|
|
|
|
|
prompt="
|
|
|
|
|
<planning_context>
|
|
|
|
|
|
|
|
|
|
**Mode:** ${FULL_MODE ? 'quick-full' : 'quick'}
|
|
|
|
|
**Mode:** ${VALIDATE_MODE ? 'quick-full' : 'quick'}
|
|
|
|
|
**Directory:** ${QUICK_DIR}
|
|
|
|
|
**Description:** ${DESCRIPTION}
|
|
|
|
|
|
|
|
|
|
@@ -397,9 +409,9 @@ ${AGENT_SKILLS_PLANNER}
|
|
|
|
|
- Create a SINGLE plan with 1-3 focused tasks
|
|
|
|
|
- Quick tasks should be atomic and self-contained
|
|
|
|
|
${RESEARCH_MODE ? '- Research findings are available — use them to inform library/pattern choices' : '- No research phase'}
|
|
|
|
|
${FULL_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
|
|
|
|
|
${FULL_MODE ? '- MUST generate `must_haves` in plan frontmatter (truths, artifacts, key_links)' : ''}
|
|
|
|
|
${FULL_MODE ? '- Each task MUST have `files`, `action`, `verify`, `done` fields' : ''}
|
|
|
|
|
${VALIDATE_MODE ? '- Target ~40% context usage (structured for verification)' : '- Target ~30% context usage (simple, focused)'}
|
|
|
|
|
${VALIDATE_MODE ? '- MUST generate `must_haves` in plan frontmatter (truths, artifacts, key_links)' : ''}
|
|
|
|
|
${VALIDATE_MODE ? '- Each task MUST have `files`, `action`, `verify`, `done` fields' : ''}
|
|
|
|
|
</constraints>
|
|
|
|
|
|
|
|
|
|
<output>
|
|
|
|
|
@@ -422,9 +434,9 @@ If plan not found, error: "Planner failed to create ${quick_id}-PLAN.md"
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**Step 5.5: Plan-checker loop (only when `$FULL_MODE`)**
|
|
|
|
|
**Step 5.5: Plan-checker loop (only when `$VALIDATE_MODE`)**
|
|
|
|
|
|
|
|
|
|
Skip this step entirely if NOT `$FULL_MODE`.
|
|
|
|
|
Skip this step entirely if NOT `$VALIDATE_MODE`.
|
|
|
|
|
|
|
|
|
|
Display banner:
|
|
|
|
|
```
|
|
|
|
|
@@ -577,9 +589,9 @@ Note: For quick tasks producing multiple plans (rare), spawn executors in parall
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
**Step 6.5: Verification (only when `$FULL_MODE`)**
|
|
|
|
|
**Step 6.5: Verification (only when `$VALIDATE_MODE`)**
|
|
|
|
|
|
|
|
|
|
Skip this step entirely if NOT `$FULL_MODE`.
|
|
|
|
|
Skip this step entirely if NOT `$VALIDATE_MODE`.
|
|
|
|
|
|
|
|
|
|
Display banner:
|
|
|
|
|
```
|
|
|
|
|
@@ -636,7 +648,7 @@ Read STATE.md and check for `### Quick Tasks Completed` section.
|
|
|
|
|
|
|
|
|
|
Insert after `### Blockers/Concerns` section:
|
|
|
|
|
|
|
|
|
|
**If `$FULL_MODE`:**
|
|
|
|
|
**If `$VALIDATE_MODE`:**
|
|
|
|
|
```markdown
|
|
|
|
|
### Quick Tasks Completed
|
|
|
|
|
|
|
|
|
|
@@ -644,7 +656,7 @@ Insert after `### Blockers/Concerns` section:
|
|
|
|
|
|---|-------------|------|--------|--------|-----------|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**If NOT `$FULL_MODE`:**
|
|
|
|
|
**If NOT `$VALIDATE_MODE`:**
|
|
|
|
|
```markdown
|
|
|
|
|
### Quick Tasks Completed
|
|
|
|
|
|
|
|
|
|
@@ -652,18 +664,18 @@ Insert after `### Blockers/Concerns` section:
|
|
|
|
|
|---|-------------|------|--------|-----------|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Note:** If the table already exists, match its existing column format. If adding `--full` to a project that already has quick tasks without a Status column, add the Status column to the header and separator rows, and leave Status empty for the new row's predecessors.
|
|
|
|
|
**Note:** If the table already exists, match its existing column format. If adding `--validate` (or `--full`) to a project that already has quick tasks without a Status column, add the Status column to the header and separator rows, and leave Status empty for the new row's predecessors.
|
|
|
|
|
|
|
|
|
|
**7c. Append new row to table:**
|
|
|
|
|
|
|
|
|
|
Use `date` from init:
|
|
|
|
|
|
|
|
|
|
**If `$FULL_MODE` (or table has Status column):**
|
|
|
|
|
**If `$VALIDATE_MODE` (or table has Status column):**
|
|
|
|
|
```markdown
|
|
|
|
|
| ${quick_id} | ${DESCRIPTION} | ${date} | ${commit_hash} | ${VERIFICATION_STATUS} | [${quick_id}-${slug}](./quick/${quick_id}-${slug}/) |
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**If NOT `$FULL_MODE` (and table has no Status column):**
|
|
|
|
|
**If NOT `$VALIDATE_MODE` (and table has no Status column):**
|
|
|
|
|
```markdown
|
|
|
|
|
| ${quick_id} | ${DESCRIPTION} | ${date} | ${commit_hash} | [${quick_id}-${slug}](./quick/${quick_id}-${slug}/) |
|
|
|
|
|
```
|
|
|
|
|
@@ -689,7 +701,7 @@ Build file list:
|
|
|
|
|
- `.planning/STATE.md`
|
|
|
|
|
- If `$DISCUSS_MODE` and context file exists: `${QUICK_DIR}/${quick_id}-CONTEXT.md`
|
|
|
|
|
- If `$RESEARCH_MODE` and research file exists: `${QUICK_DIR}/${quick_id}-RESEARCH.md`
|
|
|
|
|
- If `$FULL_MODE` and verification file exists: `${QUICK_DIR}/${quick_id}-VERIFICATION.md`
|
|
|
|
|
- If `$VALIDATE_MODE` and verification file exists: `${QUICK_DIR}/${quick_id}-VERIFICATION.md`
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
node "$HOME/.claude/get-shit-done/bin/gsd-tools.cjs" commit "docs(quick-${quick_id}): ${DESCRIPTION}" --files ${file_list}
|
|
|
|
|
@@ -702,11 +714,11 @@ commit_hash=$(git rev-parse --short HEAD)
|
|
|
|
|
|
|
|
|
|
Display completion output:
|
|
|
|
|
|
|
|
|
|
**If `$FULL_MODE`:**
|
|
|
|
|
**If `$VALIDATE_MODE`:**
|
|
|
|
|
```
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
GSD > QUICK TASK COMPLETE (FULL MODE)
|
|
|
|
|
GSD > QUICK TASK COMPLETE (VALIDATED)
|
|
|
|
|
|
|
|
|
|
Quick Task ${quick_id}: ${DESCRIPTION}
|
|
|
|
|
|
|
|
|
|
@@ -720,7 +732,7 @@ Commit: ${commit_hash}
|
|
|
|
|
Ready for next task: /gsd:quick ${GSD_WS}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**If NOT `$FULL_MODE`:**
|
|
|
|
|
**If NOT `$VALIDATE_MODE`:**
|
|
|
|
|
```
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
@@ -742,16 +754,17 @@ Ready for next task: /gsd:quick ${GSD_WS}
|
|
|
|
|
<success_criteria>
|
|
|
|
|
- [ ] ROADMAP.md validation passes
|
|
|
|
|
- [ ] User provides task description
|
|
|
|
|
- [ ] `--full`, `--discuss`, and `--research` flags parsed from arguments when present
|
|
|
|
|
- [ ] `--full`, `--validate`, `--discuss`, and `--research` flags parsed from arguments when present
|
|
|
|
|
- [ ] `--full` sets all booleans (`$FULL_MODE`, `$DISCUSS_MODE`, `$RESEARCH_MODE`, `$VALIDATE_MODE`)
|
|
|
|
|
- [ ] Slug generated (lowercase, hyphens, max 40 chars)
|
|
|
|
|
- [ ] Quick ID generated (YYMMDD-xxx format, 2s Base36 precision)
|
|
|
|
|
- [ ] Directory created at `.planning/quick/YYMMDD-xxx-slug/`
|
|
|
|
|
- [ ] (--discuss) Gray areas identified and presented, decisions captured in `${quick_id}-CONTEXT.md`
|
|
|
|
|
- [ ] (--research) Research agent spawned, `${quick_id}-RESEARCH.md` created
|
|
|
|
|
- [ ] `${quick_id}-PLAN.md` created by planner (honors CONTEXT.md decisions when --discuss, uses RESEARCH.md findings when --research)
|
|
|
|
|
- [ ] (--full) Plan checker validates plan, revision loop capped at 2
|
|
|
|
|
- [ ] (--validate) Plan checker validates plan, revision loop capped at 2
|
|
|
|
|
- [ ] `${quick_id}-SUMMARY.md` created by executor
|
|
|
|
|
- [ ] (--full) `${quick_id}-VERIFICATION.md` created by verifier
|
|
|
|
|
- [ ] STATE.md updated with quick task row (Status column when --full)
|
|
|
|
|
- [ ] (--validate) `${quick_id}-VERIFICATION.md` created by verifier
|
|
|
|
|
- [ ] STATE.md updated with quick task row (Status column when --validate)
|
|
|
|
|
- [ ] Artifacts committed
|
|
|
|
|
</success_criteria>
|
|
|
|
|
|