2026-06-23 — Catalog re-test campaign + Verified Action delivery
Goal (operator): re-test every catalog bot until each runs reliably on the first-class lane (Anthropic opus / OpenAI gpt-5.5 forfait), fixing on failure; and, separately, have Featurly build the ADR-044 "Verified Action" pattern.
This is the consolidated record; the headline runs also have per-bot entries (feature-dev.md, sec-audit-source.md).
Headline deliverable — Verified Action pattern (ADR-044)
Featurly built the entire ADR-044 synthesis in one supervised run (019ef38d): DSL (parser/AST/IR/unparse/EBNF) + runtime executor_verified_action.go (342-line escalation ladder) + unit & e2e tests + docs + a demo on a commit node. Branch iterion/run/019ef38d @ 79f9111ed, builds + all VA tests green (verified independently). NOT yet integrated to main (overlaps the same-day Renovacy commit-node fixes; needs review + overlap resolution). See feature-dev.md.
Re-test scoreboard (first-class lane)
| Bot | Result |
|---|---|
| Doki (docs-refresh) | ✅ ×2 clean (convergence fix validated) |
| Seki (sec-audit-source) | ✅ clean end-to-end on opus (run 019ef389) |
| Nexie (whats-next) | ✅ clean to its priority-elicitation human gate |
| Revi (review-pr) | ✅ clean; caught a real regression in my own work |
| Evoly (evolve) | ✅ clean to its human gate |
| ReArchi (adr-rechallenge) | ✅ clean to human_decision (needs --var workspace_dir) |
| Bmady (bmady) | ✅ clean to its first BMAD gate |
| Fini (feature-gap-fill) | ✅ full plan→implement→review→commit; builds (real CLI fix) |
| Devy (devbox-setup) | ✅ clean |
| Willy (whole-improve-loop) | ✅ clean, isolated (worktree:auto default made it safe) |
| Renovacy (secured-renovacy) | ✅ commit-path validated via 27 clean commits (run cancelled for churn, not failure) |
| Billy (branch-improve-loop) | ✅ machinery validated with --var chunk_dir=/tmp (see finding) |
| Depsy (sec-audit-deps) | ⚠ blocked by the shared ~/.iterion-scratch finding (low-value SCA scaffold) |
revi-converse excluded (needs a live forge MR).
Fixes committed this campaign
- secured-renovacy — the commit path was a minefield (ADR-044's living proof), fixed 5× then hardened:
:!→:(exclude)pathspec; gitignore-filtered explicit add; plaingit add -A(robust primitive) over brittle exclude-pathspecs; dropped:(exclude)from a NodeexecSync(the(brokesh -c); and a cache-unstage guard aftergit add -A(Revi finding). - sec-audit-source — triage/voters defaulted to glm-5.2-first (GLM structured-output reliability gap); re-defaulted to opus first-class, glm chain now opt-in via
ITERION_SEC_AUDIT_PROVIDER_CHAIN(ADR-043).40a61ce97. - adr-cartograph — review-loop convergence hardened (Doki-style streak + steady-state escape) to stop opus oscillation into the fail backstop.
b5fc5be45. - ENGINE: docker E2BIG — oversized
sh/bash -ccommands now stream via stdin instead of the argv (faf11a872+836e21094). Unblocked Seki'smajority_verdict; hardens every sandboxed tool node with large inter-node input.
Findings (open)
- Shared
~/.iterionscratch/cache failure (Depsy + Billy). Both write scratch/cache under the host-mounted~/.iterion/projects/<key>/…from inside the sandbox, where the container runs as a non-host user that cannot write the jo-owned (700/755) host store →PermissionError/Permission denied.--sandbox-host-state=noneis NOT a workaround (it strips the~/.codexOAuth mount → claw loses gpt-5.5). Fix: default these paths to a sandbox-writable location (worktree${PROJECT_DIR}/…or/tmp), per the repo-agnosticism rule (no caching under~/.iterion). Billy unblocked live with--var chunk_dir=/tmp; Depsy needs the same for itscache_dir. - ReArchi
${PROJECT_DIR}in a var-default (workspace_dir: string = "${PROJECT_DIR}") is not substituted when it arrives via the var into a command —load_adrgot a literal${PROJECT_DIR}. Works with explicit--var workspace_dir=…. ReArchi-specific (Devy, same idiom, ran clean). - Renovacy
max_packages_per_rundoesn't bound total commits — a cap=15 run produced 27 commits across 60+ candidate selections / 224 upgrade attempts (the patch/family/solo paths appear counted separately). Efficiency/cap fix.
Operational notes
- Two Anthropic account switches mid-campaign; every interrupted run was
failed_resumableand resumed cleanly from checkpoint (zero lost work). - LESSON: never
for p in $(pgrep …); do killin the same shell driving the campaign — it self-TERMs (hit twice). Kill by captured PID or leave orphans. - LESSON: no backticks inside a
#shell comment in a.botcommand:backtick block — they close the DSL string (broke Renovacy validate once; amended).
State
Worktree clean; main is local/unpushed (≈47 commits ahead of origin). Builds + sandbox/model/dsl tests green. Pending operator steer: integrate Verified Action + Fini branches; triage the Seki SSRF-TOCTOU finding; 2nd-clean confirms for the heavily-fixed bots; fix findings 1–3; push.
