gsd-cc 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -0
- package/bin/install.js +209 -0
- package/package.json +29 -0
- package/skills/gsd/SKILL.md +178 -0
- package/skills/gsd/apply/.gitkeep +0 -0
- package/skills/gsd/apply/SKILL.md +182 -0
- package/skills/gsd/auto/.gitkeep +0 -0
- package/skills/gsd/auto/SKILL.md +129 -0
- package/skills/gsd/auto/auto-loop.sh +350 -0
- package/skills/gsd/checklists/.gitkeep +0 -0
- package/skills/gsd/checklists/planning-ready.md +36 -0
- package/skills/gsd/checklists/unify-complete.md +41 -0
- package/skills/gsd/discuss/.gitkeep +0 -0
- package/skills/gsd/discuss/SKILL.md +145 -0
- package/skills/gsd/plan/.gitkeep +0 -0
- package/skills/gsd/plan/SKILL.md +250 -0
- package/skills/gsd/prompts/.gitkeep +0 -0
- package/skills/gsd/prompts/apply-instructions.txt +98 -0
- package/skills/gsd/prompts/plan-instructions.txt +76 -0
- package/skills/gsd/prompts/reassess-instructions.txt +65 -0
- package/skills/gsd/prompts/unify-instructions.txt +126 -0
- package/skills/gsd/seed/SKILL.md +186 -0
- package/skills/gsd/seed/types/application/.gitkeep +0 -0
- package/skills/gsd/seed/types/application/config.md +30 -0
- package/skills/gsd/seed/types/application/guide.md +81 -0
- package/skills/gsd/seed/types/application/loadout.md +31 -0
- package/skills/gsd/seed/types/campaign/.gitkeep +0 -0
- package/skills/gsd/seed/types/campaign/config.md +27 -0
- package/skills/gsd/seed/types/campaign/guide.md +57 -0
- package/skills/gsd/seed/types/campaign/loadout.md +30 -0
- package/skills/gsd/seed/types/client/.gitkeep +0 -0
- package/skills/gsd/seed/types/client/config.md +27 -0
- package/skills/gsd/seed/types/client/guide.md +57 -0
- package/skills/gsd/seed/types/client/loadout.md +31 -0
- package/skills/gsd/seed/types/utility/.gitkeep +0 -0
- package/skills/gsd/seed/types/utility/config.md +27 -0
- package/skills/gsd/seed/types/utility/guide.md +49 -0
- package/skills/gsd/seed/types/utility/loadout.md +20 -0
- package/skills/gsd/seed/types/workflow/.gitkeep +0 -0
- package/skills/gsd/seed/types/workflow/config.md +28 -0
- package/skills/gsd/seed/types/workflow/guide.md +65 -0
- package/skills/gsd/seed/types/workflow/loadout.md +21 -0
- package/skills/gsd/status/.gitkeep +0 -0
- package/skills/gsd/status/SKILL.md +157 -0
- package/skills/gsd/templates/.gitkeep +0 -0
- package/skills/gsd/templates/PLAN.xml +65 -0
- package/skills/gsd/templates/PLANNING.md +63 -0
- package/skills/gsd/templates/STATE.md +41 -0
- package/skills/gsd/templates/UNIFY.md +43 -0
- package/skills/gsd/unify/.gitkeep +0 -0
- package/skills/gsd/unify/SKILL.md +230 -0
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Client — Recommended Tools
|
|
2
|
+
|
|
3
|
+
## Frameworks
|
|
4
|
+
- **Next.js** / **Astro** — static + dynamic pages
|
|
5
|
+
- **Hugo** / **11ty** — pure static site generators
|
|
6
|
+
- **WordPress** — if client needs self-service CMS
|
|
7
|
+
|
|
8
|
+
## Styling
|
|
9
|
+
- **Tailwind CSS** — utility-first, rapid prototyping
|
|
10
|
+
- **shadcn/ui** — pre-built components
|
|
11
|
+
- **Framer Motion** — animations
|
|
12
|
+
|
|
13
|
+
## CMS (if needed)
|
|
14
|
+
- **Sanity** — headless, developer-friendly
|
|
15
|
+
- **Contentful** — established headless CMS
|
|
16
|
+
- **Tina** — Git-based, visual editing
|
|
17
|
+
|
|
18
|
+
## Hosting
|
|
19
|
+
- **Vercel** — zero-config, free tier
|
|
20
|
+
- **Netlify** — alternative with form handling
|
|
21
|
+
- **Cloudflare Pages** — edge deployment
|
|
22
|
+
|
|
23
|
+
## Analytics & SEO
|
|
24
|
+
- **Google Analytics** / **Plausible** — traffic tracking
|
|
25
|
+
- **Google Search Console** — SEO monitoring
|
|
26
|
+
- **next-sitemap** — automated sitemap generation
|
|
27
|
+
|
|
28
|
+
## Conversion
|
|
29
|
+
- **Calendly** — booking embeds
|
|
30
|
+
- **Formspree** / **Getform** — form backends
|
|
31
|
+
- **Stripe** — payments (if needed)
|
|
File without changes
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Utility — Configuration
|
|
2
|
+
|
|
3
|
+
rigor: tight
|
|
4
|
+
sections: 6
|
|
5
|
+
demeanor: focused-efficient
|
|
6
|
+
timeout_multiplier: 0.5
|
|
7
|
+
max_turns_multiplier: 0.6
|
|
8
|
+
|
|
9
|
+
## Required Sections (6)
|
|
10
|
+
|
|
11
|
+
1. Problem Statement
|
|
12
|
+
2. Scope Guard
|
|
13
|
+
3. User & Distribution
|
|
14
|
+
4. Dependencies
|
|
15
|
+
5. Interface
|
|
16
|
+
6. Done Criteria
|
|
17
|
+
|
|
18
|
+
## Optional Sections
|
|
19
|
+
|
|
20
|
+
None. Every section is required for utilities.
|
|
21
|
+
|
|
22
|
+
## Philosophy
|
|
23
|
+
|
|
24
|
+
Utilities do one thing well. The best utility fits in one file, has zero
|
|
25
|
+
dependencies, and can be explained in one sentence. Actively resist scope
|
|
26
|
+
creep. If the description needs more than one sentence, it might be an
|
|
27
|
+
application. Complete ideation in a single focused session.
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Utility — Conversation Guide
|
|
2
|
+
|
|
3
|
+
## 1/6 — Problem Statement
|
|
4
|
+
|
|
5
|
+
**Explore:** What does this tool do? One sentence. If it takes more than one sentence, it might not be a utility.
|
|
6
|
+
|
|
7
|
+
**Suggest:** Push for brevity: "It takes X and produces Y." If the description is getting complex, ask: "Is this actually an application?" Utilities resist expansion.
|
|
8
|
+
|
|
9
|
+
**Skip-Condition:** Never skip.
|
|
10
|
+
|
|
11
|
+
## 2/6 — Scope Guard
|
|
12
|
+
|
|
13
|
+
**Explore:** One file or multiple? One function or a system? What does this explicitly NOT do? Where's the boundary?
|
|
14
|
+
|
|
15
|
+
**Suggest:** Actively resist expansion. If the user says "and it could also..." — stop them. "That sounds like a separate tool. Let's keep this one focused." The best utilities do one thing well.
|
|
16
|
+
|
|
17
|
+
**Skip-Condition:** Never skip.
|
|
18
|
+
|
|
19
|
+
## 3/6 — User & Distribution
|
|
20
|
+
|
|
21
|
+
**Explore:** Who uses this — just you, your team, the community? How is it distributed — npm package, local script, MCP server?
|
|
22
|
+
|
|
23
|
+
**Suggest:** Personal tools need less documentation. Shared tools need a README and clear interface. npm packages need proper packaging.
|
|
24
|
+
|
|
25
|
+
**Skip-Condition:** Never skip.
|
|
26
|
+
|
|
27
|
+
## 4/6 — Dependencies
|
|
28
|
+
|
|
29
|
+
**Explore:** What does this depend on? External APIs, npm packages, system tools? Can you minimize dependencies?
|
|
30
|
+
|
|
31
|
+
**Suggest:** Fewer deps = less maintenance. If a dependency is heavy, consider lighter alternatives. Zero-dep utilities are the gold standard.
|
|
32
|
+
|
|
33
|
+
**Skip-Condition:** Never skip.
|
|
34
|
+
|
|
35
|
+
## 5/6 — Interface
|
|
36
|
+
|
|
37
|
+
**Explore:** How is it invoked? CLI args, stdin, function call, MCP tool? What's the input format? What's the output format?
|
|
38
|
+
|
|
39
|
+
**Suggest:** Define the contract: "Input: X (format), Output: Y (format), Errors: Z." If you can't define the interface cleanly, the scope might be too broad.
|
|
40
|
+
|
|
41
|
+
**Skip-Condition:** Never skip.
|
|
42
|
+
|
|
43
|
+
## 6/6 — Done Criteria
|
|
44
|
+
|
|
45
|
+
**Explore:** What are 3-5 test cases that prove this works? Can you define them now? If you can't, the scope might be too vague.
|
|
46
|
+
|
|
47
|
+
**Suggest:** Write them as: "Given X, expect Y." If every test case is different, the tool might be doing too many things. 3 test cases is the sweet spot.
|
|
48
|
+
|
|
49
|
+
**Skip-Condition:** Never skip.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Utility — Recommended Tools
|
|
2
|
+
|
|
3
|
+
## Runtime
|
|
4
|
+
- **Node.js** — default for JS/TS utilities
|
|
5
|
+
- **Bun** — fast alternative, built-in test runner
|
|
6
|
+
- **Bash** — for simple system scripts
|
|
7
|
+
|
|
8
|
+
## Libraries
|
|
9
|
+
- **commander** / **yargs** — CLI argument parsing
|
|
10
|
+
- **zod** — input validation
|
|
11
|
+
- **chalk** — colored terminal output
|
|
12
|
+
|
|
13
|
+
## Testing
|
|
14
|
+
- **Vitest** / **Jest** — unit tests
|
|
15
|
+
- **Bun test** — zero-config if using Bun
|
|
16
|
+
|
|
17
|
+
## Distribution
|
|
18
|
+
- **npm** — public packages
|
|
19
|
+
- **npx** — zero-install execution
|
|
20
|
+
- **Homebrew** — macOS CLI distribution
|
|
File without changes
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Workflow — Configuration
|
|
2
|
+
|
|
3
|
+
rigor: standard
|
|
4
|
+
sections: 8
|
|
5
|
+
demeanor: systematic-pragmatic
|
|
6
|
+
timeout_multiplier: 1.0
|
|
7
|
+
max_turns_multiplier: 1.0
|
|
8
|
+
|
|
9
|
+
## Required Sections (6)
|
|
10
|
+
|
|
11
|
+
1. Trigger & Purpose
|
|
12
|
+
2. Steps & Flow
|
|
13
|
+
3. Tools & Permissions
|
|
14
|
+
4. Error Handling
|
|
15
|
+
5. State Management
|
|
16
|
+
6. Testing Strategy
|
|
17
|
+
|
|
18
|
+
## Optional Sections (2)
|
|
19
|
+
|
|
20
|
+
7. Distribution
|
|
21
|
+
8. Integration with Other Skills
|
|
22
|
+
|
|
23
|
+
## Philosophy
|
|
24
|
+
|
|
25
|
+
Workflows orchestrate Claude Code — commands, hooks, skills, MCP servers.
|
|
26
|
+
They need clear triggers, predictable flow, and solid error handling.
|
|
27
|
+
Focus on what fires when, what tools are needed, and what happens when
|
|
28
|
+
things go wrong. Keep the scope per-workflow tight.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Workflow — Conversation Guide
|
|
2
|
+
|
|
3
|
+
## 1/8 — Trigger & Purpose
|
|
4
|
+
|
|
5
|
+
**Explore:** What kicks this off? A slash command, a hook, a schedule, a user action? What's the end result — what does "done" look like?
|
|
6
|
+
|
|
7
|
+
**Suggest:** Slash commands for user-initiated, hooks for automatic triggers (pre-commit, post-file-edit), MCP for tool integration. Pick one primary trigger.
|
|
8
|
+
|
|
9
|
+
**Skip-Condition:** Never skip.
|
|
10
|
+
|
|
11
|
+
## 2/8 — Steps & Flow
|
|
12
|
+
|
|
13
|
+
**Explore:** Walk me through it step by step. What happens first, then what? Are there decision points where the flow branches? Is it linear or does it loop?
|
|
14
|
+
|
|
15
|
+
**Suggest:** Draw it as: "Step 1 → Step 2 → if X then Step 3a, else Step 3b → Done." Keep it under 10 steps. If more, consider splitting into multiple workflows.
|
|
16
|
+
|
|
17
|
+
**Skip-Condition:** Never skip.
|
|
18
|
+
|
|
19
|
+
## 3/8 — Tools & Permissions
|
|
20
|
+
|
|
21
|
+
**Explore:** What Claude Code tools does this need? Read, Write, Edit, Bash, Glob, Grep? Any MCP servers? What permissions are required — and what should be explicitly excluded?
|
|
22
|
+
|
|
23
|
+
**Suggest:** Start with the minimum set. Read + Glob for analysis workflows. Read + Write + Edit for modification workflows. Bash only when shell access is truly needed.
|
|
24
|
+
|
|
25
|
+
**Skip-Condition:** Never skip.
|
|
26
|
+
|
|
27
|
+
## 4/8 — Error Handling
|
|
28
|
+
|
|
29
|
+
**Explore:** What can go wrong? File not found, permission denied, unexpected format, API timeout? What should happen in each case — retry, abort, ask the user?
|
|
30
|
+
|
|
31
|
+
**Suggest:** For each error: decide between fail-fast (abort + clear message) and graceful degradation (skip + warn). Most workflows should fail-fast on critical errors and degrade on optional steps.
|
|
32
|
+
|
|
33
|
+
**Skip-Condition:** Never skip.
|
|
34
|
+
|
|
35
|
+
## 5/8 — State Management
|
|
36
|
+
|
|
37
|
+
**Explore:** Does this workflow need to remember anything between runs? Intermediate results, configuration, progress tracking? Where does state live — files, environment variables?
|
|
38
|
+
|
|
39
|
+
**Suggest:** If stateless works, prefer it. If state is needed: a single JSON or markdown file in `.gsd/` or a project-specific directory. Avoid complex state machines unless truly needed.
|
|
40
|
+
|
|
41
|
+
**Skip-Condition:** Skip if the workflow is purely stateless (single run, no memory).
|
|
42
|
+
|
|
43
|
+
## 6/8 — Testing Strategy
|
|
44
|
+
|
|
45
|
+
**Explore:** How do you verify this works? Can you test it in isolation? What's a minimal test case? What would a regression look like?
|
|
46
|
+
|
|
47
|
+
**Suggest:** Create a test fixture (sample files/state), run the workflow, check the output. For hooks: test with a dry-run flag. For commands: test with known input.
|
|
48
|
+
|
|
49
|
+
**Skip-Condition:** Never skip.
|
|
50
|
+
|
|
51
|
+
## 7/8 — Distribution
|
|
52
|
+
|
|
53
|
+
**Explore:** Is this just for you, or should others be able to install it? If shared: how? npm package, GitHub repo, copy-paste into `.claude/`?
|
|
54
|
+
|
|
55
|
+
**Suggest:** Personal: drop in `~/.claude/commands/` or `~/.claude/skills/`. Shared: npm package with an installer (like GSD-CC itself). For teams: document in project README.
|
|
56
|
+
|
|
57
|
+
**Skip-Condition:** Skip if explicitly personal-only.
|
|
58
|
+
|
|
59
|
+
## 8/8 — Integration with Other Skills
|
|
60
|
+
|
|
61
|
+
**Explore:** Does this work with other Claude Code skills or commands? Does it read or write files that other workflows depend on? Any coordination needed?
|
|
62
|
+
|
|
63
|
+
**Suggest:** If it reads/writes shared state (like `.gsd/STATE.md`), document the contract. If it triggers other commands, define the interface clearly.
|
|
64
|
+
|
|
65
|
+
**Skip-Condition:** Skip if fully standalone.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Workflow — Recommended Tools
|
|
2
|
+
|
|
3
|
+
## Claude Code Features
|
|
4
|
+
- **Skills** (SKILL.md) — for persistent, auto-triggered behaviors
|
|
5
|
+
- **Commands** (commands/) — for slash-command invocations
|
|
6
|
+
- **Hooks** (settings.json) — for event-driven automation
|
|
7
|
+
- **MCP Servers** — for tool integration
|
|
8
|
+
|
|
9
|
+
## Markdown Authoring
|
|
10
|
+
- **YAML frontmatter** — skill metadata (name, description, allowed-tools)
|
|
11
|
+
- **Structured sections** — clear step-by-step instructions
|
|
12
|
+
|
|
13
|
+
## Shell
|
|
14
|
+
- **Bash** — for auto-loop scripts and system integration
|
|
15
|
+
- **jq** — JSON parsing in shell scripts
|
|
16
|
+
- **curl** — API calls from scripts
|
|
17
|
+
|
|
18
|
+
## Testing
|
|
19
|
+
- **Manual test fixtures** — sample files + expected output
|
|
20
|
+
- **Bash assertions** — `[[ -f expected.md ]]` style checks
|
|
21
|
+
- **Dry-run flags** — non-destructive test modes
|
|
File without changes
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsd-cc-status
|
|
3
|
+
description: >
|
|
4
|
+
Show project progress, AC status, token usage, and auto-mode state.
|
|
5
|
+
Use when user says /gsd-cc-status, /gsd-cc status, or asks about project
|
|
6
|
+
progress, costs, or current state.
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /gsd-cc-status — Project Status
|
|
11
|
+
|
|
12
|
+
You show a clear, concise overview of where the project stands. No actions — just information and one suggested next step.
|
|
13
|
+
|
|
14
|
+
## Step 1: Read State
|
|
15
|
+
|
|
16
|
+
1. Read `.gsd/STATE.md`
|
|
17
|
+
2. Read `.gsd/type.json`
|
|
18
|
+
3. Use `Glob` to find all:
|
|
19
|
+
- `S*-PLAN.md` files (planned slices)
|
|
20
|
+
- `S*-UNIFY.md` files (unified slices)
|
|
21
|
+
- `S*-T*-SUMMARY.md` files (completed tasks)
|
|
22
|
+
4. Read `.gsd/COSTS.jsonl` if it exists
|
|
23
|
+
5. Check if `.gsd/auto.lock` exists
|
|
24
|
+
|
|
25
|
+
## Step 2: Build Milestone Overview
|
|
26
|
+
|
|
27
|
+
For each slice in the roadmap:
|
|
28
|
+
|
|
29
|
+
| Indicator | Meaning |
|
|
30
|
+
|-----------|---------|
|
|
31
|
+
| `[done]` | UNIFY.md exists |
|
|
32
|
+
| `[T{nn}/T{total}]` | Some tasks have summaries, execution in progress |
|
|
33
|
+
| `[planned]` | PLAN.md exists but no summaries yet |
|
|
34
|
+
| `[pending]` | No PLAN.md yet |
|
|
35
|
+
|
|
36
|
+
Display:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
M001 — {milestone name}
|
|
40
|
+
|
|
41
|
+
S01 {slice name} [done] {x}/{y} AC ✓ unified
|
|
42
|
+
S02 {slice name} [done] {x}/{y} AC ✓ unified
|
|
43
|
+
S03 {slice name} [T02/T04] {x}/{y} AC running
|
|
44
|
+
S04 {slice name} [planned]
|
|
45
|
+
S05 {slice name} [pending]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Step 3: Current Position
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
Current: S{nn} / T{nn} — {task name}
|
|
52
|
+
Phase: {phase from STATE.md}
|
|
53
|
+
Type: {project type} / {rigor}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Step 4: AC Summary
|
|
57
|
+
|
|
58
|
+
If any slices have been executed, show aggregate AC stats:
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Acceptance Criteria:
|
|
62
|
+
Total: {n} defined
|
|
63
|
+
Passed: {n} ✓
|
|
64
|
+
Partial: {n} ⚠
|
|
65
|
+
Failed: {n} ✗
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Read AC results from UNIFY.md files (for completed slices) and SUMMARY.md files (for in-progress slice).
|
|
69
|
+
|
|
70
|
+
## Step 5: Token Usage (if available)
|
|
71
|
+
|
|
72
|
+
If `.gsd/COSTS.jsonl` exists, parse it and show:
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Token Usage:
|
|
76
|
+
Input: {total}k tokens
|
|
77
|
+
Output: {total}k tokens
|
|
78
|
+
By phase: plan {n}% · apply {n}% · unify {n}%
|
|
79
|
+
By slice: S01 {n}% · S02 {n}% · S03 {n}%
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Use `Bash` to parse COSTS.jsonl:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
cat .gsd/COSTS.jsonl | python3 -c "
|
|
86
|
+
import sys, json
|
|
87
|
+
lines = [json.loads(l) for l in sys.stdin if l.strip()]
|
|
88
|
+
inp = sum(l.get('usage',{}).get('input_tokens',0) for l in lines)
|
|
89
|
+
out = sum(l.get('usage',{}).get('output_tokens',0) for l in lines)
|
|
90
|
+
print(f'Input: {inp/1000:.0f}k tokens')
|
|
91
|
+
print(f'Output: {out/1000:.0f}k tokens')
|
|
92
|
+
"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If python3 is not available, skip the detailed breakdown and just show line count.
|
|
96
|
+
|
|
97
|
+
If COSTS.jsonl doesn't exist: "Token usage: not tracked (manual mode)"
|
|
98
|
+
|
|
99
|
+
## Step 6: Auto-Mode Status
|
|
100
|
+
|
|
101
|
+
If `.gsd/auto.lock` exists:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
Auto-mode: ACTIVE
|
|
105
|
+
Current: {unit from lock}
|
|
106
|
+
Phase: {phase from lock}
|
|
107
|
+
Started: {timestamp from lock}
|
|
108
|
+
PID: {pid from lock}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Check if the PID is still running:
|
|
112
|
+
```bash
|
|
113
|
+
kill -0 {pid} 2>/dev/null && echo "running" || echo "stale"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
If stale: "Auto-mode: STALE (process not running, lock file remains)"
|
|
117
|
+
|
|
118
|
+
If no lock file: "Auto-mode: inactive"
|
|
119
|
+
|
|
120
|
+
## Step 7: Suggest Next Action
|
|
121
|
+
|
|
122
|
+
Based on the current state, suggest ONE next action (same logic as `/gsd-cc` router, but presented as a suggestion, not a command):
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
Next: {suggested action}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## Output Format
|
|
129
|
+
|
|
130
|
+
Combine all sections into a single, clean output:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
GSD-CC Status
|
|
134
|
+
─────────────
|
|
135
|
+
|
|
136
|
+
M001 — {milestone name}
|
|
137
|
+
|
|
138
|
+
S01 {name} [done] 4/4 AC ✓ unified
|
|
139
|
+
S02 {name} [T02/T04] 1/3 AC running
|
|
140
|
+
S03 {name} [pending]
|
|
141
|
+
|
|
142
|
+
Current: S02 / T02 — {task name}
|
|
143
|
+
Phase: applying
|
|
144
|
+
Type: application / deep
|
|
145
|
+
|
|
146
|
+
Acceptance Criteria: 5/7 passed, 1 partial, 1 pending
|
|
147
|
+
|
|
148
|
+
Token Usage:
|
|
149
|
+
142k input / 38k output
|
|
150
|
+
By phase: plan 22% · apply 68% · unify 10%
|
|
151
|
+
|
|
152
|
+
Auto-mode: inactive
|
|
153
|
+
|
|
154
|
+
Next: Continue with S02/T02.
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
Keep it compact. No explanations, no walls of text. Just the facts.
|
|
File without changes
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
GSD-CC Task Plan Template
|
|
3
|
+
|
|
4
|
+
Usage: Copy this template for each task as .gsd/S{nn}-T{nn}-PLAN.md
|
|
5
|
+
|
|
6
|
+
Fields:
|
|
7
|
+
- id: Slice + Task identifier (e.g. S01-T02)
|
|
8
|
+
- type: "manual" (user present) or "auto" (auto-loop dispatch)
|
|
9
|
+
- name: Short descriptive name for the task
|
|
10
|
+
|
|
11
|
+
Rules:
|
|
12
|
+
- Every task MUST have at least one <ac> in acceptance_criteria
|
|
13
|
+
- Every <ac> MUST use Given/When/Then format
|
|
14
|
+
- Every task MUST have a <boundaries> section (can state "none")
|
|
15
|
+
- <verify> MUST reference at least one AC by id
|
|
16
|
+
- No "TBD", "TODO", or "later" in <action> or <files>
|
|
17
|
+
- If a task doesn't fit in one context window, split it into two tasks
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
<task id="S01-T01" type="auto">
|
|
21
|
+
<name>{{TASK_NAME}}</name>
|
|
22
|
+
|
|
23
|
+
<files>
|
|
24
|
+
<!-- Files this task will create or modify -->
|
|
25
|
+
{{FILE_1}}
|
|
26
|
+
{{FILE_2}}
|
|
27
|
+
</files>
|
|
28
|
+
|
|
29
|
+
<acceptance_criteria>
|
|
30
|
+
<ac id="AC-1">
|
|
31
|
+
Given {{PRECONDITION}}
|
|
32
|
+
When {{ACTION}}
|
|
33
|
+
Then {{EXPECTED_OUTCOME}}
|
|
34
|
+
</ac>
|
|
35
|
+
<ac id="AC-2">
|
|
36
|
+
Given {{PRECONDITION}}
|
|
37
|
+
When {{ACTION}}
|
|
38
|
+
Then {{EXPECTED_OUTCOME}}
|
|
39
|
+
</ac>
|
|
40
|
+
</acceptance_criteria>
|
|
41
|
+
|
|
42
|
+
<action>
|
|
43
|
+
<!-- Step-by-step instructions for what to build -->
|
|
44
|
+
1. {{STEP_1}}
|
|
45
|
+
2. {{STEP_2}}
|
|
46
|
+
3. Write tests covering AC-1 and AC-2
|
|
47
|
+
</action>
|
|
48
|
+
|
|
49
|
+
<boundaries>
|
|
50
|
+
<!-- Files that MUST NOT be changed by this task -->
|
|
51
|
+
DO NOT CHANGE:
|
|
52
|
+
- {{FILE_OWNED_BY_OTHER_TASK}} (read-only, owned by T{{nn}})
|
|
53
|
+
- {{LOCKED_FILE}} (no modifications without approval)
|
|
54
|
+
</boundaries>
|
|
55
|
+
|
|
56
|
+
<verify>
|
|
57
|
+
<!-- How to verify acceptance criteria are met -->
|
|
58
|
+
{{VERIFY_COMMAND}} (AC-1, AC-2)
|
|
59
|
+
</verify>
|
|
60
|
+
|
|
61
|
+
<done>
|
|
62
|
+
<!-- Definition of done — what must be true when this task is complete -->
|
|
63
|
+
{{COMPLETION_CRITERIA}}
|
|
64
|
+
</done>
|
|
65
|
+
</task>
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
project: {{PROJECT_NAME}}
|
|
3
|
+
type: {{application|workflow|utility|client|campaign}}
|
|
4
|
+
rigor: {{deep|standard|tight|creative}}
|
|
5
|
+
created: {{ISO_DATE}}
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Vision
|
|
9
|
+
|
|
10
|
+
<!-- One paragraph: what is this project and why does it exist? -->
|
|
11
|
+
{{VISION}}
|
|
12
|
+
|
|
13
|
+
## Users
|
|
14
|
+
|
|
15
|
+
<!-- Who uses this? What are their roles and goals? -->
|
|
16
|
+
{{USERS}}
|
|
17
|
+
|
|
18
|
+
## Requirements
|
|
19
|
+
|
|
20
|
+
### v1 — Must Have
|
|
21
|
+
|
|
22
|
+
<!-- Core features for the first working version -->
|
|
23
|
+
- {{REQUIREMENT_1}}
|
|
24
|
+
- {{REQUIREMENT_2}}
|
|
25
|
+
- {{REQUIREMENT_3}}
|
|
26
|
+
|
|
27
|
+
### v2 — Nice to Have
|
|
28
|
+
|
|
29
|
+
<!-- Features that can wait for a second iteration -->
|
|
30
|
+
- {{REQUIREMENT_4}}
|
|
31
|
+
- {{REQUIREMENT_5}}
|
|
32
|
+
|
|
33
|
+
### Out of Scope
|
|
34
|
+
|
|
35
|
+
<!-- Explicitly excluded — prevents scope creep -->
|
|
36
|
+
- {{EXCLUSION_1}}
|
|
37
|
+
- {{EXCLUSION_2}}
|
|
38
|
+
|
|
39
|
+
## Tech Stack
|
|
40
|
+
|
|
41
|
+
<!-- Chosen technologies and why -->
|
|
42
|
+
| Layer | Choice | Reason |
|
|
43
|
+
|-------|--------|--------|
|
|
44
|
+
| {{LAYER}} | {{TECH}} | {{REASON}} |
|
|
45
|
+
|
|
46
|
+
## Architecture Decisions
|
|
47
|
+
|
|
48
|
+
<!-- Key decisions made during ideation -->
|
|
49
|
+
- {{DECISION_1}}: {{RATIONALE}}
|
|
50
|
+
- {{DECISION_2}}: {{RATIONALE}}
|
|
51
|
+
|
|
52
|
+
## Phase Breakdown
|
|
53
|
+
|
|
54
|
+
<!-- High-level phases before detailed roadmapping -->
|
|
55
|
+
1. **{{PHASE_1_NAME}}** — {{PHASE_1_DESCRIPTION}}
|
|
56
|
+
2. **{{PHASE_2_NAME}}** — {{PHASE_2_DESCRIPTION}}
|
|
57
|
+
3. **{{PHASE_3_NAME}}** — {{PHASE_3_DESCRIPTION}}
|
|
58
|
+
|
|
59
|
+
## Open Questions
|
|
60
|
+
|
|
61
|
+
<!-- Anything unresolved that needs to be decided during DISCUSS phase -->
|
|
62
|
+
- {{QUESTION_1}}
|
|
63
|
+
- {{QUESTION_2}}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
milestone: M001
|
|
3
|
+
current_slice: S01
|
|
4
|
+
current_task: T01
|
|
5
|
+
phase: seed
|
|
6
|
+
loop_position: 0
|
|
7
|
+
unify_required: false
|
|
8
|
+
rigor: standard
|
|
9
|
+
project_type: application
|
|
10
|
+
auto_mode: false
|
|
11
|
+
last_updated: {{ISO_DATE}}
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Progress
|
|
15
|
+
|
|
16
|
+
| Slice | Status | AC Passed | Unified |
|
|
17
|
+
|-------|--------|-----------|---------|
|
|
18
|
+
| S01 | pending | 0/0 | no |
|
|
19
|
+
|
|
20
|
+
## Acceptance Criteria Tracking
|
|
21
|
+
|
|
22
|
+
<!-- Updated by /gsd-cc-apply after each task -->
|
|
23
|
+
|
|
24
|
+
| AC | Slice | Task | Status | Evidence |
|
|
25
|
+
|-------|-------|------|---------|----------|
|
|
26
|
+
|
|
27
|
+
## Boundaries Active
|
|
28
|
+
|
|
29
|
+
<!-- Copied from current slice plan, enforced by /gsd-cc-apply -->
|
|
30
|
+
|
|
31
|
+
## Decisions This Slice
|
|
32
|
+
|
|
33
|
+
<!-- Appended by /gsd-cc-discuss and during execution -->
|
|
34
|
+
|
|
35
|
+
## Deferred
|
|
36
|
+
|
|
37
|
+
<!-- Issues pushed to later slices -->
|
|
38
|
+
|
|
39
|
+
## Blocked
|
|
40
|
+
|
|
41
|
+
<!-- Tasks that cannot proceed — reason and dependency -->
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
slice: {{SLICE_ID}}
|
|
3
|
+
date: {{ISO_DATE}}
|
|
4
|
+
status: {{complete|partial|failed}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Plan vs. Actual
|
|
8
|
+
|
|
9
|
+
| Task | Planned | Actual | Status |
|
|
10
|
+
|------|---------|--------|--------|
|
|
11
|
+
| T01 | {{PLANNED_DESCRIPTION}} | {{ACTUAL_DESCRIPTION}} | {{STATUS_EMOJI}} as planned / expanded / partial / skipped |
|
|
12
|
+
| T02 | {{PLANNED_DESCRIPTION}} | {{ACTUAL_DESCRIPTION}} | {{STATUS_EMOJI}} |
|
|
13
|
+
|
|
14
|
+
## Acceptance Criteria
|
|
15
|
+
|
|
16
|
+
| AC | Status | Evidence |
|
|
17
|
+
|------|--------|----------|
|
|
18
|
+
| AC-1 | {{PASS/PARTIAL/FAIL}} | {{TEST_OUTPUT_OR_EVIDENCE}} |
|
|
19
|
+
| AC-2 | {{PASS/PARTIAL/FAIL}} | {{TEST_OUTPUT_OR_EVIDENCE}} |
|
|
20
|
+
|
|
21
|
+
## Decisions Made
|
|
22
|
+
|
|
23
|
+
<!-- Decisions made during execution that were not in the original plan -->
|
|
24
|
+
- {{DECISION_1}} (reason: {{WHY}})
|
|
25
|
+
- {{DECISION_2}} (reason: {{WHY}})
|
|
26
|
+
|
|
27
|
+
## Boundary Violations
|
|
28
|
+
|
|
29
|
+
<!-- Did any task modify files listed in another task's DO NOT CHANGE? -->
|
|
30
|
+
<!-- "None." if all boundaries were respected -->
|
|
31
|
+
{{NONE_OR_LIST}}
|
|
32
|
+
|
|
33
|
+
## Deferred
|
|
34
|
+
|
|
35
|
+
<!-- Issues discovered during execution, pushed to future slices -->
|
|
36
|
+
- [ ] {{ISSUE_1}} → {{TARGET_SLICE}}
|
|
37
|
+
- [ ] {{ISSUE_2}} → later
|
|
38
|
+
|
|
39
|
+
## Reassessment
|
|
40
|
+
|
|
41
|
+
<!-- Does the rest of the roadmap still make sense given what was learned? -->
|
|
42
|
+
<!-- One of: "Roadmap still valid." / "Roadmap needs update: {{REASON}}" -->
|
|
43
|
+
{{REASSESSMENT_VERDICT}}
|
|
File without changes
|