The catalogue
Eight skills, 16,338 words of SKILL.md, across 2 repositories. This page is the registry v0 the thesis asks for, and the least it can be: a generated, machine-readable list of every skill that exists, with the fields a package manager would need next to the fields none of them have yet.
admin/build/gen_catalogue.py from
catalogue/skills.json, on every build. Editing the HTML has no
effect, which is the point: a registry maintained by hand is a document.
Take the JSON rather than scraping this page.
SGraph-AI__App__Send or SGraph-AI__Service__Playwright directly, so
the numbers come from the survey dated 2026-08-24 that was supplied with the
brief pack, not from a live read of the repositories. That is a weaker claim than the
thesis wants and it is stated rather than hidden. When the repositories become reachable
from CI, the generator reads frontmatter and this box changes.What the registry can and cannot tell you
| Field | Coverage | What the gap means |
|---|---|---|
| Name and repository | 8 of 8 | The one thing a folder-based skill always has. |
| Frontmatter description read cleanly | 5 of 8 | 3 descriptions are written as YAML folded scalars and came back
from the survey as the single character >. A registry that cannot parse
half its own packages' metadata is the thesis failing at step one. |
| do-NOT-use clause | 1 of 8 | The convention that stops skills colliding is followed, in captured form, once. |
Declared version | 0 of 8 | No skill has a version, so no skill can be depended on. This is gap G4, and it is one frontmatter field. |
Declared permissions | 0 of 8 | Gap G2. Every skill today runs on whatever credentials its caller happens to hold. The design is written; nothing implements it. |
| Canonical copy | 7 names, 8 copies | 2 of the entries below are two copies of one skill. Measured on every build. |
Every shipped skill
Ordered by size. generated 2026-08-24
Authoring a single-page HTML experience that renders from inside a vault: gallery, microsite, dashboard, report, slide deck.
The largest shipped skill, and the only one spanning two files. Carries the sg.llm.* how-to, and cross-references the canonical window.sg contract in AUTHORING.md rather than copying it (convention D).
A the trigger-rich description D cross-reference canonical contracts, never copy them
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
SURVEY GAP The frontmatter description did not survive the survey: it is written as a YAML folded scalar and was captured as the single character >. The trigger summary below is reconstructed from the brief pack, not read from the file.
Authoring _page.json layouts, markdown documents and folder navigation inside a vault.
The worked example of convention C: it embeds the full schema reference so it does not require cloning the repo.
A the trigger-rich description C self-containedness as a feature
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
Turning a document or a brief into AI-generated infographic images or slides. Names its exact trigger phrases (infographic, slide deck, visual summary, deck from document), its adjacent hosts (dev.tools.sgraph.ai, OpenRouter) and its fuzzy case (even if the user just says 'make me a deck').
The reference implementation of conventions A and B, and the only skill in the survey whose do-NOT-use clause was captured.
A the trigger-rich description B the do-NOT-use clause
Do NOT use for: Do NOT use for standard PowerPoint (.pptx) creation without AI image generation, or for diagrams/charts that can be handled by code-based visualisation tools.
version: not declared · permissions: not declared
SURVEY GAP The frontmatter description did not survive the survey: it is written as a YAML folded scalar and was captured as the single character >. The trigger summary below is reconstructed from the brief pack, not read from the file.
Clone, commit, push, branch, share and diff a zero-knowledge encrypted vault through sgit.
The only shipped skill whose subject is the substrate the rest of them write into.
A the trigger-rich description E named-trigger vocabulary
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
Remote-controlling a real Chromium instance over HTTP: navigate, screenshot, scrape, fill a form, render a PDF.
The longer of the two copies, by the margin this site measures on every build.
A the trigger-rich description E named-trigger vocabulary
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
Duplicate: this skill also exists in SGraph-AI__App__Send. See how far apart the two copies are.
Remote-controlling a real Chromium instance over HTTP: navigate, screenshot, scrape, fill a form, render a PDF.
One of two diverging copies, and the copy carrying an auth claim the service code contradicts.
A the trigger-rich description E named-trigger vocabulary
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
Duplicate: this skill also exists in SGraph-AI__Service__Playwright. See how far apart the two copies are.
Reading the service's live capability surface: every endpoint, schema and step verb, derived from the code.
Carries the never-the-stale-capabilities.json rule, which is convention D stated as an operating instruction: read the code, not the cached description of it.
A the trigger-rich description C self-containedness as a feature D cross-reference canonical contracts, never copy them
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
SURVEY GAP The frontmatter description did not survive the survey: it is written as a YAML folded scalar and was captured as the single character >. The trigger summary below is reconstructed from the brief pack, not read from the file.
Bootstrapping the agentic team session, fired by the team's own role vocabulary: Conductor, Sherpa, AppSec, Architect, Librarian, Cartographer.
The smallest shipped skill, and a pointer skill: its job is to load context, not to carry it. The reference implementation of convention E.
E named-trigger vocabulary
Do NOT use for: no clause captured in the survey. A skill with no do-NOT-use clause competes for triggering with every sibling that overlaps it, and nothing detects the collision.
version: not declared · permissions: not declared
Which conventions each skill follows
The five authoring conventions are not documented in any repository: they were extracted from the eight artefacts that follow them. The authoring guide writes them down; this table counts them.
| Convention | What it asks for | Followed by | |
|---|---|---|---|
| A | the trigger-rich description | the frontmatter description is a retrieval surface, not a summary: name the exact phrases that should fire the skill, the adjacent hosts and tools, and the fuzzy cases | 7 of 8 |
| B | the do-NOT-use clause | a skill that says when not to fire is a skill that plays well with siblings, because skills compete for triggering | 1 of 8 |
| C | self-containedness as a feature | embed the schema so the skill does not require a clone: the skill is a package, so it carries its dependencies | 2 of 8 |
| D | cross-reference canonical contracts, never copy them | point at the contract that already exists rather than becoming a second source of truth for it | 2 of 8 |
| E | named-trigger vocabulary | enumerate the domain's own terms, so the vocabulary a user already speaks becomes the trigger set | 4 of 8 |
The backlog is an artefact too
The sg-playwright repository's skills README says, in full:
“Empty today.” followed by four named candidates.
A written skills backlog with four named candidates, which is skill planning, and rarer than skill writing. It is listed here because a registry should show what is
planned as well as what is published, and because an honest empty shelf is worth more than
a full one nobody curated.