Repository navigation
v4.60.0
Minor. atril arrives in the family, and kj's persistent agent configuration goes through rulesync (a contribution by Jorge del Casar: ADR 0021 and ADR 0022, accepted, and 20 PRs).
Added
- atril (
packages/atril,@karajan-family/atril1.0.0, ADR 0021): skills, commands and subagents for every AI CLI, loaded on demand from a store outside the directories CLIs auto-load. Fully isolated (a lint rule forbids importing anything outside the package; a pack smoke test installs the tarball in an empty directory). This release ships steps 1 to 7 of the plan: parse and validate an artifact's frontmatter, scan the project and user stores,atril enrich [--check]with typed relations and their discovery,atril graphwith validation of missing targets and cycles, lexicalatril search,resolveBlockwith the closure ofusesanddelegatesbounded by a budget,atril install/atril remove, and the store'satril.json(atril config). Not yet published on its own to npm. - The rulesync ownership ledger (ADR 0022):
.rulesync/.owners.jsonrecords who wrote each file and entry, written atomically under a lock; kj writes itskarajan.mdblocks through it and stops on a hand-edited one;kj rulesync adopt|release <key>settles it. kj initoffers to adopt rulesync in a project without it (asked, never assumed); a failed adoption names its step and can be finished.kj doctorchecks the rulesync version against the range kj was tested with.
Fixed
- The update notice prints on stderr (KJC-BUG-0389): on stdout it trailed every
--jsondocument and the verdict the Sentinel's rules hook parses whenever npm had a newer version.
Changed
- The review of each atril and rulesync PR applied its findings: isolation also rejects absolute and
file:imports, the ledger rejects a non-string hash,installrefuses a symlink source, atril's discovered relations are validated like the author's,atril.jsonis written through an exclusive random temp file,DEFAULT_CONFIGis frozen all the way down, and search output strips control characters. The rules compiled from the maintainer's MD files are sealed in.karajan/rules.yml(no rule left without a gate).