You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat: publish per-skill content hash in .well-known/skills/index.json
Add a `hash` field ("sha256:<hex>") to each skill entry so consumers can
detect which skills changed from a single index fetch, without downloading
and hashing every file. The hash is computed over the skill's served files
(path + per-file sha256, sorted) — order-independent and rename-sensitive.
`files` stays a string array; the field is purely additive, so already
deployed sync scripts are unaffected. Includes the design doc documenting
the hash contract.
This is the publishing half; the differential-sync consumer upgrade in
autosync-ic-skills is a follow-up.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* feat(autosync-ic-skills): differential sync keyed off per-skill hash
Replace the blind full-mirror with a differential sync. The script fetches
index.json once, compares each skill's published `hash` against a
{name: hash} manifest (.ic-managed.json), and re-downloads only changed or
new skills — pruning removed ones. Unchanged skills are skipped with no
per-file downloads, and a no-op sync is silent.
Falls back to re-downloading any skill the server publishes no `hash` for,
keeps cached skills on network/jq failure, retains the old hash on a failed
download so the next run retries, and transparently migrates the legacy
bare-array manifest format.
The script is now shipped as an attached file
(scripts/sync-ic-skills.sh) and the installer fetches it via curl for
byte-exact delivery instead of transcribing an inline block. On change it
emits a SessionStart JSON object (systemMessage + additionalContext) so the
summary surfaces in the Claude Code UI and Claude's context.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
* Make sure skills get reloaded on change
---------
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
**What it's not for.** It is not a version number or changelog signal — it carries no
102
+
ordering or human meaning, only equality. Compare hashes for equality; do not parse them.
103
+
76
104
## Evaluations
77
105
78
106
Each skill can have an evaluation file at `evaluations/<skill-name>.json` that tests whether agents produce correct output with the skill loaded. Evals compare agent output with and without the skill, using an LLM judge to score expected behaviors.
0 commit comments