A naming wrinkle, since fixed Shipped
teamtester once bound report to a campaign rollup, which is not what that name promises everywhere else. It now binds the shared per-run report and the rollup is campaign-report.
A team qualifies for the six shared run commands by declaring a command named report, and nothing checks what that command is actually bound to. teamtester declared one — a campaign rollup — so it inherited the six while its per-run field report lived at a different verb entirely, which is a trap for anyone reading the command table rather than the source.
What changed
It was fixed on 2026-07-29: the rollup was renamed campaign-report, and report now binds the same run-report builtin every other run-producing team binds. teamtester is the team that plays it straight now.
Why it is still written down
Because the mechanism that allowed it is unchanged and deliberate: declaring the name IS the opt-in, and nothing in a team spec otherwise distinguishes a team that archives runs from an interactive one. A convention keyed on a name rather than on a contract will eventually match something that shares the name and not the meaning. The fix was to the team, not to the rule.