v2.12 adds meta, a second way to run the loop, plus an A/B harness to measure it against build. It also clears the pi 0.99.1 typebox warning, protects your uncommitted work during a run, and changes one rule in the grade skill.
A single /wf build run on a reverse-engineered earbuds app: one sentence in at 09:22, a third device family committed at 20:24 — 113 files, 16,042 insertions, all on GLM-5.3. What the gates did at every stage, and why the pipeline, not the model, carried the quality.
The correctness judge was the slowest grader in 80% of panels. v2.11 moves risk rulings into their own concurrent unit and teaches the judge to read everything in one batch, then describe the code before comparing it to the claim. Build's planner also now gets the acceptance inventory it is judged against, so a valid divergence is ruled at the plan gate instead of halting the run hours later at validate.
Nine releases in six weeks, one direction. v2.0 built a parallel, gated pipeline. Everything since has been about making a long run reach its end: halt less, recover cheaper, judge the work against your words, spend tokens only where they change a verdict, and never let a stop look like success. Version by version, with the reason behind each change.
Dynamic workflows, /goal loops, and a gated pipeline are three different answers to the same question: what would it take to actually hand work over? A comparison, and where rpiv deliberately sits.
A short novelette, told from idea to implementation: how you compose a self-checking workflow out of skills, contracts, and channels, and the doors that let it wake to the world, reach into it, and narrate itself back.
Per-step model and reasoning-effort control lands in rpiv-pi via /rpiv-models, the workflow runner gains resume-by-run-id and cooperative cancellation, and the family settles on one provider/modelId key form.
rpiv-workflow grows the two primitives a chain needs to build on itself (sequential `iterate` and raw-text `prompt` stages), and rpiv-pi's new `polish` workflow puts both to work. Then v1.17 consolidates workflow config into `.rpiv/workflows/` (breaking), adds `skillAliases`, sharpens the design/blueprint checkpoint, and lands You.com + Perplexity search providers.
rpiv-workflow ships as a sibling: typed multi-stage workflows with the new /wf command and four bundled chains. Plus a top-down architecture-review skill, an Ollama search provider, and a four-patch install-hardening tail.
rpiv-web-tools learns to talk to your own search engine: a self-hosted SearXNG provider, a new shape for the provider factory, and a sharper line between SSRF for fetch and loopback for search.
Two probing turns at the start of every commit was the wrong default. rpiv-args 1.10 lets Pi skills inline shell output and runtime variables: the same primitive Claude Code ships, ported to Pi.
Issue #32 from a two-part feature request to a second approved review in three and a half hours. A walk-through of what driver-in-the-loop looks like when you can read every artifact along the way.
rpiv-web-tools learns five new search engines, /web-search-config gets a friendlier picker, raw fetch refuses to talk to your localhost, and the web-search-researcher stops hiding in its own room.
rpiv-advisor learns to keep quiet around strong executor models, bundled agents move to a single global home, and the blog finally has a proper front door.
A small recipe for evaluating prompt changes against data instead of vibes: parallel arms, cheat-sheet answers, blinded LLM judges on a frozen rubric. The discover vs SAGE A/B is the worked example.
Architectural questions in the discover skill now name what they sacrifice, not just what they choose. Decisions arrive with a real rationale instead of agreement, and scope stays on the ask you actually made.