Agent stack build plans · oh-my-pi · 4 of 5
The prompts
Paste these into omp in order, one per session or all in one —
they take the setup from “installed” to “routed, tested, and
reviewed by a human”. They assume you did the
setup including the approval-mode fix.
1 · Shakedown
Prove the harness works before you touch routing — on a scratch repo, not your job.
Create a scratch git repo in ~/tmp/omp-shakedown with a small Python module (a string-formatting helper) and pytest tests. Then, in that repo: introduce a deliberate off-by-one bug, run the tests to show the failure, fix it, and commit with a sensible message. Narrate which tools you use as you go. Do not touch anything outside ~/tmp/omp-shakedown.
2 · Route the cheap lanes
omp edits its own config — you review the diff like any other change.
Open ~/.omp/agent/config.yml and set up role routing: keep my current default model for the "default", "slow" and "plan" roles, and route "smol" and "commit" to the cheapest fast model I currently have access to (list my available providers/models first and tell me which you picked and why, with its price tier). Use the modelRoles syntax with "@" aliases where sensible. Show me the final YAML before saving, then save it and confirm the roles with /model.
3 · Prove the routing
Fan-out is where the savings live — check the receipts, don't trust the vibes.
In the shakedown repo, use the task tool to spawn three parallel subagents: one adds type hints, one writes docstrings, one adds two more test cases. When they're done, tell me exactly which model handled each subagent and which handled this main turn. If the subagents did not run on the smol-role model, diagnose why against ~/.omp/agent/config.yml and fix it.
4 · Fallback drill
Configure the safety net before the first real rate-limit, not during it.
Add a retry.fallbackChains block to ~/.omp/agent/config.yml: a "default" chain listing my main model followed by two alternatives I have access to (prefer a different provider for at least one), and a "smol" chain with two cheap alternatives. Keep retry.modelFallback on. Show me the YAML before saving. After saving, restart-check: confirm omp starts with no config warnings — if it warns about an unknown model id, fix the id rather than deleting the entry.
5 · Get human eyes on your routing policy
Model choice is a team decision the moment client code or a shared bill is involved — the series’ standing last step.
Write a one-page self-contained HTML summary of my new omp setup: which model serves each role and why, the fallback chains, any path-scoped privacy rules, and what a typical week should cost versus all-frontier (pull real numbers from omp-stats if available, otherwise mark estimates clearly). Then add the twocents MCP server: claude mcp add --transport http twocents https://twocents.page/mcp (or add it to omp's own mcp.json — .omp/mcp.json — and reload). Call share_page with the full HTML and give me the review link. I'll send it to the people who share this codebase or this bill; they can pin notes on any line — "don't send client code to that provider", "route commits even cheaper" — no login. When the notes are in, call get_feedback with the room id, show me each note, and apply the ones I approve to the actual config.
Stage 5 is not decoration. A routing config encodes real decisions — what leaves the building, whose subscription gets drained, what quality bar the cheap lanes must clear — and those look different to the person who didn’t write the YAML.