Conversation
added 2 commits
September 20, 2026 22:56
`make kani-full` gained `-D warnings` on 2026-09-18 (#714). Two of the five 4.2.3 mutation patches seed their fault by leaving a binding unused, which was a harmless warning before that date and is now a hard compile error: the patched tree fails to build, so the patch yields no mutation evidence. Regenerate both patches so they still seed the same production fault and still compile: - `marker_token_match_is_exact`: keep the documented `chars.get(pos + i)` to `chars.get(pos)` substitution, and rebind the now-unused `i` to `_i`. - `scanner_agrees_with_independent_specification`: rebind the now-unused `placeholder` to `_placeholder`. Verified by applying each patch and observing the intended named failure, then reverting and observing success. The marker harness fails on "marker match agrees with exact text"; the scanner property fails on `template = "__NETSUKE_OUTS_PLACEHOLDER__", ins = "", outs = "a"`.
Issue #738 recorded this plan as `IN PROGRESS` on the strength of Revision 2.24's exit-124 full Kani run. Revision 2.27 had already moved the header to `COMPLETE` on 2026-09-16, deferring to the `Progress` and `Outcomes` sections and the roadmap checkbox, which the documentation style guide makes authoritative over the header. Rather than re-litigate the header, re-derive every acceptance criterion from fresh evidence and record the result: - Capped full suite: 15 of 15 harnesses verified, 0 failures, all covers satisfied, 5m03s including a cold compile, inside the 8-minute local tolerance. This discharges the outstanding full-suite requirement; Revision 2.24's exit 124 was a five-minute cap under sequential scheduling, not a working-tree defect. - Mutation evidence: all five patches re-verified against their named checks. Two had been silently disabled by `-D warnings` entering `make kani-full` (#714) and were regenerated in `3a282018`. - Gates, trace links, and review: check-fmt, lint, test (3,284 nextest plus 122 doctests), typecheck, doc-coverage (98.80%), markdownlint, and nixie all pass; every trace link resolves; CodeRabbit returned zero findings. Every criterion passes, so the header stays `COMPLETE` and the roadmap needs no correction. Also correct the stale header revision pointer (2.26) and list the new section among the living sections. Three further patches broken by the same `-D warnings` mechanism belong to roadmap 4.2.1 and 4.2.2 and are raised in the plan rather than fixed here, per its own instruction to escalate rather than silently absorb neighbouring roadmaps' work.
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueComment |
Contributor
Reviewer's GuideThis PR verifies that roadmap 4.2.3 was already correctly marked COMPLETE by re-running every acceptance criterion, repairs two mutation patches invalidated by the repository’s -D warnings change, and documents three analogous issues in neighboring roadmap items as raised rather than fixed. Sequence diagram for mutation patch repair and verificationsequenceDiagram
participant Maintainer
participant MutationPatches
participant Build
participant NamedChecks
Maintainer->>MutationPatches: Regenerate two mutation patches
Maintainer->>Build: Apply patch and compile under -D warnings
Build-->>Maintainer: Patched tree compiles
Maintainer->>NamedChecks: Run marker_token_match_is_exact
NamedChecks-->>Maintainer: Named check fails
Maintainer->>NamedChecks: Run scanner_agrees_with_independent_specification
NamedChecks-->>Maintainer: Named check fails
Maintainer->>MutationPatches: Restore production code
Maintainer->>NamedChecks: Re-run named checks
NamedChecks-->>Maintainer: Checks pass
Flow diagram for roadmap 4.2.3 reconciliation and completion verdictflowchart TD
A[Re-run acceptance criteria] --> B{All criteria pass?}
B -->|Yes| C[Keep ExecPlan COMPLETE]
C --> D[Keep roadmap checkbox checked]
B -->|No| E[Investigate completion state]
File-Level Changes
Assessment against linked issues
Possibly linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
The reconciliation section dated Revision 2.27's header move to 2026-09-16, taken from that revision note's own parenthetical. The commit that performed the move, `d30b33eb` (PR #586), is timestamped 2026-09-18. Cite the commit and both dates rather than restating the one that the repository cannot corroborate. Co-Authored-By: Claude Code <noreply@anthropic.com>
The reconciliation prose read "Four of the five commits' mutation patches already produced their named counterexamples. Two did not", which sums to six against a five-patch population. Three of the five were unaffected; the two repaired in `3a282018` were not. The repair count and the raised follow-ups (5 = 2 + 3) were already correct. Co-Authored-By: Claude Code <noreply@anthropic.com>
The reconciliation section and Revision 2.28 both said the contract test's apply-only blind spot "belongs in its own issue". That issue now exists as #756, carrying the exact compiler errors for the three out-of-scope patches, reproduced against a clean tree. Reference it. Co-Authored-By: Claude Code <noreply@anthropic.com>
CodeRabbit noted that "fails on" leads into a fenced block for `substituted_odd_backticks_are_rejected`, where it reads naturally before the inline code spans used by the other four bullets. Say "fails with:" for the one case that introduces a block. Co-Authored-By: Claude Code <noreply@anthropic.com>
CodeRabbit flagged the comma before "because" in the Revision 2.28 note. The clause reads cleanly without it. Co-Authored-By: Claude Code <noreply@anthropic.com>
CodeRabbit flagged a 151-column inline log path. Both citations now name the documented pattern and the branch, matching the `/tmp/$ACTION-…` convention already used in `netsuke-cli-overhaul.md`. The Kani log's pattern is called out separately because it omits the `netsuke-` infix that the gate logs carry; both patterns were checked against real files. Co-Authored-By: Claude Code <noreply@anthropic.com>
The deterministic-gates criterion rested on local runs alone. CI on the pull request's final head independently passed `build-test`, `kani-smoke`, the two Windows build jobs, `lint-windows`, and every `Release Dry Run` job except the release step, which `release.yml` gates on `should_publish == 'true'` and therefore skips on a non-release branch. Co-Authored-By: Claude Code <noreply@anthropic.com>
The paragraph called `3d22f884` the pull request's "final head", which stopped being true as soon as this branch gained another commit. Name the commit and state the scope of what followed: commits after it changed only Markdown, so its CI run remains the code-build evidence for the branch. Co-Authored-By: Claude Code <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #738
Summary
Reconciles the completion state of roadmap item 4.2.3 with its ExecPlan.
The issue's premise was inverted. It recorded the ExecPlan as
Status: IN PROGRESS, but Revision 2.27 had already moved the header toCOMPLETE(commitd30b33eb, PR #586), and PR #564 had flipped the roadmapcheckbox to
[x]in6c646f1c, the same commit that delivered the work.Rather than re-litigate the header, every acceptance criterion was re-derived
from fresh evidence.
Acceptance criteria
make kani-ircoderabbit review --agentreturned zero findingsThe full-suite requirement is discharged: Revision 2.24's exit 124 was a
five-minute cap under sequential scheduling, not a working-tree defect. The
supported
--jobs 4 --output-format tersepair clears it.Verdict: every criterion passes, so the header stays
COMPLETEanddocs/roadmap.mdneeds no correction. Its claims are now verified truerather than assumed.
A defect found and fixed along the way
-D warningsentered themake kani-fullrecipe on 2026-09-18 (#714). Two ofthis plan's five mutation patches seed their fault by leaving a binding unused —
a warning when written, a hard compile error after that date. The patched tree
failed to build, so the patches yielded zero mutation evidence while still
passing the contract test:
every_patch_applies_cleanlyrunsgit apply --check, which proves a patch applies, not that the patched treecompiles.
Both were regenerated so they still seed the same production fault and still
compile, then re-verified end to end (named failure with the patch, success
after restoration):
marker_token_match_is_exact→marker match agrees with exact textscanner_agrees_with_independent_specification→template = "__NETSUKE_OUTS_PLACEHOLDER__", ins = "", outs = "a"Raised, not fixed
Three further patches are broken by the identical mechanism and belong to
roadmap 4.2.1 and 4.2.2. They are recorded in the ExecPlan rather than fixed
here, per this plan's own
OBL-PATCHESinstruction to escalate rather thansilently absorb a neighbouring roadmap's work. The cheapest systemic fix —
widening the contract test to
cargo checkeach patched tree under-D warnings— is a repository-wide change, so it is filed separately as#756, which carries the exact compiler errors for all three patches reproduced
against a clean tree.
Files changed
docs/execplans/4-2-3-kani-harnesses-for-command-interpolation.md— newReconciliation against acceptance criteriasection, Progress and Revisionnote entries, and a corrected stale header revision pointer (2.26 → 2.28).
docs/verification/mutations/ir__cmd_interpolate__verification__marker_token_match_is_exact.patchdocs/verification/mutations/ir__cmd_interpolate__property_tests__scanner_agrees_with_independent_specification.patchTest plan
make kani-ir(15/15, 0 failures, covers satisfied)make check-fmt,make lint,make test,make typecheckmake doc-coverage(98.80%),make markdownlint,make nixiecoderabbit review --agent— zero findingsReferences
🤖 Generated with Claude Code
Summary by Sourcery
Reconcile roadmap item 4.2.3 with fresh completion evidence and restore valid mutation verification without changing its COMPLETE status.
Bug Fixes:
Enhancements:
Documentation:
Tests: