- Task
- Fix
Set() so a beyond-length array index appends instead of destroying the array. Before the fix, Set({"a":[1,2,3]}, 99, "a", "[9]") returned {"a":[99]}. After, it returned {"a":[1,2,3,99]}.
- Subject
github.com/buger/jsonparser @ 6454f95de679fdd0c623a6183f7cff82da56b442 (MIT). The zip is the post-fix tree. The affected revision is public and outside it. findings/INDEX.md says how to reach it.
- Intent
- SYS-REQ-110 is approved.
reviewed_by: human:buger, 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. It shall not overwrite existing elements or panic. It rests on STK-REQ-005. The claim is formalized in FRETish.
- Failure class
- boundary · high Silent data loss. Sibling hazards on the same requirement:
nested_mutation (medium) and element_type_partition (high).
- Available context
- The requirement neighbourhood (SYS-REQ-110, SYS-REQ-009, STK-REQ-005), the implementation (
parser.go:Set), the historical failure (DEFECT-260727-WWWY, and KI-4 for the top-level partition), and the public tests named in the record.
- Verifier
- A deterministic
go test pin. No LLM judge. The exit code is the verdict.go test -count=1 -timeout 120s -run 'TestSetBeyondLengthScalarArrayPreservesElements_SYS110|TestMCDC_SYS_REQ_110' .
Run it through re-run/verify.sh --pin DEFECT-260727-WWWY.
- Success
- The known witness passes (
TestSetBeyondLengthScalarArrayPreservesElements_SYS110). The MC/DC row for this requirement passes. The sibling partition (KI-4, top-level arrays) keeps its own status.
- Provenance
PROVENANCE.json records the MIT licence, the subject commit, the producer (Proof / ReqProof), the review policy, and a SHA-256 for the content root and for each of the 201 payload files.