Skip to content

fix(repair): classify migrate_value as a repair proposal and correct the report contract - #133

Merged
pablontiv merged 4 commits into
masterfrom
pablontiv/w5-issue66-repair-surface
Aug 6, 2026
Merged

fix(repair): classify migrate_value as a repair proposal and correct the report contract#133
pablontiv merged 4 commits into
masterfrom
pablontiv/w5-issue66-repair-surface

Conversation

@pablontiv

@pablontiv pablontiv commented Aug 6, 2026

Copy link
Copy Markdown
Owner

Summary

Slice B of issue #66 repairs the proposal/report boundary:

  • classifies migrate_value as a repair proposal and preserves WikiLinks while applying it;
  • removes the unsupported analyze-report-to-repair workflow claim;
  • documents and tests the accepted rootline/proposals repair contract.

Verification

The orchestrator independently verified this exact tree with just check, just test -race, just coverage-check, go mod tidy, documentation validation, and gitleaks. All checks passed; total coverage was 89.6%.

Chained PR context

This PR is slice B and targets the slice A branch. It references #66 without closing it; slice C will close the issue.

GitHub issue #130 documents the current zero-check blind spot for stacked PRs whose base is not master, so an empty check rollup is expected for this PR.

@pablontiv pablontiv added the type:bug Bug fixes label Aug 6, 2026
@pablontiv

Copy link
Copy Markdown
Owner Author

Orchestrator verification — local CI equivalence for head 437345f

This PR is stacked on pablontiv/w5-issue66-dead-surface, so per #130 .github/workflows/ci.yml never fires and statusCheckRollup is empty. mergeStateStatus: CLEAN here is not evidence of green CI. The full CI surface was therefore reproduced offline against this exact tree, applied to a throwaway detached worktree at the slice A base 14b87fe.

ci.yml job Local equivalent Result
Build + fmt + lint just check gofmt clean, golangci-lint 0 issues., go build ./... OK
Test just test (go test ./... -race) 14/14 packages ok
Coverage (85% floor) just coverage-check TOTAL 89.6%, lowest package cmd/rootline 86.9% — no package below floor
Tidy go mod tidy + git diff --exit-code go.mod go.sum clean, no drift
docs-validate branch-built binary, rootline validate --all docs/roadmap/ total 127, valid 127, invalid 0, errors_count 0
gitleaks gitleaks detect --source . 1022 commits scanned, no leaks found
release / installer-smoke push-gated — never run on a PR N/A

Commit hygiene: exactly one commit (437345f), subject identical to the PR title, no ! marker (this widens what repair apply accepts and breaks no documented contract), no AI attribution, no Co-Authored-By trailer. The pre-push cmd/rootline/ double gate is satisfied — the diff changes docs/analyze.md + docs/fix.md and .claude/skills/rootline/SKILL.md.

Merge order: #131 (slice A, base master) → #133 (slice B) → slice C (which will carry Closes #66). Retarget each child to master before merging its parent — gh pr merge --delete-branch on the base of a stacked PR closes the child, and GitHub refuses to reopen it.

Conflict watch: this diff adds a hunk adjacent to the same os.WriteFile(tgt.abs, ...) call in internal/fix/repair.go that PR #126 converts to an atomic write. Expect a textual conflict if #126 lands first; the resolution is to keep #126's atomic write and re-apply the InsertWikiLinksBeforeHeading line above it.

Base automatically changed from pablontiv/w5-issue66-dead-surface to master August 6, 2026 12:06
@pablontiv pablontiv closed this Aug 6, 2026
@pablontiv pablontiv reopened this Aug 6, 2026
@pablontiv
pablontiv merged commit 33105d3 into master Aug 6, 2026
22 checks passed
@pablontiv
pablontiv deleted the pablontiv/w5-issue66-repair-surface branch August 6, 2026 12:49
pablontiv added a commit that referenced this pull request Aug 6, 2026
Reconcile this branch with master after its former parent (#127, the
--output format contract) was squash-merged, alongside the validate
envelope (#124) and the repair-surface contract (#133).

All conflicts were additive: CHANGELOG.md, CLAUDE.md, docs/graph.md and
.claude/skills/rootline/ref-query.md keep both sides, and
cmd/rootline/staged_test.go keeps master's new
TestGetStagedFilesIgnoresAmbientGitScope next to the existing empty-index
assertions. The resulting diff against master is exactly this PR's own
change: field-name validation for --where (warning) and --sort (error).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type:bug Bug fixes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant