A single-agent OpenSpec pipeline: explore, propose, apply and archive in one forked session, for a model that serves one session at a time #151
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
I want to try a bigger model, hosted with llama.cpp, that can serve only one session at a time. Braid's OpenSpec pipelines spread a change over many sessions:
Most of that suits a fast model with many parallel slots. Used by hand, OpenSpec is four steps, often in one session: explore, propose, apply, archive.
Proposal: a new experimental pipeline (working name
solo, withgit-flow-solo)fork_session_of, #139), so the change's context carries from explore to the PR description. When the session reaches the context alarm, the existing handoff hands it to a fresh session, and the next step forks that one. Compaction stays the backstop.browsersubagent, so the judge is not due and the loop is the lanes and the fix rounds.To decide in the proposal
Shipped in
fe0b60a, live, archived assolo-pipeline.What there is
soloandgit-flow-solo, experimental built-ins:browsersubagent no judge is due, so the fix loop is the lanes and the fix rounds. On uses the roster in Settings.Verified
solo(subagents off, checking each step forks the one before) andsolo-request-changes. The deploy's self-check ran both.solorun's opencode config has only the main agent.Not yet: no run on a real model. For llama.cpp with one slot, also set the concurrent runs in Settings to 1, and the context per agent to the model's window.
First production run on
solo(run 50,run_01M47X2Y9F5VYVGMFTHYT1EKHT)The setup:
solo-testbranch sodevelopkeeps the #139 baseline's start;Result: succeeded in 73 minutes, merged and archived. Every step took one attempt: no failure, no retry, no question.
backend/.venv.browsersubagent. So no fix rounds, and the result was not opened in a browser.The carried session
Against the baseline (#139)
git-flow)git-flow)solo)Wall clock is across the vLLM 0.31 upgrade, so turns and tokens are the fairer comparison. Run 50 also skipped the judge, the review lenses and the code review by design. Whether five people can play a whole game over the network was checked only by the tests, not in a browser.
Worth a look: the summary step's 7.6 minutes for 2 turns. It is most likely the 132 inherited messages being read again.
Follow-up: the browser check should be mandatory in
solo, and the loose ends to pick up later. Reopened so these stay visible. Trogdor is going off for now.1. Make the browser check mandatory
Run 50 merged with nothing opening the game in a browser. With subagents off, no
browsersubagent exists, sofixloop.judge_duefinds no judge due. "Five play a whole game over the network" was checked only by the 110 backend and 42 frontend tests.solorun that changes something a browser shows, whatever the subagents choice.browsersubagent. The judge already has a session of its own and runs after apply, so it still asks the model one session at a time.2. Not yet exercised on production
solo-request-changes.3. Worth a look
agent.summarizetook 7.6 minutes for 2 turns. It forked apply's session and inherited 132 messages, most likely read again in full. On a slower one-slot model that cost grows. Two ways to go:solo;4. Open decisions from tonight's issues
$TMPDIRrule prevents it.5. State to pick up from
fab99fb, with #147, #148, #150, #151 and #153 live.git-flow) was stopped during apply.developis still at 88be018, the start of runs 41 and 48.solo-test.run_01M47X2Y9F5VYVGMFTHYT1EKHT):solo, subagents off. It succeeded in 73 minutes, every step on its first attempt, with 131 turns and 121,810 generated tokens. Runs 48 and 41 took 544 and 633 turns.osfd rebuild.ui-polish-103"another step opens at its own tail" failed at load 10, andresting-pointerfailed at load 12.