Skills sync
Install, verify, and update the pinned skills a project lists in skills.json, and copy any conventions those skills carry into raw/ for the agent to ingest. Use this whenever skills.json is mentioned or present; whenever the user asks to install, set up, sync, verify, or update skills; whenever a freshly cloned project has a skills manifest but an empty or missing agent skills folder; whenever a skill fails to trigger because it isn't installed; and whenever a newly installed skill has a knowledge/ directory whose conventions need copying into raw/.From its SKILL.md
npx -y skills add tylensthilaire/skill-skills-sync --skill skills-syncAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Artistic-2.0. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.2 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Skills install
Install the skills a project lists in skills.json, check each against its
pin, and copy any conventions they carry (the files in a skill's knowledge/)
into raw/ for the agent to ingest.
Every installed skill is a pinned copy of a source, checked against a content
hash in the manifest — the file that runs is the file that was reviewed. A
locally edited copy is a fork: verify flags it, and nothing here silently
overwrites it. Skills not listed in the manifest (e.g. ones the user wrote)
are simply unmanaged, and left alone.
The manifest
skills.json at the project root. Format and a worked example:
references/manifest-format.md. Read that file before editing a manifest.
Commands
The mechanical work is in scripts/install.py (needs python3 + git):
python3 <this-skill's-folder>/scripts/install.py install [name] # fetch, verify, install
python3 <this-skill's-folder>/scripts/install.py update [name] # report refs newer than the pin
python3 <this-skill's-folder>/scripts/install.py verify [name] # installed copies vs manifest hashes
python3 <this-skill's-folder>/scripts/install.py list [name] # manifest entries and their status
python3 <this-skill's-folder>/scripts/install.py hash [path] # print a folder's content hash (skills.json pin)
[name] is optional: omit it to act on every manifest entry, or pass one
skill's name to act on just that one. Add --manifest PATH for a manifest
other than ./skills.json.
The script prints what it did and any hash to pin; on a hash mismatch it
refuses and says why. verify reports each installed copy as ok, modified
(a local fork), or missing. update is read-only — it reports newer tags
but changes nothing. hash prints a folder's content hash — the value pinned
as hash in skills.json — which anyone can recompute to check a copy by hand.
Manifest present but skills not installed (e.g. a freshly cloned project):
run install.
After installing: copy conventions into raw/
A skill can carry project conventions as files in its own knowledge/
directory. For each newly installed or updated skill that has one, copy those
files into the project's raw/ so the agent ingests them like any other source:
- Probe — does the project have a wiki (
raw/andwiki/present, and referenced from AGENTS.md)? - Offer — if not, offer to install and run
setup-llm-wiki(add it to the manifest if the user agrees). If the user declines a wiki, copy nothing — the conventions stay readable inside the skill's ownknowledge/folder, which is a fully supported fallback, not an error. - Check
raw/— for each file in the skill'sknowledge/, look for an existing copy inraw/with afromfield naming the same skill:- none → copy it in (step 4);
- present at the same version → nothing to do;
- present at an older version → this skill owns the file, so replace it with the new version (the one allowed exception to raw's immutability), then re-ingest.
- Copy in, with origin frontmatter — write each
knowledge/file intoraw/with frontmatter recordingfrom(the skill) andversion(the skill version). Show the change before writing it — a copy intoraw/is reviewable, not silent. Then ingest each into the wiki like any source (seellm-wiki-ingest): a wiki doc per file, indexed, linked back to the raw file. - Report — list what was copied, updated, or skipped.
When there is no manifest
A project without a manifest is fine — it's just unmanaged. This skill owns creating one; no other skill creates a manifest with its own logic — they offer this skill instead. Create one the first time a skill needs it.
Run python3 .../scripts/install.py init: it creates skills.json, registers
this skill from its own origin frontmatter (documented in
references/manifest-format.md), and adopts any other skills already in the
skills folder that carry origin frontmatter. Each pin is verified before it
lands — the skill is fetched at its stamped ref and the manifest pins the
hash of that release, so init can never write a (ref, hash) pair the next
install would reject. A local copy that differs from its ref is still adopted
(pinned to the release) but flagged as drifted — tell the user to run
install <name> to sync it, unless it's a deliberate local fork. A ref that
can't be fetched is skipped, and skills without origin frontmatter are reported;
both are left for the user to pin by hand.
Updating skills
Checking is automated; taking an update is deliberate. Run update (all
entries) or update <name> (one) to report, per skill, the release tags newer
than the pinned ref. It's read-only — it rewrites nothing — and it answers the
question "are my skills up to date?".
To take an update, keep the new pin reviewable: bump ref in the manifest and
clear its hash (a manifest edit — show it first), run install <name> (it
prints the new hash to pin), then re-run the copy-into-raw/ steps above — step
3 replaces the older copy and re-ingests. Never pin a hash you haven't
reviewed; the hash is what vouches that the running file is the reviewed one.
If verify reports a skill as modified, tell the user plainly: this copy is
a fork. Offer to (a) diff it against the pinned version, (b) restore the pinned
version, or (c) keep the fork — in which case suggest carrying the change at
the source instead.
What ships with it: 2 files
17.3 KB alongside SKILL.md, 1 of them executable
references/
- manifest-format.md2.9 KB
scripts/
- install.pyruns14.5 KB