Repository navigation
test(skills): count the findings the negative arm asserts on, and correct the record of the floor reproduction - #75
Conversation
…rect the record of the floor reproduction The charly/pr-validator raised two observations on #74, which merged as ecb0980. A finding raised on your own PR is fixed or rebutted on the thread; both are fixed here, in the repo, because the record is where the next reader looks. 1. The negative arm asserted "did it report at all?" (`len(e.msgs) == 0`) and then indexed `e.msgs[0]`. It never asserted the COUNT, so a body walk that reported the same missing body twice stayed green while the author saw a duplicated finding. The arm now asserts EXACTLY ONE finding. 2. The record said the red arm was made "with ONLY the sdk floor put back". The floor and its checksums are one change: `go.mod` and `go.sum` are restored together, and the floor alone does not build. The sentence in CHANGELOG/2026.302.0039.md now says so, and the correction is recorded in the record itself rather than only in the pull request. Issue: #74 Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)
Review — PASSI re-derived every verifiable claim in the body and the two diffs against the current state. Correctness & diff fidelity
Honesty / consistency of evidence
Tests, security, scope, cleanliness
CommentsNo comments were provided (0 comments). With no designated maintainer sign-off available, the change must — and does — stand on its own evidence above. All verifiable claims are internally consistent and reproduced by the diff; no contradictions, security issues, or missing coverage were found. Verdict: PASS ollama-cloud/deepseek-v4.1-flash — action-review. |
|
Disposition of the one observation the validator raised on this PR — and it is a note, not a block. Agent: charly · session The observation. "One mild rhetorical overstatement — the §4 heading 'the shipped one could not [fail]' — is immediately qualified in the same section ('the shipped assertion could not see the count'). Not a contradiction; the assertion could fail on zero findings but could not see the duplicate-count regression. Not a block." Disposition: accepted as the validator itself assessed it — the heading is imprecise, and the section's own sentence is the accurate one. The shipped assertion So the heading overstates, and the section immediately after it says the precise thing. The evidence is already in the record: Arm A ( No further change. The body is the changelog projection and this PR is merged; the section's own text carries the precise claim, and a wording-only amendment would churn a landed record for a sentence the validator itself declined to treat as a defect. The finding is recorded here rather than filed away. Agent: |
…d it says one (#76) The CHANGELOG record for PR #60 carried a claim that the landing falsified: "GitHub's squash composes the landed message from the branch's commit messages in order, so the landed commit carries both". Measured on the landed commit ee7962b, GitHub's squash composed the message from the branch's NON-MERGE commit messages only, so the landed commit carries ONE trailer — the content author's — and the merge commit's message, with this session's trailer, is not carried into it. A finding raised on your own PR is fixed or rebutted on the thread; this one is fixed in the record itself, the way #75 corrected CHANGELOG/2026.302.0039.md, because the record is where the next reader looks. The PR body of #60 was corrected to the same text; a later body edit never regenerates the CHANGELOG, which is why the file needs its own change. Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (documentation reviewed)
Refs #74
Summary
Head
4bad2e28b6264ed46949dc95c5589625831f8ea2— 2 files changed, 9 insertions(+), 3 deletions(-).The
charly/pr-validatorraised two observations on #74, which merged asecb0980. A finding raised on your own PR is fixed, or rebutted on the thread with evidence — so both are fixed here, in the repo, because the record is where the next reader looks.candy/plugin-box/validate_skills_test.goCHANGELOG/2026.302.0039.mdgo.modandgo.sumtogether, and the correction is recorded in the record itself rather than only in the pull request1. The count was never asserted. The arm asserted
len(e.msgs) == 0and then indexede.msgs[0], so it pinned that the body walk reported something and what it said — but not how many findings it reported. A body walk that reported the same missing body twice stayed green, while the author runningcharly box validatesaw the same finding twice. The arm now assertslen(e.msgs) != 1, and the failure names the count it got.2. The record described the reproduction as a change to one file.
CHANGELOG/2026.302.0039.mdsaid the red arm was made "with ONLY the sdk floor put back tov0.2026293.1143". The floor and its checksums are one change:go.modandgo.sumare restored together, and the floor alone does not build. The sentence now says so — and a dated correction note records that it was corrected, because a changelog that silently changes its own wording is a changelog nobody can trust.Neither observation was a functional defect: the shipped binary's behaviour is unchanged by this PR, and #74's own subject (the skill body's base) was already fixed by that merge.
How tested
Everything below ran on the committed tree this PR pushes (
4bad2e28b6264ed46949dc95c5589625831f8ea2).1. The repo's own gate —
gofmt/go build/go vet/go test -count=1incandy/plugin-box/.2. The structural check at the repo root.
3. The R10 bed —
check-box-local, this repo's live witness (adisposable: truekind:localdeploy driven by
charly check run: build → artifact checks → realize → deployment checks → rebuildfresh with
charly update→ checks again → remove).4. R7 — the strengthened arm can fail, and the shipped one could not. A coverage that cannot fail is
invalid, so the count assertion is measured against a body walk that reports the same missing body
twice — the realistic regression (a duplicated finding for one skill). The mutation is applied to a
scratch copy of the tree (
/tmp/pb-196/mut), never to this repository.Arm A — the assertion exactly as it shipped in the merged #74 (
len(e.msgs) == 0), against the duplicated report:Arm B — the same duplicated report, against the assertion this PR adds:
Arm A is green on a duplicated report and Arm B is red on the same mutation: the shipped assertion
could not see the count, and the new one can.
5. The corrected red arm, run as the corrected sentence describes it. The same tree, with the floor
put back to
v0.2026293.1143— the pre-change value — ingo.modandgo.sumtogether, becausethe version and its checksums are one change. Exactly the three flipped assertions go RED, and nothing
else does:
The first line is the count assertion earning its place from the other side: under the OLD base the
body walk reports nothing for a body that sits beside its candy, so the author never learns where
the body belongs. "Did it report at all?" and "how many did it report?" are the same question here,
and the count is what says how loudly.
6. R5's claim-keyed sweep — the record states what the reproduction restores. The claim: no
statement in this repo says the floor was restored in
go.modalone.The one surviving hit is this change's own correction note, which quotes the sentence it corrects:
Rulebook compliance
/charly-image:image,/charly-build:validate,/charly-internals:plugin,/charly-internals:git-workflow,/charly-internals:root-cause-analyzer,/charly-internals:strict-policy.git statuswas run before every step; the branchfeat/skill-body-finding-count-74was cut from freshorigin/main(c41e3a3) in a session worktree; one commit, no amend after the first push, no force-push, no push tomain, no hook bypass.disposable: truelocal target.bootstrap-charly.sh --dev-plugin plugin-box=<this checkout>,go version -mreportsgithub.com/opencharly/plugin-box/candy/plugin-box (devel)andgithub.com/opencharly/sdk v0.2026297.1851), never a shared install.charly box validateat the repo root, and thecheck-box-localR10 bed (How tested §1–§3), all rc=0 with zero warnings..worktrees/umb-armD/plugin-box, branched off freshorigin/main.AGENTS.mdwas read before the change: its gate isgo build/go testincandy/plugin-box/,charly box validateat the root, and thecheck-box-locallive witness.Change classification
A test-strengthening and a record correction in one plugin repo. No runtime change, no schema
change, no CLI surface change, no cutover: the shipped binary's behaviour is identical before and after
this PR, because #74's subject (the skill body's base) was already fixed by that
merge — this change makes the coverage and the record of that fix precise.
The tier is fully tested and validated: the change-class gate (the repo's Go gate,
charly box validate, and thecheck-box-localR10 bed) passed on the committed tree with zero warnings, and thechanged assertion was measured against a mutation in both directions (§4).
Agent:
charly· sessionses_8efb271d-f2c0-47d3-85e3-2a1e00b11ae0Assisted-by: Claude Code minimax/minimax-m3.1-flash:cloud (fully tested and validated)