Skip to content

fix(sync-project): ignore the toolkit's own wiring block in the baseline-only skills warning (#382) - #398

Merged
MendixMau merged 4 commits into
masterfrom
night/fix-382
Oct 15, 2026
Merged

MendixMau merged 4 commits into
masterfrom
night/fix-382

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

Direct lane

What changed and why (one paragraph): sync-project.sh grepped all of CLAUDE.md for two baseline-only skill paths, so the toolkit-written mxtk:wiring block triggered the warning, and with no Integration heading it reported a section that does not exist. It now strips the wiring block before the grep and warns only when the Integration heading exists. Closes #382.

Impact

Row Answer
Process none: no new human step, gate, blocking path or artifact; one warning removed.
Dependencies touches bin/sync-project.sh, tests/wave2/test-sync-dup-heading-exit.sh, CHANGELOG.md; reads no new artifact.
Context cost none: no routed or always-loaded file touched.
Behaviour n/a: script only.
Runtime n/a: one awk over CLAUDE.md per sync, not a hot path.

Field evidence — reported by @joshuamoesa from a field project at toolkit d16f578; reproduced on master 354669e by running the check (see linked issue).

  • No client data anywhere in the diff (leak guard + private-citations clean)
  • Size cap: within 10 files / 400 lines
  • Test tier: T1, scoped test in tests/wave2/ (see below)
  • CHANGELOG.md line appended, crediting the reporter

branch night/fix-382, commit 3759d1b. Tests: tests/wave2/test-sync-dup-heading-exit.sh, 9 passed 0 failed (T4 flipped, T7-T9 new: wiring-only silent, block plus heading still warns). Base-run of the new cases not executed. Leak guard and private-citations check clean (LEAKGUARD_ALLOW_NO_DENYLIST=1).

🤖 Generated with Claude Code

MendixMau and others added 4 commits October 15, 2026 22:30
…block or a missing heading (#382)

Strip mxtk:wiring block before the grep; warn only when the Integration
heading exists. Test T4 flipped, T7-T9 added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
`grep && bad || ok` counted a failure as both FAIL and ok (bad returns 1).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…398)

tests/wave2/test-pipefail-grep-q.sh flagged the new check under pipefail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@MendixMau
MendixMau merged commit a87d107 into master Oct 15, 2026
2 checks passed
MendixMau added a commit that referenced this pull request Oct 15, 2026
…ot-installed so sync stops warning (#381) (#399)

Reviewed head: a6b5f46
Verdict: CHANGES (the CHANGELOG line is in the wrong place; code and test are good)

PR #399 fix(install-manifest): coverage-check-all.sh and ts-sync.sh move to MXTK_PROJECT_BIN_NOINSTALL (#381).

Impact rows (docs/RELEASE-PROCESS.md 4a)
- Process: confirmed. A warning is removed and a test added. No human step.
- Dependencies: confirmed. bin/lib/install-manifest.sh is shared and sourced by sync-project.sh and
  init-project.sh. Also CHANGELOG.md and the new test. No new artifact read.
- Context cost: confirmed none. install-manifest.sh, CHANGELOG.md and the test are not rows in
  skill-routing.tsv. ts-sync.sh does have a row (experimental), but that file is not touched.
- Behaviour: confirmed n/a (script only).
- Runtime: confirmed n/a. The same directory scan as today.
5 of 5 rows confirmed.

Correctness
- tests/wave2/test-manifest-clean-checkout.sh: on head, 1 passed, 0 failed. Pointed at an
  origin/master checkout it fails, listing coverage-check-all.sh and ts-sync.sh, which is the correct red/green.
- The stated reasons hold. project-bin/review-module.sh:99-105 `_tool` looks in $ROOT/bin, $BIN,
  then $MXTK_ROOT/bin and project-bin, and MXTK_ROOT is resolved from CLAUDE.local.md (:90-96).
  The ts-sync.sh header says SUPERSEDED (line 7) and UNPROVEN (line 12). Neither file was ever
  installed, so no project loses anything.
- Side effect, intended: sync-project.sh:276 now refuses an explicit request to install either
  file, naming NOINSTALL.
- BUG (blocking), CHANGELOG.md:10. This is the same defect as #398. The bullet is spliced into the
  "Release cycle" preamble inside the `## Unreleased` backtick span, not under the heading at
  line 22. bin/cut-release.sh:47 will not count it, and the preamble paragraph is broken.
  Fix: restore line 10 as on master and add the bullet as the first item under `## Unreleased`.
- Nit: the trailing comment on install-manifest.sh:129 is now one very long line covering three
  reasons. Consider one comment line per file.

Risk
- Every sync and init sources the manifest, so the first-line warning disappears for every
  adopter. A future unnamed project-bin file now fails this wave2 test instead of only warning in the field.

--- re-review ---
Reviewed head: 2ed20a3
Verdict: APPROVE

Re-review of #399 CHANGES finding.
- BUG resolved: git diff origin/master...HEAD -- CHANGELOG.md is one hunk, +1 line, the fix(install-manifest) bullet as first item under "## Unreleased". Release-cycle paragraph untouched.
- bin/check-pr-discipline.sh origin/master: clean.
- Only CHANGELOG changed in the fix-up; the long comment nit on install-manifest.sh:129 is optional and not blocking.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant