The previous "Dogfood Failure Path: Branch + Logs Lost" section was wrong
on two counts (verified by M16 Wave B3, 2026-05-08):
1. The agent's branch IS pushed on F70-failure (dispatcher logs "branch
will still push (partial work preserved)"). The earlier "no branch"
claim was a fetch-refspec mistake — both B2 and B3 have task-<id>
branches on the agents fork.
2. The CP task record's logs ARE populated (~50 KB on B3). What's actually
missing is the pytest stdout/stderr from the F70 invocation — only the
high-level "Tests failed" line is logged.
Section retitled "What's Visible, What Isn't" with the corrected picture.
Operator pattern updated: fetch the task branch, apply the diff locally,
run the test — if local passes, cherry-pick to main.
New section "F70 Pytest Can Disagree with Local Pytest" captures the B3
finding: airouter's 15-line MN-14 validator passed 5/5 locally but F70
reported failure twice. Possible causes listed; workaround is
--max-test-iterations 1 + local apply-and-run after failure.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three additions to agent-repos.md based on the post-A1-incident dogfood
batch (8 successes + 1 operator-induced "failure"):
1. Airouter Qwen3.6 section: pattern reconfirmed across M16 Wave A1/A2/B1
and M25 Waves A1-A5 + B1-B2. Time-to-success bands recorded for cost
calibration (1m30s for git rm; ~5 min for Pydantic regex; ~12 min for
class addition). Default --max-test-iterations 1 for cheap probes.
2. New section: Test Design for AI Agent Dogfood Pipelines. Triggered by
the M16 Wave B2 (MN-4 prompt cap) failure — a 14-minute airouter run
blamed on the agent that was actually an over-strict test asserting on
sanitised 422 body content. CP's RequestValidationError handler strips
Pydantic detail for security; tests asserting body content for that
path are structurally impossible. Rules: verify test passes against a
reference impl before pushing; status-code-only ceiling for validator-
driven 422s; model on previous successes not stricter variants; F70
retries don't recover structurally impossible tests.
3. New section: Dogfood Failure Path: Branch + Logs Lost. When all F70
retries exhaust, the agent's last attempt is not pushed to the agents
fork, the CP task record's logs field is empty, and the pod is gone.
Operator must reproduce locally — until F70 finalize-on-failure pushes
the failed branch.
BESTPRACTICES.md index updated to reflect the new sub-topics.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
D4a (harness.yaml, 1 file) = success
D4b (CLAUDE.md, 1 file) = success
Both succeeded where original D4 (2 files) = silent no-output.
Pattern confirmed: single-file scope is the reliable unit for airouter/Qwen3.6.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds 3 new topic files (ai-parallel-agents, api-integration,
python-patterns) and extends 21 existing topic files with new gotchas
and patterns surfaced from memory across tracked projects. Index
updated accordingly.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add 37 new entries and update 7 existing entries across 13 topic files.
Major contributions from agent-runtimes (K8s secrets, CI, Docker gotchas),
cluster-bootstrap (ArgoCD SSA, etcd tuning, DB migrations, Compose networking),
and cluster-apps/octopus-deploy (Helm vs raw manifests, ArgoCD source types).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive guide covering task submission to the agent-runtimes
control plane, available harnesses, monitoring, multi-model workflows,
agent repo forks with workspace layout, and artifact extraction patterns.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>