@howlil/ez-agents 2.0.0 → 3.0.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/LICENSE +21 -21
- package/README.md +157 -110
- package/README.zh-CN.md +84 -84
- package/agents/ez-plan-checker.md +2 -2
- package/agents/ez-research-synthesizer.md +1 -1
- package/agents/ez-ui-auditor.md +0 -2
- package/agents/ez-ui-checker.md +2 -4
- package/agents/ez-ui-researcher.md +0 -2
- package/agents/ez-verifier.md +1 -1
- package/bin/install.js +211 -211
- package/commands/ez/debug.md +1 -1
- package/commands/ez/map-codebase.md +1 -1
- package/commands/ez/reapply-patches.md +3 -3
- package/commands/ez/research-phase.md +1 -1
- package/{get-shit-done → ez-agents}/bin/ez-tools.cjs +1 -1
- package/{get-shit-done → ez-agents}/bin/lib/assistant-adapter.cjs +205 -205
- package/{get-shit-done → ez-agents}/bin/lib/audit-exec.cjs +150 -150
- package/{get-shit-done → ez-agents}/bin/lib/auth.cjs +175 -175
- package/{get-shit-done → ez-agents}/bin/lib/circuit-breaker.cjs +118 -118
- package/{get-shit-done → ez-agents}/bin/lib/commands.cjs +666 -666
- package/{get-shit-done → ez-agents}/bin/lib/config.cjs +183 -183
- package/{get-shit-done → ez-agents}/bin/lib/core.cjs +495 -495
- package/{get-shit-done → ez-agents}/bin/lib/file-lock.cjs +236 -236
- package/{get-shit-done → ez-agents}/bin/lib/frontmatter.cjs +299 -299
- package/{get-shit-done → ez-agents}/bin/lib/fs-utils.cjs +153 -153
- package/{get-shit-done → ez-agents}/bin/lib/git-utils.cjs +203 -203
- package/{get-shit-done → ez-agents}/bin/lib/health-check.cjs +163 -163
- package/{get-shit-done → ez-agents}/bin/lib/index.cjs +113 -113
- package/{get-shit-done → ez-agents}/bin/lib/init.cjs +710 -710
- package/{get-shit-done → ez-agents}/bin/lib/logger.cjs +117 -117
- package/{get-shit-done → ez-agents}/bin/lib/milestone.cjs +241 -241
- package/{get-shit-done → ez-agents}/bin/lib/model-provider.cjs +146 -146
- package/{get-shit-done → ez-agents}/bin/lib/phase.cjs +908 -908
- package/{get-shit-done → ez-agents}/bin/lib/retry.cjs +119 -119
- package/{get-shit-done → ez-agents}/bin/lib/roadmap.cjs +305 -305
- package/{get-shit-done → ez-agents}/bin/lib/safe-exec.cjs +128 -128
- package/{get-shit-done → ez-agents}/bin/lib/safe-path.cjs +130 -130
- package/{get-shit-done → ez-agents}/bin/lib/state.cjs +721 -721
- package/{get-shit-done → ez-agents}/bin/lib/temp-file.cjs +239 -239
- package/{get-shit-done → ez-agents}/bin/lib/template.cjs +222 -222
- package/{get-shit-done → ez-agents}/bin/lib/test-file-lock.cjs +112 -112
- package/{get-shit-done → ez-agents}/bin/lib/test-graceful.cjs +93 -93
- package/{get-shit-done → ez-agents}/bin/lib/test-logger.cjs +60 -60
- package/{get-shit-done → ez-agents}/bin/lib/test-safe-exec.cjs +38 -38
- package/{get-shit-done → ez-agents}/bin/lib/test-safe-path.cjs +33 -33
- package/{get-shit-done → ez-agents}/bin/lib/test-temp-file.cjs +125 -125
- package/{get-shit-done → ez-agents}/bin/lib/timeout-exec.cjs +62 -62
- package/{get-shit-done → ez-agents}/bin/lib/verify.cjs +820 -820
- package/{get-shit-done → ez-agents}/references/checkpoints.md +776 -776
- package/{get-shit-done → ez-agents}/references/questioning.md +162 -162
- package/{get-shit-done → ez-agents}/references/tdd.md +263 -263
- package/{get-shit-done → ez-agents}/templates/codebase/concerns.md +310 -310
- package/{get-shit-done → ez-agents}/templates/codebase/conventions.md +307 -307
- package/{get-shit-done → ez-agents}/templates/codebase/integrations.md +280 -280
- package/{get-shit-done → ez-agents}/templates/codebase/stack.md +186 -186
- package/{get-shit-done → ez-agents}/templates/codebase/testing.md +480 -480
- package/{get-shit-done → ez-agents}/templates/config.json +37 -37
- package/{get-shit-done → ez-agents}/templates/continue-here.md +78 -78
- package/{get-shit-done → ez-agents}/templates/milestone-archive.md +123 -123
- package/{get-shit-done → ez-agents}/templates/milestone.md +115 -115
- package/{get-shit-done → ez-agents}/templates/requirements.md +231 -231
- package/{get-shit-done → ez-agents}/templates/research-project/ARCHITECTURE.md +204 -204
- package/{get-shit-done → ez-agents}/templates/research-project/FEATURES.md +147 -147
- package/{get-shit-done → ez-agents}/templates/research-project/PITFALLS.md +200 -200
- package/{get-shit-done → ez-agents}/templates/research-project/STACK.md +120 -120
- package/{get-shit-done → ez-agents}/templates/research-project/SUMMARY.md +170 -170
- package/{get-shit-done → ez-agents}/templates/retrospective.md +54 -54
- package/{get-shit-done → ez-agents}/templates/roadmap.md +202 -202
- package/{get-shit-done → ez-agents}/templates/summary-minimal.md +41 -41
- package/{get-shit-done → ez-agents}/templates/summary-standard.md +48 -48
- package/{get-shit-done → ez-agents}/templates/summary.md +248 -248
- package/{get-shit-done → ez-agents}/templates/user-setup.md +311 -311
- package/{get-shit-done → ez-agents}/templates/verification-report.md +322 -322
- package/{get-shit-done → ez-agents}/workflows/add-phase.md +112 -112
- package/{get-shit-done → ez-agents}/workflows/add-tests.md +351 -351
- package/{get-shit-done → ez-agents}/workflows/add-todo.md +158 -158
- package/{get-shit-done → ez-agents}/workflows/audit-milestone.md +332 -332
- package/{get-shit-done → ez-agents}/workflows/autonomous.md +743 -743
- package/{get-shit-done → ez-agents}/workflows/check-todos.md +177 -177
- package/{get-shit-done → ez-agents}/workflows/cleanup.md +152 -152
- package/{get-shit-done → ez-agents}/workflows/complete-milestone.md +766 -766
- package/ez-agents/workflows/debug.md +0 -0
- package/{get-shit-done → ez-agents}/workflows/diagnose-issues.md +219 -219
- package/{get-shit-done → ez-agents}/workflows/discovery-phase.md +289 -289
- package/{get-shit-done → ez-agents}/workflows/discuss-phase.md +762 -762
- package/{get-shit-done → ez-agents}/workflows/execute-phase.md +468 -468
- package/{get-shit-done → ez-agents}/workflows/execute-plan.md +483 -483
- package/{get-shit-done → ez-agents}/workflows/health.md +159 -159
- package/{get-shit-done → ez-agents}/workflows/help.md +492 -492
- package/{get-shit-done → ez-agents}/workflows/insert-phase.md +130 -130
- package/{get-shit-done → ez-agents}/workflows/list-phase-assumptions.md +178 -178
- package/{get-shit-done → ez-agents}/workflows/map-codebase.md +316 -316
- package/{get-shit-done → ez-agents}/workflows/new-milestone.md +384 -384
- package/{get-shit-done → ez-agents}/workflows/new-project.md +1111 -1111
- package/{get-shit-done → ez-agents}/workflows/node-repair.md +92 -92
- package/{get-shit-done → ez-agents}/workflows/pause-work.md +122 -122
- package/{get-shit-done → ez-agents}/workflows/plan-milestone-gaps.md +274 -274
- package/{get-shit-done → ez-agents}/workflows/plan-phase.md +651 -651
- package/{get-shit-done → ez-agents}/workflows/progress.md +382 -382
- package/{get-shit-done → ez-agents}/workflows/quick.md +610 -610
- package/{get-shit-done → ez-agents}/workflows/remove-phase.md +155 -155
- package/{get-shit-done → ez-agents}/workflows/research-phase.md +74 -74
- package/{get-shit-done → ez-agents}/workflows/resume-project.md +307 -307
- package/{get-shit-done → ez-agents}/workflows/set-profile.md +81 -81
- package/{get-shit-done → ez-agents}/workflows/settings.md +242 -242
- package/{get-shit-done → ez-agents}/workflows/stats.md +57 -57
- package/{get-shit-done → ez-agents}/workflows/transition.md +544 -544
- package/{get-shit-done → ez-agents}/workflows/ui-phase.md +290 -290
- package/{get-shit-done → ez-agents}/workflows/ui-review.md +157 -157
- package/{get-shit-done → ez-agents}/workflows/update.md +320 -320
- package/{get-shit-done → ez-agents}/workflows/validate-phase.md +167 -167
- package/{get-shit-done → ez-agents}/workflows/verify-phase.md +243 -243
- package/{get-shit-done → ez-agents}/workflows/verify-work.md +5 -5
- package/hooks/dist/ez-check-update.js +81 -0
- package/hooks/dist/ez-context-monitor.js +141 -0
- package/hooks/dist/ez-statusline.js +115 -0
- package/package.json +13 -3
- package/scripts/build-hooks.js +43 -43
- package/scripts/run-tests.cjs +29 -29
- /package/{get-shit-done → ez-agents}/references/continuation-format.md +0 -0
- /package/{get-shit-done → ez-agents}/references/decimal-phase-calculation.md +0 -0
- /package/{get-shit-done → ez-agents}/references/git-integration.md +0 -0
- /package/{get-shit-done → ez-agents}/references/git-planning-commit.md +0 -0
- /package/{get-shit-done → ez-agents}/references/model-profile-resolution.md +0 -0
- /package/{get-shit-done → ez-agents}/references/model-profiles.md +0 -0
- /package/{get-shit-done → ez-agents}/references/phase-argument-parsing.md +0 -0
- /package/{get-shit-done → ez-agents}/references/planning-config.md +0 -0
- /package/{get-shit-done → ez-agents}/references/ui-brand.md +0 -0
- /package/{get-shit-done → ez-agents}/references/verification-patterns.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/DEBUG.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/UAT.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/UI-SPEC.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/VALIDATION.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/architecture.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/codebase/structure.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/context.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/copilot-instructions.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/debug-subagent-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/discovery.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/phase-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/planner-subagent-prompt.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/project.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/research.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/state.md +0 -0
- /package/{get-shit-done → ez-agents}/templates/summary-complex.md +0 -0
|
@@ -1,158 +1,158 @@
|
|
|
1
|
-
<purpose>
|
|
2
|
-
Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
|
|
3
|
-
</purpose>
|
|
4
|
-
|
|
5
|
-
<required_reading>
|
|
6
|
-
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
-
</required_reading>
|
|
8
|
-
|
|
9
|
-
<process>
|
|
10
|
-
|
|
11
|
-
<step name="init_context">
|
|
12
|
-
Load todo context:
|
|
13
|
-
|
|
14
|
-
```bash
|
|
15
|
-
INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init todos)
|
|
16
|
-
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
|
|
20
|
-
|
|
21
|
-
Ensure directories exist:
|
|
22
|
-
```bash
|
|
23
|
-
mkdir -p .planning/todos/pending .planning/todos/done
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
Note existing areas from the todos array for consistency in infer_area step.
|
|
27
|
-
</step>
|
|
28
|
-
|
|
29
|
-
<step name="extract_content">
|
|
30
|
-
**With arguments:** Use as the title/focus.
|
|
31
|
-
- `/ez:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
32
|
-
|
|
33
|
-
**Without arguments:** Analyze recent conversation to extract:
|
|
34
|
-
- The specific problem, idea, or task discussed
|
|
35
|
-
- Relevant file paths mentioned
|
|
36
|
-
- Technical details (error messages, line numbers, constraints)
|
|
37
|
-
|
|
38
|
-
Formulate:
|
|
39
|
-
- `title`: 3-10 word descriptive title (action verb preferred)
|
|
40
|
-
- `problem`: What's wrong or why this is needed
|
|
41
|
-
- `solution`: Approach hints or "TBD" if just an idea
|
|
42
|
-
- `files`: Relevant paths with line numbers from conversation
|
|
43
|
-
</step>
|
|
44
|
-
|
|
45
|
-
<step name="infer_area">
|
|
46
|
-
Infer area from file paths:
|
|
47
|
-
|
|
48
|
-
| Path pattern | Area |
|
|
49
|
-
|--------------|------|
|
|
50
|
-
| `src/api/*`, `api/*` | `api` |
|
|
51
|
-
| `src/components/*`, `src/ui/*` | `ui` |
|
|
52
|
-
| `src/auth/*`, `auth/*` | `auth` |
|
|
53
|
-
| `src/db/*`, `database/*` | `database` |
|
|
54
|
-
| `tests/*`, `__tests__/*` | `testing` |
|
|
55
|
-
| `docs/*` | `docs` |
|
|
56
|
-
| `.planning/*` | `planning` |
|
|
57
|
-
| `scripts/*`, `bin/*` | `tooling` |
|
|
58
|
-
| No files or unclear | `general` |
|
|
59
|
-
|
|
60
|
-
Use existing area from step 2 if similar match exists.
|
|
61
|
-
</step>
|
|
62
|
-
|
|
63
|
-
<step name="check_duplicates">
|
|
64
|
-
```bash
|
|
65
|
-
# Search for key words from title in existing todos
|
|
66
|
-
grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
If potential duplicate found:
|
|
70
|
-
1. Read the existing todo
|
|
71
|
-
2. Compare scope
|
|
72
|
-
|
|
73
|
-
If overlapping, use AskUserQuestion:
|
|
74
|
-
- header: "Duplicate?"
|
|
75
|
-
- question: "Similar todo exists: [title]. What would you like to do?"
|
|
76
|
-
- options:
|
|
77
|
-
- "Skip" — keep existing todo
|
|
78
|
-
- "Replace" — update existing with new context
|
|
79
|
-
- "Add anyway" — create as separate todo
|
|
80
|
-
</step>
|
|
81
|
-
|
|
82
|
-
<step name="create_file">
|
|
83
|
-
Use values from init context: `timestamp` and `date` are already available.
|
|
84
|
-
|
|
85
|
-
Generate slug for the title:
|
|
86
|
-
```bash
|
|
87
|
-
slug=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" generate-slug "$title" --raw)
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
Write to `.planning/todos/pending/${date}-${slug}.md`:
|
|
91
|
-
|
|
92
|
-
```markdown
|
|
93
|
-
---
|
|
94
|
-
created: [timestamp]
|
|
95
|
-
title: [title]
|
|
96
|
-
area: [area]
|
|
97
|
-
files:
|
|
98
|
-
- [file:lines]
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## Problem
|
|
102
|
-
|
|
103
|
-
[problem description - enough context for future Claude to understand weeks later]
|
|
104
|
-
|
|
105
|
-
## Solution
|
|
106
|
-
|
|
107
|
-
[approach hints or "TBD"]
|
|
108
|
-
```
|
|
109
|
-
</step>
|
|
110
|
-
|
|
111
|
-
<step name="update_state">
|
|
112
|
-
If `.planning/STATE.md` exists:
|
|
113
|
-
|
|
114
|
-
1. Use `todo_count` from init context (or re-run `init todos` if count changed)
|
|
115
|
-
2. Update "### Pending Todos" under "## Accumulated Context"
|
|
116
|
-
</step>
|
|
117
|
-
|
|
118
|
-
<step name="git_commit">
|
|
119
|
-
Commit the todo and any updated state:
|
|
120
|
-
|
|
121
|
-
```bash
|
|
122
|
-
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
Tool respects `commit_docs` config and gitignore automatically.
|
|
126
|
-
|
|
127
|
-
Confirm: "Committed: docs: capture todo - [title]"
|
|
128
|
-
</step>
|
|
129
|
-
|
|
130
|
-
<step name="confirm">
|
|
131
|
-
```
|
|
132
|
-
Todo saved: .planning/todos/pending/[filename]
|
|
133
|
-
|
|
134
|
-
[title]
|
|
135
|
-
Area: [area]
|
|
136
|
-
Files: [count] referenced
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
Would you like to:
|
|
141
|
-
|
|
142
|
-
1. Continue with current work
|
|
143
|
-
2. Add another todo
|
|
144
|
-
3. View all todos (/ez:check-todos)
|
|
145
|
-
```
|
|
146
|
-
</step>
|
|
147
|
-
|
|
148
|
-
</process>
|
|
149
|
-
|
|
150
|
-
<success_criteria>
|
|
151
|
-
- [ ] Directory structure exists
|
|
152
|
-
- [ ] Todo file created with valid frontmatter
|
|
153
|
-
- [ ] Problem section has enough context for future Claude
|
|
154
|
-
- [ ] No duplicates (checked and resolved)
|
|
155
|
-
- [ ] Area consistent with existing todos
|
|
156
|
-
- [ ] STATE.md updated if exists
|
|
157
|
-
- [ ] Todo and state committed to git
|
|
158
|
-
</success_criteria>
|
|
1
|
+
<purpose>
|
|
2
|
+
Capture an idea, task, or issue that surfaces during a GSD session as a structured todo for later work. Enables "thought → capture → continue" flow without losing context.
|
|
3
|
+
</purpose>
|
|
4
|
+
|
|
5
|
+
<required_reading>
|
|
6
|
+
Read all files referenced by the invoking prompt's execution_context before starting.
|
|
7
|
+
</required_reading>
|
|
8
|
+
|
|
9
|
+
<process>
|
|
10
|
+
|
|
11
|
+
<step name="init_context">
|
|
12
|
+
Load todo context:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
INIT=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" init todos)
|
|
16
|
+
if [[ "$INIT" == @file:* ]]; then INIT=$(cat "${INIT#@file:}"); fi
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Extract from init JSON: `commit_docs`, `date`, `timestamp`, `todo_count`, `todos`, `pending_dir`, `todos_dir_exists`.
|
|
20
|
+
|
|
21
|
+
Ensure directories exist:
|
|
22
|
+
```bash
|
|
23
|
+
mkdir -p .planning/todos/pending .planning/todos/done
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Note existing areas from the todos array for consistency in infer_area step.
|
|
27
|
+
</step>
|
|
28
|
+
|
|
29
|
+
<step name="extract_content">
|
|
30
|
+
**With arguments:** Use as the title/focus.
|
|
31
|
+
- `/ez:add-todo Add auth token refresh` → title = "Add auth token refresh"
|
|
32
|
+
|
|
33
|
+
**Without arguments:** Analyze recent conversation to extract:
|
|
34
|
+
- The specific problem, idea, or task discussed
|
|
35
|
+
- Relevant file paths mentioned
|
|
36
|
+
- Technical details (error messages, line numbers, constraints)
|
|
37
|
+
|
|
38
|
+
Formulate:
|
|
39
|
+
- `title`: 3-10 word descriptive title (action verb preferred)
|
|
40
|
+
- `problem`: What's wrong or why this is needed
|
|
41
|
+
- `solution`: Approach hints or "TBD" if just an idea
|
|
42
|
+
- `files`: Relevant paths with line numbers from conversation
|
|
43
|
+
</step>
|
|
44
|
+
|
|
45
|
+
<step name="infer_area">
|
|
46
|
+
Infer area from file paths:
|
|
47
|
+
|
|
48
|
+
| Path pattern | Area |
|
|
49
|
+
|--------------|------|
|
|
50
|
+
| `src/api/*`, `api/*` | `api` |
|
|
51
|
+
| `src/components/*`, `src/ui/*` | `ui` |
|
|
52
|
+
| `src/auth/*`, `auth/*` | `auth` |
|
|
53
|
+
| `src/db/*`, `database/*` | `database` |
|
|
54
|
+
| `tests/*`, `__tests__/*` | `testing` |
|
|
55
|
+
| `docs/*` | `docs` |
|
|
56
|
+
| `.planning/*` | `planning` |
|
|
57
|
+
| `scripts/*`, `bin/*` | `tooling` |
|
|
58
|
+
| No files or unclear | `general` |
|
|
59
|
+
|
|
60
|
+
Use existing area from step 2 if similar match exists.
|
|
61
|
+
</step>
|
|
62
|
+
|
|
63
|
+
<step name="check_duplicates">
|
|
64
|
+
```bash
|
|
65
|
+
# Search for key words from title in existing todos
|
|
66
|
+
grep -l -i "[key words from title]" .planning/todos/pending/*.md 2>/dev/null
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
If potential duplicate found:
|
|
70
|
+
1. Read the existing todo
|
|
71
|
+
2. Compare scope
|
|
72
|
+
|
|
73
|
+
If overlapping, use AskUserQuestion:
|
|
74
|
+
- header: "Duplicate?"
|
|
75
|
+
- question: "Similar todo exists: [title]. What would you like to do?"
|
|
76
|
+
- options:
|
|
77
|
+
- "Skip" — keep existing todo
|
|
78
|
+
- "Replace" — update existing with new context
|
|
79
|
+
- "Add anyway" — create as separate todo
|
|
80
|
+
</step>
|
|
81
|
+
|
|
82
|
+
<step name="create_file">
|
|
83
|
+
Use values from init context: `timestamp` and `date` are already available.
|
|
84
|
+
|
|
85
|
+
Generate slug for the title:
|
|
86
|
+
```bash
|
|
87
|
+
slug=$(node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" generate-slug "$title" --raw)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Write to `.planning/todos/pending/${date}-${slug}.md`:
|
|
91
|
+
|
|
92
|
+
```markdown
|
|
93
|
+
---
|
|
94
|
+
created: [timestamp]
|
|
95
|
+
title: [title]
|
|
96
|
+
area: [area]
|
|
97
|
+
files:
|
|
98
|
+
- [file:lines]
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Problem
|
|
102
|
+
|
|
103
|
+
[problem description - enough context for future Claude to understand weeks later]
|
|
104
|
+
|
|
105
|
+
## Solution
|
|
106
|
+
|
|
107
|
+
[approach hints or "TBD"]
|
|
108
|
+
```
|
|
109
|
+
</step>
|
|
110
|
+
|
|
111
|
+
<step name="update_state">
|
|
112
|
+
If `.planning/STATE.md` exists:
|
|
113
|
+
|
|
114
|
+
1. Use `todo_count` from init context (or re-run `init todos` if count changed)
|
|
115
|
+
2. Update "### Pending Todos" under "## Accumulated Context"
|
|
116
|
+
</step>
|
|
117
|
+
|
|
118
|
+
<step name="git_commit">
|
|
119
|
+
Commit the todo and any updated state:
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
node "$HOME/.claude/ez-agents/bin/ez-tools.cjs" commit "docs: capture todo - [title]" --files .planning/todos/pending/[filename] .planning/STATE.md
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Tool respects `commit_docs` config and gitignore automatically.
|
|
126
|
+
|
|
127
|
+
Confirm: "Committed: docs: capture todo - [title]"
|
|
128
|
+
</step>
|
|
129
|
+
|
|
130
|
+
<step name="confirm">
|
|
131
|
+
```
|
|
132
|
+
Todo saved: .planning/todos/pending/[filename]
|
|
133
|
+
|
|
134
|
+
[title]
|
|
135
|
+
Area: [area]
|
|
136
|
+
Files: [count] referenced
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
Would you like to:
|
|
141
|
+
|
|
142
|
+
1. Continue with current work
|
|
143
|
+
2. Add another todo
|
|
144
|
+
3. View all todos (/ez:check-todos)
|
|
145
|
+
```
|
|
146
|
+
</step>
|
|
147
|
+
|
|
148
|
+
</process>
|
|
149
|
+
|
|
150
|
+
<success_criteria>
|
|
151
|
+
- [ ] Directory structure exists
|
|
152
|
+
- [ ] Todo file created with valid frontmatter
|
|
153
|
+
- [ ] Problem section has enough context for future Claude
|
|
154
|
+
- [ ] No duplicates (checked and resolved)
|
|
155
|
+
- [ ] Area consistent with existing todos
|
|
156
|
+
- [ ] STATE.md updated if exists
|
|
157
|
+
- [ ] Todo and state committed to git
|
|
158
|
+
</success_criteria>
|