v0.9.0
Fixed
releaseis idempotent. A second run for the same version inserted a second,
empty## [<version>]heading, and the changelog extractor then matched the
empty one — so every forge release got aRelease v<version>placeholder body
instead of the notes. It now leaves an existing section alone.
Changed
- No external skill is stored in this repository any more. All nine sources
moved to"strategy": "reference", which removed 166 vendored skill folders
andskills/upstream-lock.json. The registry keeps the pin, the licence, the
full upstream inventory, and a newrecommendedfield holding Agent Compass's
own curation — 146 of 163 operational skills, 3 of 20 caveman skills, 10 of 13
design skills. Nothing about the update lifecycle changed: one cached
--check-updatescovers all nine, and--verifystill runs offline. - The operational safety adapter moved from vendoring time to install time.
The corpus was vendored so Agent Compass could rewrite it — a safety gate on
every skill and eight passages with the secret taken out ofargv. Tracking it
would have lost that, soscripts/lib/upstream-skills.mjsnow runs inside the
installer instead. No uncorrected copy exists anywhere, an override whose
upstream target was reworded still fails rather than being dropped, and the
guarantee is now asserted against install output for all 146 skills. - One install path for local and tracked skills.
skills-sync --onlyroutes
each requested name to the local copy or the tracked source automatically, and
stack profiles name external skills in anexternalfield thatselectAssets
merges intoskills.recommend,adopt, andsetup-wizardtherefore behave
exactly as they did when the skills were vendored — a caller passes one list and
never needs to know which kind a name is.global-setup --styledoes the same
user-wide. skillsanswers for a tracked skill.agent-compass skills <name>reports
the source, pin, licence, pack membership, and install command for a skill that
is not on disk;--grepmatches a hyphenated slug from a spaced query
("github actions" findsgithub-actions);--pack <id>reports the pack and
how to install it.convert-documents-to-markdownis now compass-authored guidance for the pinned
@firecrawl/anydocCLI rather than a copy of the upstream skill. Theanydoc
source stays tracked so the version pin remains visible.- Retired
check-skill-qualityand thelint:skill-qualitygate. What they
guarded is now covered byupstream-skills --verifyplus the install-output
tests.
Added
-
external-skills— one installer for Claude Code, Codex, and Copilot.
Fetches a tracked source at its pin and writes.claude/skills/and
.agents/skills/, plus a.github/instructions/file because Copilot has no
skills directory.--globalinstalls user-wide,--recommendedtakes the
compass curation,--skill <a,b>or--alltake a selection,--dryshows the
plan. Executable payloads are refused unless--allow-scriptsis passed, and
each source's licence notice — including PolyForm's verbatimRequired Notice
line — is written beside the install. -
Compass-authored routers replacing the deleted copies:
operational-skills,
design-taste-skills, and
working-style-skills— each carrying
the curation reasoning that used to be implicit in which folders existed. -
Pointer documents: operational-skills.md
(the eight narrowings in full) and
style-and-design-skills.md. -
compass-external-sourcemission skill. The guided path for adding,
listing, curating, refreshing, or removing a tracked source: the licence gate
runs first (no licence means refuse; a use restriction is escalated, not
absorbed), then the registry entry, the computed inventory, the pointer
document, the narrowings, the fit wiring, and the tests. Routed from
MISSIONS.md. -
Native mobile coverage, tracked instead of copied. Two published skill
corpora are now registered inskills/upstream-sources.json:
android/skills(21 skills, Apache-2.0,
Google LLC) and
dpearson2699/swift-ios-skills
(86 skills, PolyForm Perimeter 1.0.0). Neither is vendored. The Apple corpus
carries a noncompete term, and Agent Compass redistributes skills to host
projects, so copying it would engage that term; the Android corpus ships its
own installer and keeps its mirrored documentation fresher than a mirror would.
See ADR 002. -
A third source strategy,
reference. A reference source is pinned,
update-checked, and documented, but owns no local file. It records aninstall
command, aninventoryRoot, aninventoryDoc,pointers, and the
upstreamSkillsinventory at the pinned commit.upstream-skills --verify
fails offline when a pointer disappears, stops naming its repository, or when
the generated inventory block drifts.upstream-skills --update <id>re-reads
the inventory from the new tree withgit ls-treeandgit show, moves the
pin, rewrites the inventory block, and prints added and removed upstream
skills — copying nothing and executing nothing. Both new sources join the
existing cached--check-updatespath with no separate command. -
native-mobile-skillsskill. Routes a native Android or Apple-platform
task to the vendor skill that covers it, installs it with the vendor's own
installer, and keeps the compass gates in force: validation on the real
toolchain, an emulator or simulator screenshot for a screen change, and no
third-party skill relaxing §4. Self-contained, so it still routes after
skills-synccopies it into a host without the compass tree. -
android-composeandswift-iosstack presets, with detection.
detectStacksnow recognises an Android Gradle plugin,AndroidManifest.xml,
an Xcode project or workspace,Package.swift, andPodfile— and holds back
when Expo, React Native, or Flutter is present, because those toolkits generate
theandroid/andios/trees rather than owning them. A Gradle build only
counts as Android when a build file applies an Android plugin, so a Kotlin
service does not match. -
platform-skill-before-memoryinstinct. Why recall fails on a
yearly-release platform, and which of the two failure modes reaches review.