A crawler and catalog for the public repos of mrodgersjs-web. It reads the repos, pulls out agents, skills, deviation engines and repo metadata, writes one typed JSON catalog, and generates a search CLI and a markdown index from it. Nothing in the catalog is typed by hand.
This package is not published on PyPI. From a fresh checkout:
git clone https://github.com/mrodgersjs-web/rig-agent-directory
cd rig-agent-directory
pip install -e ".[dev]"
(pip install git+https://github.com/mrodgersjs-web/rig-agent-directory is also supported; bare pip install rig-agent-directory 404s because the package is not on PyPI.)
Counted from catalog/catalog.json (29 public repos listed, 28 crawled):
| Kind | Count |
|---|---|
| Public repos | 29 |
| Skills | 30 (25 unique names) |
| Deviation engines | 40 |
Agents, split by origin: 225 original to the catalog owner's repos; 232 adapted from upstream work and not original. 457 entries total (354 unique names). The adapted ones are listed separately in INDEX.md and stated plainly in Attribution.
| Agents | Count |
|---|---|
| Original to the catalog owner's repos | 225 |
| Adapted from upstream (not original) | 232 |
Original agents by department: rig-content-pack 25, rig-design-pack 25, rig-engineering-pack 25, rig-gtm-pack 28, rig-prime-fleet 122.
Adapted agents by department: academic 5, design 9, engineering 33, finance 5, game-development 20, gis 13, marketing 36, paid-media 7, product 5, project-management 7, sales 9, security 10, spatial-computing 6, specialized 53, support 6, testing 8.
Engines by layer: cognitive 20, nature 10, physics 10.
The 232 agent role specs in rig-domain-agents are adapted from msitarzewski/agency-agents and licensed under MIT (license text). They are not original work by the catalog owner.
Domain-agent role specs in this repo are adapted from msitarzewski/agency-agents (MIT). They are not original work by the catalog owner.
Of the 457 agent entries in this catalog, 232 are adapted from upstream work and 225 are original to the catalog owner's repos. Both are listed below, separately.
Skills come only from public repos. Repos that are private (for example the skills library) are not crawled and do not appear. Forks are listed but not crawled.
Full list: INDEX.md. Machine-readable: catalog/catalog.json, described by rig_directory/schema/catalog.schema.json.
python -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]' # Python 3.10+; runtime dependency is jsonschema only# search and filter the committed catalog
rig-directory search sales coach
rig-directory search --kind engine --layer physics
rig-directory search --kind agent --department security --json
rig-directory search --kind skill --pack rig-gtm-pack
rig-directory stats # counts, computed from the entries, split by origin
rig-directory validate # schema + consistency check
rig-directory attribute # re-stamp upstream attribution onto an existing catalogrig-directory crawl --live --checkouts .cache/repos # lists public repos via the GitHub API, shallow-clones them
rig-directory index # rewrite INDEX.md
rig-directory readme # rewrite the counts + attribution blocks aboveGITHUB_TOKEN is optional; it only raises the API rate limit. The crawl needs git and network access.
rig-directory crawl --repos-meta tests/fixtures/repos-meta.json \
--checkouts tests/fixtures/checkouts --out /tmp/catalog.json| Kind | Rule |
|---|---|
| skill | A SKILL.md with name and description front matter (pack is read from packs/<pack>/...). |
| agent | A markdown file with name and description front matter, either under an agents/ directory or in a repo whose name contains agents (department = first folder, or the pack name). Entries from a repo listed in rig_directory/data/attribution.json also carry a source block naming the upstream author, repo, URL and license. |
| engine | An Engine(<id>, "<CODENAME>", layer, full_name, description, ...) call found with ast in a Python file. Code is parsed, never imported. |
| repo | GitHub API metadata plus the repo's commit, test-file count (files named test_*.py, *_test.py, *.test.*, *.spec.*) and its entry counts. |
Entries missing a required field are skipped, not guessed. The same skill or agent name can appear in several marketplace packs; each copy is its own entry and the counts block shows unique names too.
Upstream facts live in rig_directory/data/attribution.json: one record per repo that is adapted rather than original, with the upstream owner, repo, URL, license and a plain-English note. The extractor stamps that record onto every entry at crawl time, rig-directory validate refuses a catalog where an attributed repo's entries are missing the block (or where a repo that is not on the list claims one), and the renderer derives the README and INDEX.md sections from the stamped entries. Adding an adapted repo is a one-record data edit plus a regeneration; there is no prose to keep in sync by hand.
ruff check . && pytest -qTests run on fixture checkouts in tests/fixtures/ and compare the result to a golden catalog, then check schema validation (including rejecting bad catalogs), search filters, the index, the README generated blocks and the CLI end to end. tests/test_attribution.py additionally asserts that every entry from an attributed repo carries its source block and that the validator rejects a catalog where one is missing.
CI (.github/workflows/ci.yml) lints, runs the tests, rebuilds the catalog from the fixtures and validates it, validates the committed catalog/catalog.json, and fails if the README generated blocks or INDEX.md is out of date. A weekly job (.github/workflows/refresh.yml) crawls the live public repos and uploads the refreshed catalog, index and README as a workflow artifact; it does not push anything.
- Skills from private repos (the skills library is private today) are out of scope for a public catalog.
- Pull request automation for the weekly refresh (it currently uploads an artifact only).
- Extractors for further agent formats (for example YAML agent definitions) and for repos beyond Markdown and Python.
- MCP tools over the catalog;
mcp/server.pycurrently only exposes the shared RIG results tools.
MIT, see LICENSE.
Built by Mike Rodgers · rodgersintelligence.com