Repository navigation
What's new
- Our scripts now share two small helpers. One reads JSON that carries a BOM and writes it atomically (temp file, then rename over the target). The other re-runs a script with a proxy when your system has one. So all four network scripts respect a configured proxy, and a Node runtime that can't use one says so on stderr instead of looking like a network outage.
- Agent discovery is more complete.
scripts/discover-agents.mjsnow reportsmode,hidden,traits(worked out from the agent's description, name and mode, with known roles taking priority) andprovenance.fetchedAt. Built-in names it skips show up underskippedBuiltinsinstead of disappearing, and the workflow now asks you about any entry that might be one of your own agents. - New flags:
--include-builtin-names,--builtinand--extra-builtinfor agent discovery, and--rebuildfor the snapshot refresh.
Changed
- Refreshes now write the snapshot safely. If the existing snapshot can't be parsed, the script stops with a clear message and leaves your file alone — including your remembered mode and cached scores. It used to quietly start from an empty cache. Use
refresh-snapshot.mjs --rebuildto discard it on purpose. - The catalog fetcher and the snapshot summary use the shared helpers too, so what one script writes is what the next one expects.
- The README version badge no longer drifts from the skill. The badge is generated from
metadata.versioninSKILL.md, and the doc check fails if the badge or either changelog disagrees — a 1.2.0 badge on a 1.3.0 skill can't return unnoticed. Observer.mdandobserver.mdbehave the same now: known-role trait matching ignores case.- Run the three refresh commands one after another, never in parallel — they write the same snapshot.
- The proxy warning now fires for every runtime below the version we verified (22.23.1), not only for major versions below 22.
Fixed
- Reading a JSON file now treats only a missing file as "no file". A permission or sharing error is an error, so a snapshot that exists but can't be read is never replaced by a fresh one. And when an atomic replace fails — a file held open on Windows — the message names the path and says the previous file is intact, instead of a bare system error.
Full diff: v1.3.0...v1.4.0