bottega-kit 0.1.0 → 0.1.1

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.
Files changed (3) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +70 -12
  3. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -4,6 +4,24 @@ All notable changes to bottega-kit. Dates are when the version was cut.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.1.1] — 2026-10-23
8
+
9
+ Documentation only; the commands behave as in 0.1.0.
10
+
11
+ **Documentation.** The README says why the roles are separate, what to do
12
+ after `run` (read the worktree, `show`, `list`, the four ways on from a stop,
13
+ `pr` on a stopped task, `rm`), what a task costs, and which starter `init`
14
+ writes for each set of CLIs. `docs/process.md` opens with one task followed
15
+ through every command, including the `task.md` it ends with and a task that
16
+ stops. The README and `docs/configuration.md` no longer say every harness
17
+ must report its model: Codex reports none, and its receipts say
18
+ `requested-only`.
19
+
20
+ **Verification.** `docs/compatibility.md` has a new verified snapshot: one
21
+ live task on 2026-10-23 with Claude Code 2.1.309 and the starter
22
+ configuration, done in round 1, 2.07 USD, then `bottega pr` on GitHub. The
23
+ 0.1.0 snapshot is kept below it, marked as not re-run.
24
+
7
25
  ## [0.1.0] — 2026-10-23
8
26
 
9
27
  The first release. A planner, an implementer, a reviewer and an optional judge
package/README.md CHANGED
@@ -3,7 +3,14 @@
3
3
  bottega-kit runs a planner, an implementer, a reviewer and an optional judge on the
4
4
  coding agents you already have — Claude Code and Codex today — one role each, in a
5
5
  git worktree, with a receipt for every step. You need git, gh, python3 and at least
