A weak agent you use every day.
You have an agent template (a reviewer, a summarizer, a codegen helper) that is fine, not great. You keep hand-correcting it in the same ways. That steady stream of corrections is exactly the signal a better version should learn from, but there is nowhere for it to go.
A promotion you can trust, not a vibe.
Optimizing a prompt is easy; knowing the new one is actually better is hard. Greedily accepting whatever scores higher on a handful of examples p-hacks itself: you ship drift and call it progress. Gitmoot pairs the SkillOpt train/review loop, which generates and ranks candidates from your usage, with the PACE anytime-valid commit gate, which only promotes a candidate once it has beaten the champion by a real statistical margin.
Prompt an agent, or run it yourself.
Same loop, two ways: ask your coding agent to run it in plain language, or drive the Gitmoot SkillOpt CLI directly.
You describe the outcome you want; the agent runs the whole train → rank → optimize → gate loop and reports back with the one thing that matters: whether the new version earned its promotion.
My code-reviewer agent flags too many false positives. Train a better version from our past reviews, but only promote it if it’s genuinely better.
Started. I scaffolded a SkillOpt training session for code-reviewer against your review history and enabled auto-promotion behind the PACE commit gate. SkillOpt generated candidate reviews, you ranked them, and the optimizer produced code-reviewer@v2.
gitmoot skillopt train initgitmoot skillopt train startPACE gate enabledHow do we know v2 is really better, and not just lucky on a handful of examples?
That’s exactly what PACE guards against. I’m serving live reviews through both the current champion and v2 and recording which one you prefer. PACE runs an anytime-valid test over that candidate-vs-champion record and only promotes v2 once the evidence crosses the significance threshold: no p-hacking, no drift. It’s ahead right now, but not yet decisive, so it’s holding.
gitmoot skillopt abPACE commit gatePing me when it promotes.
Will do. The moment the evidence is decisive, v2 becomes the champion automatically. If it never clears the bar, it stays a candidate and nothing about your live reviewer changes.
PACE auto-promoteAgents compound; every promotion is earned.
The reviewer you used yesterday trains the reviewer you use tomorrow, and the only versions that ship are the ones that beat the incumbent on the evidence. Improvement stops being a hopeful prompt edit and becomes a ratchet: each promotion strictly better, none of them a regression you find out about later.
Tune the loop to your risk tolerance.
- Lower
pace_alphafor a stricter bar (a higher commit threshold), or leave it at the default for a balanced gate. - Watch a candidate’s standing any time with
gitmoot skillopt candidate show <version-id>; PACE’s promote-or-hold decisions surface in the candidate’s notify events. - Reject a candidate that never clears the bar with
gitmoot skillopt candidate reject <version-id> --reason "…". - Discover the available task kinds and templates with
gitmoot skillopt train init templates --json.
Gitmoot SkillOpt builds on Microsoft SkillOpt. For the full command reference, see the docs.