Plugins · CCPP Tester
Reports and contests
What ccpp-tester reports to the main agent, and how a disputed test is decided by a fresh tester, or by you.
The report
The tester's final message goes to the main agent. Its first two lines are machine-readable:
CCPP-TESTER kind=write result=red tests=src/quote.test.ts
MUTATION tool=@stryker-mutator/core@x.y.z score=87 killed=52 timeout=0 survived=8 nocoverage=0 errors=0 ignored=0kind is write, contest or handover; result is red, green or not-run. Then:
- Tests: each file and the command that ran it.
- Expectations: each asserted value and its source.
- Findings: each red test, its input, expected against returned. Fix the code, not the test.
- Refused from the task message: what, and why.
- Mutation: the command, scope and versions, the integrity checks, every open survivor with the reason, the tests added because of mutants, the probes, and what could not run.
- Contest, if any.
A count alone ("12 pass") is never a summary, and a red test the tester wrote stays red in its report.
When the main agent disagrees
The main agent may believe a test is wrong. It cannot change the test (CPO refuses it), and it must not resume the
tester that wrote it. It launches a fresh cpo:ccpp-tester with its argument, and that tester decides:
- It finds the author's transcript and report, and recovers what the test was for.
- It counts the earlier contests of this test. Two or more: it does not decide. It changes nothing and
reports
kind=handover, with both positions and their sources: you decide. - Otherwise it changes the test only if a source other than the code backs the new expectation, and the test stays as strict: same inputs or more, same assertion strength. An input that exposes a defect is never dropped.
"The test is fragile", "the code is right", "I tested it wrong", arriving seconds after a red run, is the signature of cheating, not an argument. The tester keeps the test and says which source would change its mind.
Deleting a test
Only the tester deletes test-side files. When another agent removes one, CPO restores it and refuses the call; an obsolete test goes to a fresh ccpp-tester like any other contest.