6
- one of those CLIs. This is not vdaubry/bottega: the process is
6
+ one of those CLIs.
7
+
8
+ Why roles: the agent that reviews the code is not the one that wrote it, and
9
+ it can run on another model or another vendor. You read and approve the plan
10
+ once; after that nothing asks you anything until the task is done or stops,
11
+ and every step is on disk for you to read.
12
+
13
+ This is not vdaubry/bottega: the process is
7
14
  [theirs](https://github.com/vdaubry/bottega); the local, file-based, multi-vendor
8
15
  loop is this project.
9
16
 
@@ -24,14 +31,16 @@ you change it. Each role runs under a profile from your configuration: a
24
31
  harness, which is the CLI that runs the role (`claude` or `codex`), a model
25
32
  and an effort. One profile may serve several roles.
26
33
 
27
- ## Current release: 0.1.0
34
+ ## Current release: 0.1.1
28
35
 
29
- The first release: `init`, `doctor`, `new`, `plan`, `approve`, `run`, `resume`,
30
- `pr` and the task commands, on the `claude` and `codex` harnesses. The loop
31
- was verified live on 2026-10-17, 2026-10-19 and 2026-10-20 with Claude Code
32
- 2.1.302 to 2.1.304 and Codex CLI 0.163.0, each in every role, a reviewer on
33
- Z.AI's endpoint through Claude Code, and `bottega pr` opening a pull request
34
- on GitHub. See [docs/compatibility.md](docs/compatibility.md).
36
+ Documentation: what to do after `run`, a task followed end to end, what a
37
+ task costs. The commands are those of 0.1.0: `init`, `doctor`, `new`,
38
+ `plan`, `approve`, `run`, `resume`, `pr` and the task commands, on the
39
+ `claude` and `codex` harnesses. 0.1.1 was verified live on 2026-10-23 with
40
+ Claude Code 2.1.309 and the starter configuration, through `bottega pr` on
41
+ GitHub; 0.1.0 was verified with Claude Code 2.1.302 to 2.1.304 and Codex CLI
42
+ 0.163.0, each in every role, and a reviewer on Z.AI's endpoint. See
43
+ [docs/compatibility.md](docs/compatibility.md).
35
44
 
36
45
  ## What you need
37
46
 
@@ -63,8 +72,8 @@ your tasks and configuration.
63
72
 
64
73
  ## Example: Fable plans and judges, Opus implements and reviews
65
74
 
66
- `~/.config/bottega-kit/config.json`, which `bottega init` writes when it finds
67
- `claude`:
75
+ `~/.config/bottega-kit/config.json`, which `bottega init` writes when `claude`
76
+ is on PATH:
68
77
 
69
78
  ```json
70
79
  {
@@ -80,6 +89,12 @@ your tasks and configuration.
80
89
  }
81
90
  ```
82
91
 
92
+ With `codex` on PATH as well, `init` also writes a `sol-builder` profile
93
+ (`codex`, `gpt-5.6-sol`, effort `high`) and binds it to no role. With `codex`
94
+ alone, `sol-builder` is the planner, the implementer and the reviewer, and
95
+ there is no judge. Edit the file to bind the roles as you like; `bottega
96
+ doctor` checks it.
97
+
83
98
  The whole sequence, from a repository with an `origin` on GitHub:
84
99
 
85
100
  ```sh
@@ -92,6 +107,7 @@ bottega plan 20261017-0930-add-a-dry-run-flag # a unique prefix or suffix is
92
107
  # read task.md; answer any questions in it and run plan again
93
108
  bottega approve dry-run-flag
94
109
  bottega run dry-run-flag
110
+ # read the changes in the worktree; bottega show dry-run-flag prints where it is
95
111
  bottega pr dry-run-flag
96
112
  ```
97
113
 
@@ -108,6 +124,47 @@ planner's questions when it has any; everything else goes to stderr:
108
124
  ```
109
125
 
110
126
  `pr` prints the pull request's URL, or `pr exists: <url>`.
127
+ [docs/process.md](docs/process.md#a-task-end-to-end) follows one task
128
+ through every command, with the `task.md` it ends with.
129
+
130
+ ## After `run`
131
+
132
+ `bottega show <task>` prints the worktree, the branch and the path of
133
+ `task.md`, then the phase, the round, the last signal, why the task stopped,
134
+ and one line per dispatch. `bottega list` prints every task and its phase.
135
+
136
+ **Done** (exit 0). Read the work before you open the pull request. The
137
+ changes are in the worktree, uncommitted: `git status` and `git diff` there,
138
+ and new files are untracked until `pr` commits them. `task.md` holds the
139
+ reviewer's `## Review Findings` and the judge's `## Verdict`. Then
140
+ `bottega pr`.
141
+
142
+ **Stopped** (exit 3). `run` prints the reason, the receipt of the dispatch
143
+ that stopped it and the resume command; `show` prints them again. Then one
144
+ of:
145
+
146
+ - `bottega resume <task>`: the same plan, a fresh cap. After `cap-reached` or
147
+ `judge-needs-work` a new round starts with the implementer; after any other
148
+ stop the role that stopped runs again.
149
+ - Edit the plan in `task.md`, `bottega approve` it again and `bottega run`:
150
+ the ids are kept and the loop starts over at round 1. After `blocked`, the
151
+ reviewer's findings say what is missing.
152
+ - `bottega pr` anyway: the pull request's body starts with the stop reason.
153
+ - `bottega rm <task>`: removes the worktree and the branch. The task
154
+ directory and its receipts stay.
155
+
156
+ ## What a task costs
157
+
158
+ You pay your providers; bottega-kit adds nothing. Each Claude Code dispatch's
159
+ cost, as Claude Code reports it, is `cost_usd` in its `run.json`. Codex
160
+ reports none: its usage goes to your ChatGPT plan. For scale, on 2026-10-23
161
+ the starter configuration above added an option to a 21-line Python CLI in
162
+ one round: four dispatches, 2.07 USD and under five minutes, three quarters
163
+ of it the Fable planner and judge. In the 0.1.0 runs, Sonnet at effort
164
+ `medium` cost 0.03 to 0.08 USD a dispatch on the same kind of task. A larger
165
+ task costs more: more files to read, more rounds.
166
+ [docs/compatibility.md](docs/compatibility.md) lists every dispatch of the
167
+ live runs.
111
168
 
112
169
  ## Example: three vendors, no judge
113
170
 
@@ -182,8 +239,9 @@ A stopped task continues with `bottega resume <task> [--rounds N]`.
182
239
  ## What bottega-kit never does
183
240
 
184
241
  - Retry a failed dispatch, fall back to another model, or substitute a profile.
185
- - Bring a model of its own. Every dispatch runs a profile you bound, and the
186
- harness must report the model you asked for.
242
+ - Bring a model of its own. Every dispatch runs a profile you bound. Claude
243
+ Code reports the model it ran, and it must be the one you asked for; Codex
244
+ reports none, so its receipts say `requested-only` and rest on the request.
187
245
  - Put a secret in its configuration, its prompts, a task or a receipt.
188
246
  Profiles name environment variables; the key file you keep at mode 600 may
189
247
  hold their values; receipts record names, never values.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bottega-kit",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "A planner, an implementer, a reviewer and an optional judge on the coding agents you already have, in a git worktree, with a receipt for every step.",
5
5
  "keywords": [
6
6
  "claude-code",