Crafter.Review/process
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf ddf32a8c02
fix(init): the skill it writes ignores itself, as a generated directory
A repository that ignores .claude wholesale, as Crafter.Build does,
never sees in git the prepush skill init writes, and the question was
whether it should: it should not. The skill is generated
from the shipped text with init's marker and refreshed by every init, a
tracked copy lags the installed binary whenever the shipped skill
changes, and every refresh would be a diff in the consumer's own ranges.
Jorijn's ruling: every consumer leaves it untracked, one init per
checkout.

When init owns the skill - wrote or refreshed it - it writes a
.gitignore of `*` beside it, as Python's venv and pytest's cache do for
theirs: the directory ignores itself, that file included, on every
checkout that runs init, whatever the repository's own rules or one
machine's say, and nothing of the repository's is edited for it. A copy
init wrote that the repository tracks gets the step that untracks it, in
the output and in the README's migration. A skill the repository wrote
itself is kept and not ignored - the ignore file an earlier init wrote
beside it goes - and an ignore file init did not write is kept unless
--force; a link there, dangling or not, is refused like the skill's
other links unless --force, which replaces it (the old setup's exemption
- a link that resolves into the review-gates submodule at the toplevel,
not one that merely names it - is the skill directory's and SKILL.md's
alone), and nothing is written through it: the links go before anything
is written, and one init cannot remove refuses. The procedure's log
records the ruling.
2026-11-02 00:31:47 +01:00
..
lenses feat(config): lens sections - a repository's own text appended to a shipped charter 2026-11-01 23:56:26 +01:00
skill/prepush feat(config): modes - a mode is an artifact kind, the lenses it runs and its effort 2026-11-02 00:29:00 +01:00
templates feat(config): modes - a mode is an artifact kind, the lenses it runs and its effort 2026-11-02 00:29:00 +01:00
prepush.md fix(init): the skill it writes ignores itself, as a generated directory 2026-11-02 00:31:47 +01:00