ABD Skill & Agent Catalogue
Maintain a browsable catalogue of skills under the repo root
skills/ and agents under agents/, aligned with the tone of
agents/abd-skill-builder/docs/process-outline.md and the compact HTML chrome
used under agents/abd-skill-builder/docs/overview/.
When to use this skill
- You added, renamed, or retired a skill or agent and the catalogue is stale.
- You need a stakeholder-facing index of what each skill and agent is for.
- You want both Markdown (diffable, review in Git) and HTML (quick browse).
What it produces
| Artifact | Format | Location (default) |
|---|---|---|
| Outline | Markdown | catalog/outline.md (repository root) |
| Site hub | HTML | catalog/index.html |
| Skills grid | HTML | catalog/skills.html |
| Agents grid | HTML | catalog/agents.html |
| Hub / grid intros | HTML fragments | skills/abd-skill-catalog/templates/intros/*.html (short lines above grids; optional polish) |
| Skill detail pages | HTML | catalog/skill/<dir>.html (one per skill; cards link here) |
| Agent detail pages | HTML | catalog/agent/<dir>.html (one per agent; cards link here) |
Each catalogue entry includes:
- Package
README.md(atskills/<dir>/README.mdoragents/<dir>/README.md) — human- or AI-authored catalogue copy. Convention:- Optional YAML
catalogue_summary:— one line for cards and grids. ## Overview— prose shown as the HTML Description (falls back toSKILL.md/ agent entry doc if this section is empty).- Skills: problem, approach, main inputs/outputs, when to use (keep it short).
- Agents: concise digest — what the agent does, why it exists, the main
steps (high-level only, not a paste of
AGENT.md), and which other agents and skills it orchestrates or depends on (names/paths). Full behaviour stays in the entry file; README is the stakeholder-facing summary.
## How it fits together— narrative plus a single fenced```asciiblock. The generator copies the fence body into the<pre>diagram as-is (no Python “invented” ASCII). Use an assistant: readSKILL.mdorAGENT.md, decide what the package does / how / why, then write README. If a README already exists but is insufficient, the assistant overwrites that file after judgement — scaffolding in Python only creates missing files; it never bulk-replaces existing READMEs.
- Optional YAML
- Summary (cards) —
catalogue_summaryfrom README, else first paragraph of## Overview, else the same heuristic as before fromSKILL.md/ entry doc. - Contents (detail page) — still generated by code: linked file tree from
disk (
<details>/<summary>, file names as links). Known folder blurbs and nestedSKILL.mdsummaries unchanged. Repo links open in a new tab.
Agent instructions
-
Regenerate on command. From the agilebydesign-skills repository root, run:
python skills/abd-skill-catalog/scripts/generate_abd_catalog.pyFirst-time or new packages — create stub READMEs only where the file is missing, then regenerate:
python skills/abd-skill-catalog/scripts/generate_abd_catalog.py --scaffold-readmesThe script never overwrites an existing
README.md. If a README is thin, wrong, or still full of TODOs, you (the assistant or maintainer) readSKILL.md/ the agent entry doc, decide what is insufficient, and replace the README content yourself (edit in the IDE or rewrite the file in one pass). That is not a generator flag — it is judgement + prose.Options:
--repo-root <path>— defaults to the parent of the reposkills/directory (detected from this script location).--output-dir <path>— overrides<repo-root>/catalogif you need a different folder.--scaffold-readmes— writeREADME.mdfrom templates only where the file does not exist, then run generation.
-
Discovery rules.
- Skills: every immediate child of
skills/that containsSKILL.md. (Skips plain files and folders withoutSKILL.md.) - Agents: every immediate child of
agents/that contains one ofAGENT.md,AGENTS.md, orSKILL.md(first match in that order).
- Skills: every immediate child of
-
Extraction (skills). Same heuristics as
skill-garden-cataloguefor name and fallbacks whenREADME.mdis absent or sections are empty:- Name — YAML
nameinSKILL.md, else directory name. - Summary — README
catalogue_summary/## Overviewwhen present; else YAMLdescription, else## Purpose, else opening text after the H1.
- Name — YAML
-
Extraction (agents).
- Name — YAML
nameif present, else markdown H1 heading text. - Summary — README first, else same heuristics as before from the entry document.
- Name — YAML
-
Catalogue intros (review with an AI or editor). Short HTML above the grids lives in
skills/abd-skill-catalog/templates/intros/. Keep copy user-facing (how to browse, link to outline) — do not explain how the catalogue is built (README conventions, generator, scaffolding); that belongs in thisSKILL.mdonly.catalog-hub-intro.html— hub; may use{{OUTLINE_HREF}}for outline.catalog-skills-intro.html— line above the skills grid.catalog-agents-intro.html— line above the agents grid.
The script uses minimal built-in HTML if a fragment is missing.
-
README templates. Stubs are produced from
templates/catalog-readme-skill.mdandtemplates/catalog-readme-agent.md. Adjust those files if the default scaffold text should change for new packages. -
Templates (layout). HTML shells and CSS live under
skills/abd-skill-catalog/templates/(excludingintros/, which are prose fragments) and are merged with token replacement. Edit those files to change branding or layout without touching Python. -
Idempotent. Running the script twice with the same tree overwrites the same outputs deterministically.