@pmelab/gtd 15.6.0 → 15.7.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 +37 -8
- package/dist/gtd.bundle.mjs +849 -212
- package/package.json +1 -1
- package/src/flows/helpers.ts +46 -0
- package/src/flows/runtime.ts +30 -0
- package/src/flows/scripts.test.ts +16 -0
- package/src/flows/scripts.ts +2 -1
- package/src/workflows/planning.ts +17 -11
- package/src/workflows/prose.ts +33 -7
- package/src/workflows/review.ts +103 -28
- package/src/workflows/text.fixture.ts +6 -1
- package/src/workflows/text.test.ts +68 -0
- package/src/workflows/text.ts +84 -38
- package/src/workflows/threads.test.ts +129 -0
- package/src/workflows/unified.ts +3 -2
package/README.md
CHANGED
|
@@ -221,6 +221,17 @@ and around 1 MB on macOS:
|
|
|
221
221
|
gtd next | claude -p --dangerously-skip-permissions
|
|
222
222
|
```
|
|
223
223
|
|
|
224
|
+
**The turn ends when `claude -p` returns** — a command the agent backgrounds
|
|
225
|
+
dies unread, and the process stalls on an empty turn. Claude Code lets the agent
|
|
226
|
+
background commands and caps foreground ones at 10 minutes by default, so a real
|
|
227
|
+
driver exports these first (`gtd install`'s reference driver does):
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
export CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1
|
|
231
|
+
export BASH_DEFAULT_TIMEOUT_MS=1800000 # 30 min
|
|
232
|
+
export BASH_MAX_TIMEOUT_MS=7200000 # 2 h
|
|
233
|
+
```
|
|
234
|
+
|
|
224
235
|
Reading a value twice is free: **`gtd next` never mutates**, so a peek and a
|
|
225
236
|
dispatch are the same call.
|
|
226
237
|
|
|
@@ -290,7 +301,15 @@ in the new, empty definition ready to type, and jumps between a footnote's
|
|
|
290
301
|
marker and its definition both ways — so leaving a comment for the next agent
|
|
291
302
|
turn never means hand-typing the `[^name]` syntax yourself. In a review file, a
|
|
292
303
|
`./path#42-70` hunk pointer is also a clickable link straight to that file and
|
|
293
|
-
range, no go-to-definition required.
|
|
304
|
+
range, no go-to-definition required. A footnote can also hold a `H:`/`A:`
|
|
305
|
+
conversation (a thread — see [configuration](docs/configuration.md)); the editor
|
|
306
|
+
outlines threads, flags the open ones, and a `gtd: reply` code action adds your
|
|
307
|
+
empty `- H:` entry and puts the cursor there;
|
|
308
|
+
`gtd check <mode> <file> --open-threads` lists the ones still waiting on you,
|
|
309
|
+
and a review question gets its answer at the review gate again, not a lap. The
|
|
310
|
+
same conversation works as bare `// H: …` / `// A: …` line comments (`#`, `--`,
|
|
311
|
+
`;` by language) in files the process changed; `gtd check --open-threads` alone
|
|
312
|
+
lists the open ones (editor-only — the phone UI does not show them).
|
|
294
313
|
|
|
295
314
|
### The workflow it ships with
|
|
296
315
|
|
|
@@ -300,12 +319,17 @@ noted in steps 2, 3, and 4 below.
|
|
|
300
319
|
|
|
301
320
|
1. **You sketch.** Change anything, or write the idea into `.gtd/TODO.md`. Rough
|
|
302
321
|
is fine; it is treated as a sketch, not as work.
|
|
303
|
-
2. **You answer questions
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
322
|
+
2. **You answer questions and discuss.** Planning works out what the thing
|
|
323
|
+
should do first, then how it should be built, and hands you a file at either
|
|
324
|
+
point — every process stops there, even with no open question. Answer open
|
|
325
|
+
questions in your editor, in the file, and start the loop again; a round that
|
|
326
|
+
only leaves notes needs no tick. Start a footnote with `- H: <question>` to
|
|
327
|
+
ask something: the agent replies with `- A: <reply>` and the process stops at
|
|
328
|
+
the same gate again. Close a thread by replying with a conclusion or deleting
|
|
329
|
+
it. While a thread's last entry is the agent's, moving on is refused. Leave
|
|
330
|
+
the file untouched and start the loop to accept the plan as-is, unanswered
|
|
331
|
+
questions and all. One point along this phase is judged rather than always
|
|
332
|
+
asking you outright:
|
|
309
333
|
- Before the how-it-should-be-built pass starts: does this plan actually need
|
|
310
334
|
one? A confident no skips it — and the review it would have raised — going
|
|
311
335
|
straight from your answers to a single built package, with no technical
|
|
@@ -373,7 +397,12 @@ an idle worktree — nothing pending yet — opening `.gtd/TODO.md` free-form wi
|
|
|
373
397
|
bare textfield so you can sketch from your phone; the sketch stays un-triaged on
|
|
374
398
|
disk until you run `gtd` again, from anywhere, to pick it up. A description
|
|
375
399
|
renders inline markdown — bold, code, strikethrough, links, and images — instead
|
|
376
|
-
of literal asterisks and backticks.
|
|
400
|
+
of literal asterisks and backticks. A note you add from the phone starts a
|
|
401
|
+
thread: a footnote holding a `H:`/`A:` conversation. Threads show as a
|
|
402
|
+
conversation under their block, question, chunk, or hunk, and one the agent
|
|
403
|
+
answered last carries a "waiting on you" badge. Tap it to reply — your reply is
|
|
404
|
+
added as a new `H:` entry; while the agent has yet to answer, reopening it edits
|
|
405
|
+
your last entry instead. See
|
|
377
406
|
[Configuration](https://github.com/pmelab/gtd/blob/main/docs/configuration.md)
|
|
378
407
|
for its `ui:` settings.
|
|
379
408
|
|