You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[v0.18.1] - 2026-09-04
Changed
Template headers describe the installed file instead of instructing the
installer (#163, second half). Every shipped template opened with "Copy
to your project as ..." and the installed copy kept that line, so a target
repo ended up with files whose first line addressed the person installing
them. The 27 headers now say where the file lives and what puts it there
("Installed as .github/workflows/lint.yml", "Project-root ruff.toml").
Wording only: no rule, option or path changed, and installed copies stay
byte-identical to their templates, which cp_safe --force and the doctor's
drift check rely on.
Fixed
install.sh no longer drops a root tsconfig.json into a monorepo
(#163). The root file is the switch that makes the pre-commit hook and
lint.yml run tsc --noEmit over the whole tree, so in a workspaces repo it
type-checked every workspace with options written for none of them and
blocked every JS/TS commit (12,235 errors measured). The frontend install
now places the file by policy, the same logic as COMPONENTS.md entry 10's
adopt block: skipped, with the reason named, when package.json has a workspaces key or pnpm-workspace.yaml exists, or when per-directory tsconfig.json files already exist (node_modules, vendor and build output
are not counted); an existing root file is left alone as before; a plain
frontend repo still receives it, now followed by a note saying the hook will
type-check the tree and how to undo that, so the placement is never silent.
The catalog's adopt block gained the same per-directory check, and scaffold-assess.sh reports the per-directory case by name instead of
measuring the template project-wide. Case 41 covers all six installer paths
and was red before the fix; case 39 covers the assess line.
The pytest-config probe's node_modules prune was inert. With -mindepth 2, find never evaluates the prune on a depth-1 directory, so a
vendored pyproject.toml under node_modules/ counted as the pytest config
and suppressed the root pytest.ini with a "pytest config in
node_modules/x" skip. Found while writing the same probe for tsconfig.json; the tsconfig probe was written without it. Case 17 gained
the assertion, red before the fix.