Repository navigation
v0.9.0
A remote git+ pack has so far existed only inside the run cache: cloned, consumed, deleted. The only evidence that an upstream pack had changed was a shifted diff in the generated output, interleaved with your own rules and skills — there was no way to review what a pin bump actually brought in. external: fixes that by materializing each pack into a directory you commit.
Highlights
Added
external: { dir: … }— remote packs materialized into the repo and committed. Each pack is copied into<dir>/<repo-name>/with a.packstamp recordingurl,refand resolved SHA. Commit that directory and bumping@v1.2.0to@v1.3.0reads as an ordinarygit diff, deleted skills included.- Only the subpaths your sources reference are copied, so a pack's
README, CI config and tests stay out of your repo..gitis never copied — a nested repository would be recorded as a gitlink, whose contents git does not track, which is the exact state this avoids. - One directory per
repo@ref. The first source entry to touch a pack in a run clears it, so content from a previous ref or a since-deleted source entry does not linger. - Never destructive: the clear is guarded by the stamp. A directory whose
.packdoes not name the same repo is left alone and the pack takes a suffixed name, so neither a folder of your own nor a second pack with a colliding repo basename can be deleted. - Two consequences fall out for free — pack files now have committed paths, so
AGENTS.mdand the Pi adapter link to them like any local source instead of naming them bare, and a pinned pack that is already committed keeps working when its remote is unreachable.
Changed
external.diris validated like an adapter output — repo root, outside-the-repo and inside-a-source values are refused with exit 1 before anything is written — but is deliberately allowed inside the intelligence umbrella, since<umbrella>/externalis the recommended location. Adapter outputs aimed at the external dir are refused symmetrically, andwarn_unsyncedno longer flags materialized packs.get_yaml_fieldis now the single two-level config reader, shared byproject.nameandexternal.dir.
Omit the block and behaviour is unchanged: packs stay transient. No schema change — the stamp advances to 0.9.0 on update.
Full changelog: https://github.com/ainova-systems/intelligence-sync/blob/v0.9.0/CHANGELOG.md
Install
Set up intelligence-sync in this project: clone https://github.com/ainova-systems/intelligence-sync, copy its `intelligence/` folder here, and follow intelligence/sync/INIT.md to bootstrap config.yaml and the first rules, agents and skills.
Already installed? Paste this instead:
Update intelligence-sync: fetch the latest engine from https://github.com/ainova-systems/intelligence-sync and run its update flow to migrate this project to the newest version. Leave my rules, agents, and project skills untouched.