Repository navigation
v3.23.5 - project writes refuse parent-folder links; gold-standard stamps
Project writes refuse parent-folder links; gold-standard stamps
A project write (the config, the installer's files) now refuses a link at any folder between the project root and the file. plugin/ moved only for the gold-standard method reference, so this is a PATCH release.
Security
- A project write refuses a link at any folder between the project root and the file, wherever it points. Before: a write through an in-project link (an in-project
.claudejunction or symlink) was made while the hooks refused to read the same file (the 3.23.3 read pin); a link that led outside the project was already refused. NowwriteRepoFileand the pre-checks every caller runs (configure.mjs,install.mjs: rules files, git hooks, the skills folder, the manifest, uninstall) refuse a link at any component, an in-project target included, and make missing folders one at a time, checking each. A user whose own.claude,.githubor.agentsis an in-project link (a dotfile manager's) is refused where they install, the same rule the reads already apply;configure.mjs --global(no project root) is unchanged. Not covered: the check-then-make race. The walk and the later write are separate steps, so a local process that swaps a folder for a link between the last check and the write can still land the file outside the project. — test:scripts/lib/write-folder-pin.test.mjs
Changed
- Internal — the canon re-copy round (UMB3-038), by blob id, from the org canon overlay:
scripts/lib/wave-run.mjsb60827c6,scripts/lib/wave-run.test.mjsbccbaa58,scripts/lib/release-prune.mjs7f33a695,scripts/lib/release-prune.test.mjs96a4cceb,scripts/lib/asset-upload-mode.mjs0022e6fa,scripts/lib/asset-upload-mode.test.mjs573349d2,scripts/verify-release-shape.mjs270e43d1,scripts/verify-release-shape.test.mjs7c2b35c4andscripts/release-notes.test.mjsf9dde432; thegithub/codeql-actionpin incodeql.ymlandscorecard.ymlmoved to24c54180a607b1449ed407dd24f251e4e9147c8d(v4);scorecard.yml'spaths-ignoregainsNOTICE;claude-ai-zips.ymltakes the canon'spackage-manager-cache: falseonsetup-node. These ship nothing inplugin/. NOTICEfollows the canon wording (BB-185): name, copyright line, the series URL and the licence; the room's own Origin line and attribution sentence are gone.gold-standardstamps only the content it re-checked. A FILL or RE-VALIDATE that checks some sections of a file writes a new stamp on the line above each section it checked and leaves the file-level stamp's date and exemplars as they were (a section with no stamp of its own keeps that date); re-dating the file-level stamp over sections nobody re-read over-claimed their freshness. The rule is inskills/gold-standard/references/method.mdand itsplugin/copy, and the RE-VALIDATE step inSKILL.mdsays the same. A prose rule, so no test.