@pmelab/gtd 6.6.0 → 6.8.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 +41 -32
- package/dist/gtd.bundle.mjs +106 -71
- package/docs/cli.md +27 -24
- package/docs/configuration.md +68 -59
- package/docs/design/state-file-association.md +3 -3
- package/docs/design/state-machine-validation.md +2 -2
- package/docs/design/steering-file-loops.md +1 -1
- package/docs/design/work-packages.md +6 -7
- package/docs/development.md +5 -7
- package/docs/upgrading.md +33 -33
- package/package.json +1 -1
- package/docs/examples/advanced-workflow.md +0 -481
package/README.md
CHANGED
|
@@ -30,8 +30,9 @@ No chat scrollback. No lost sessions. No infinite fix loops. Just git.
|
|
|
30
30
|
- **Bounded, not runaway.** Fix attempts are capped (`retry` on a state). When
|
|
31
31
|
the cap is hit, gtd redirects to a human gate instead of burning tokens
|
|
32
32
|
rewriting the same test for the 47th time.
|
|
33
|
-
- **Your call on history.** Every intermediate `gtd(actor):
|
|
34
|
-
real, attributed commit —
|
|
33
|
+
- **Your call on history.** Every intermediate `gtd(actor): from → to` commit is
|
|
34
|
+
a real, attributed commit — the subject names both the state the work was done
|
|
35
|
+
in and where it advanced to, nothing hidden in chat. Squash them into one
|
|
35
36
|
conventional commit if you want that (an interactive rebase, an amend, a PR's
|
|
36
37
|
squash-merge, or a custom workflow with a `commit:` finale), or don't — gtd
|
|
37
38
|
makes no assumption.
|
|
@@ -48,22 +49,22 @@ Or run without installing:
|
|
|
48
49
|
npx @pmelab/gtd
|
|
49
50
|
```
|
|
50
51
|
|
|
51
|
-
Then scaffold
|
|
52
|
+
Then scaffold the workflow for the repo — run once:
|
|
52
53
|
|
|
53
54
|
```bash
|
|
54
|
-
gtd init
|
|
55
|
+
gtd init
|
|
55
56
|
```
|
|
56
57
|
|
|
57
|
-
This writes a `.gtdrc.json` for the
|
|
58
|
-
prompt saved as an editable Markdown file under `gtd-prompts/` and
|
|
59
|
-
from the config (review and commit both). Edit a prompt by editing
|
|
60
|
-
`gtd-prompts/*.md` file — no config edit needed. It also seeds a top-level
|
|
58
|
+
This writes a `.gtdrc.json` for the bundled unified workflow, with each agent
|
|
59
|
+
state's prompt saved as an editable Markdown file under `gtd-prompts/` and
|
|
60
|
+
referenced from the config (review and commit both). Edit a prompt by editing
|
|
61
|
+
its `gtd-prompts/*.md` file — no config edit needed. It also seeds a top-level
|
|
61
62
|
`modes:` block suggesting **Prettier** as the steering-file formatter
|
|
62
63
|
(`npx prettier --write` for the built-in `qa`/`review` modes — format only, so
|
|
63
64
|
gtd still validates); edit or drop it freely (swap in dprint, a script, or
|
|
64
|
-
delete the key). gtd ships **no** default
|
|
65
|
-
`gtd init` fails, pointing you back here.
|
|
66
|
-
[Configuration](docs/configuration.md#gtd-init) for the
|
|
65
|
+
delete the key). `gtd init` takes no argument. gtd ships **no** default
|
|
66
|
+
workflow: a state command run before `gtd init` fails, pointing you back here.
|
|
67
|
+
See [Configuration](docs/configuration.md#gtd-init) for the template.
|
|
67
68
|
|
|
68
69
|
## How it works
|
|
69
70
|
|
|
@@ -94,27 +95,35 @@ never executes anything — the driver owns running scripts. See
|
|
|
94
95
|
[STATES.md](STATES.md) for the model and [Driving the loop](docs/loop.md) for
|
|
95
96
|
the full protocol.
|
|
96
97
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
98
|
+
The unified workflow has **two entry points into one shared tail**, chosen by
|
|
99
|
+
which steering file you create:
|
|
100
|
+
|
|
101
|
+
- Create **`.gtd/TODO.md`** with a short sketch to start the **simple** flow: an
|
|
102
|
+
agent develops your sketch into a plan — asking any open question it can't
|
|
103
|
+
settle itself via a deterministic `.gtd/TODO.md` format, validated before it
|
|
104
|
+
ever reaches you — you answer inline, then it builds the plan in one turn and
|
|
105
|
+
runs your tests (looping on failures).
|
|
106
|
+
- Create **`.gtd/REQUIREMENTS.md`** to start the **advanced** flow: two-phase
|
|
107
|
+
product then technical Q&A (`.gtd/REQUIREMENTS.md` → `.gtd/ARCHITECTURE.md`),
|
|
108
|
+
decomposition into work **packages** (each a set of independent tasks a single
|
|
109
|
+
build turn fans out to parallel subagents), a per-package test loop, and a
|
|
110
|
+
per-package **agentic review** that verifies the package against its spec.
|
|
111
|
+
|
|
112
|
+
Both flows converge on the same tail: an agent hands you a `.gtd/REVIEW.md`
|
|
113
|
+
checkbox review of the diff — tick a box to sign off an item, edit/untick for
|
|
114
|
+
feedback (which sends only the unaddressed items back to build and re-review
|
|
115
|
+
just those changes), and a full sign-off collapses the whole cycle into one
|
|
116
|
+
commit (a **squash finale** whose message an agent drafts). The same review tail
|
|
117
|
+
also has a direct entry point — `gtd review <commitish>` starts a brand new
|
|
118
|
+
process reviewing `<commitish>..HEAD` with no cycle of its own, e.g. a
|
|
119
|
+
colleague's PR branch. See
|
|
120
|
+
[STATES.md](STATES.md#10-the-bundled-workflow-template) for the full shape. The
|
|
121
|
+
workflow is just `.gtdrc` config — edit it or write your own (see
|
|
122
|
+
[Configuration](docs/configuration.md)). Every agent state routes its model
|
|
123
|
+
through two `vars` tiers — `plannerModel` (heavier planning and review) and
|
|
124
|
+
`coderModel` (the coding turns) — so you can repoint the models globally in one
|
|
125
|
+
place (a `vars:` edit or a `GTD_VAR_plannerModel` override) instead of per
|
|
126
|
+
state.
|
|
118
127
|
|
|
119
128
|
`gtd-loop`, installed alongside `gtd`, is a ready-to-run driver for the whole
|
|
120
129
|
protocol — point it at a repo and it runs the loop until it's your turn. It is
|