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.
- package/CHANGELOG.md +18 -0
- package/README.md +70 -12
- 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.
|
|
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.
|
|
34
|
+
## Current release: 0.1.1
|
|
28
35
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
|
67
|
-
|
|
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
|
|
186
|
-
|
|
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.
|
|
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",
|