DEFECT-260727-WWWY
fixed · holds on the packaged treeKindbug fix · hard · demo split · toolchain reward, not a model score
Task
Fix Set() so that a beyond-length array index appends instead of destroying the array.
Reproducer from the record: Set({"a":[1,2,3]}, 99, "a", "[9]") returned {"a":[99]} before the fix and {"a":[1,2,3,99]} after.
Subject
github.com/buger/jsonparser @ 6454f95de679fdd0c623a6183f7cff82da56b442 · MIT
The label sample is this post-fix tree. The broken revision is the base revision in the environment package.
Intent
SYS-REQ-110 · approved · reviewed by buger on 2026-07-26
When Set targets an array index [N] with N >= len(array), the parser shall append at the end and return the mutated document, not overwrite existing elements or panic.
It formalizes STK-REQ-005. This defect broke that promise.
Failure class
boundary · silent data loss · severity high
The hazard on SYS-REQ-110. The record calls the surface data integrity. Two other hazards sit on the same requirement: nested mutation at medium, and element type at high.
Available context
The agent sees SYS-REQ-110, SYS-REQ-009, STK-REQ-005, the Set function in parser.go, this defect, and the public tests named in the record. KI-4, top-level arrays, is a separate case. The hidden check is not in that view.
Base revision
ae6fe746a98e5978263c5adcd139ada2171da1b5 · family f0958b5 · ships in the environment package as repo/base-f0958b5.tar.zst · the fix is f0958b571b35
No .git, and no Proof defect records. The 13 tests that asserted the bug are removed. families.json and metadata.json declare each removal. TestSetBeyondLengthScalarArrayPreservesElements_SYS110 fails on this tree and passes after reference/fix.patch. Three runs agree. Reward is 1.0 or 0.0. No model judge.
Verifier
go test -count=1 -timeout 120s -run 'TestSetBeyondLengthScalarArrayPreservesElements_SYS110|TestMCDC_SYS_REQ_110' .
The exit code is the verdict. No model judge.
Success
The known witness passes: TestSetBeyondLengthScalarArrayPreservesElements_SYS110. The MC/DC row for this requirement passes. KI-4, top-level arrays, keeps its own status.
This holds on the packaged tree. A failing run needs the pre-fix commit.
Provenance
PROVENANCE.json names the MIT licence, the subject commit, the producer, and the review policy. It stores a SHA-256 for the content root and for each of the 201 payload files.
The label sample is the post-fix tree. A pass there means that tree still holds the pin. findings/INDEX.md says how to reach the broken revision by hand. The environment package also ships the base revision. The hidden check fails there and passes after the reference patch. Both results are in quality-report.json.