Later
Ideas that do not serve the loop in 0.1.0. Each one is a line here, not code, until the owner decides otherwise. Seeded from the work plan (§7 and M4) and refreshed for 0.1.0 on 2026-10-17 with what the milestones deferred.
0.2.0 candidates (M4; not started without the owner’s word)
- An
openai-compatibletext-patch harness (DeepSeek, Qwen, the GLM API, local endpoints): a context pack (git ls-files,bottega.json, files the plan lists under## Context files, size-capped), unified-diff output, a fail-closed verifier (relative paths, no..,.git/.github/.env*/hooks denied, add/modify only,git apply --check), applied in the worktree, verdict in the receipt. Text-patch profiles are implementer-only: they have no shell, so they cannot signal, andapproverefuses them in other roles. - Agentic drivers for
kimi,grokandgemini.
Later
- A PR/CI agent that drives checks to green and resolves conflicts.
- A refinement stage between READY and the PR (bottega has one).
- YOLO mode.
- Epics, explore, webhooks, a kanban, several users, authentication.
autorole bindings through a router. Todayautois parsed and refused.- Locks across tasks. One
runper task is enforced; running several tasks at once is the user’s call. - Dashboards.
- An interactive
bottega init. - Finding
test_cmdin the project’s CLAUDE.md. Today it comes frombottega.jsononly. bottega pr --remote. Today the PR goes tooriginonly.- Structured verdicts as a second channel: Claude
--json-schema, Codex--output-schema. - Narrowing
--add-dirfrom the whole task directory to adoc/subdirectory that holds onlytask.md. Today an implementer can technically touch the receipts andstate.json; the orchestrator re-reads nothing from them mid-run, so the exposure is low. - Checking the plan hash after every implementer dispatch, not only when
runandresumestart. Today an implementer that edits the plan text mid-run is caught at the nextresume, not at once. npx bottega-kit --uninstall. Today uninstalling needs a clone and its./uninstall.sh.bottega prfor anoriginwhose URL uses an ssh host alias (work:owner/repo): gh is then given the alias as the host. Today the user sets a plaingithub.comURL.bottega pr --draft, labels, reviewers. Todaypropens a plain pull request;gh pr editdoes the rest.bottega prcommits every untracked file withgit add -A, including caches a reviewer’s test run may leave in a project without ignore rules. The rails already record each role’s new untracked paths;prcould exclude the ones read-only roles created.--roleoverrides onbottega plan(the plan allowed them onnewandplan; today onlynewtakes them).- Record Claude Code’s
permission_denials(from theresultevent) inrun.jsonand count them inbottega show; today they are only inevents.jsonl. - A per-profile Codex
-c key=valuepassthrough (for example to pinsandbox_workspace_write.network_access=falsefor an implementer when yourconfig.tomlturns it on). Today the kit pins only the keys inHARNESS_MATRIXand yourconfig.tomldecides the rest. BASH_DEFAULT_TIMEOUT_MSandBASH_MAX_TIMEOUT_MSin the Claude implementer’s and reviewer’s environment, if a live run ever shows an agent forgetting the timeout the prompts ask for. On 2026-10-19 Sonnet set it in both roles on its own.