v0.21.0 — Task-altitude planning (from real-session dogfood)
Reviewing the user's actual analysis sessions gave a sharper diagnosis than any eval: causal-powers plans at the study altitude (estimand / PAP / model card) but hand-waves at the task altitude — "merge these two messy sources", "diagnose why this number is off" get a dive, not a roadmap-you-agree-to-first. On a real co-located-coordinate bug the agent dove into record-dumping and the user had to interrupt to impose an order; the project had zero analysis-plan.md. Full write-up: docs/2026-06-13-task-altitude-rung-and-dogfood.md.
Task-altitude planning rung (carried by skill bodies, card as backstop)
wrong-number-debugging: REPRODUCE now ends by stating the diagnostic roadmap and getting a nod before running scans; LOCATE executes the agreed roadmap.analysis-craft: a multi-step build/refactor gets a numbered roadmap confirmed before coding — an approved upstream study design does not waive the build steps.data-preparation: fires for an ad-hoc mid-analysis merge/reconcile; plan agreed before executing.- card + gateway: "always a written plan" reframed to two altitudes, same
write → agree → loop → checkpoint-on-deviationpattern, same couple-of-steps threshold so trivial edits aren't taxed.
Measured
- Viz-trigger validation (the gate):
eval-triggers --live --competitors, haiku —question-framingwon 17/19 build-from-data cases against the full menu incl.superpowers:brainstorming(all 5 viz cases won; 2 losses to the causal-powers gateway, in-family), negatives 20/20 clean. The v0.19.0 viz broadening is validated and the precision boundary held. pressure-roadmap-firstscenario, card-alone haiku: 0/1 — re-confirming that card text alone doesn't change a weak model's behavior (v0.20.0 redux). The rung is delivered by the skill bodies (which the user's real opus/fable sessions load); body-level validation needs the full-plugin arm.
Also
- Lesson-nudge recurrence (
stop-gate): the lesson gate re-fires as new debugging accumulates without a lesson (capped 2/session); escape hatch is one line toLESSONS.md— the lesson or ano-lesson: <why>note — so a silent skip becomes a recorded decision. Motivated by the live ledger (5 debugging stops, 0 lessons). Per-obligation markers now independent. - Re-trigger context cost: re-trigger now means re-apply the discipline (always) vs reload the body (only when scrolled out/compacted).
What's validated in production: the discipline fires in real sessions (checkpoints / identification / debugging), the Stop-gate shipped in 0.20.0 is firing live, and docs/LESSONS.md is compounding.
Update: /plugin update causal-powers@causal-powers + restart.