Skip to content

About

Generated catalog of agents, skills and repos, with counts that fail CI when they drift.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

RIG Agent Directory

CI status license catalog

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.

Install

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.)

What is in the catalog

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.

Attribution

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.

Install

python -m venv .venv && . .venv/bin/activate
pip install -e '.[dev]'      # Python 3.10+; runtime dependency is jsonschema only

Use

# 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 catalog

Refresh from the live public repos

rig-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 above

GITHUB_TOKEN is optional; it only raises the API rate limit. The crawl needs git and network access.

Offline crawl (what the tests and CI use)

rig-directory crawl --repos-meta tests/fixtures/repos-meta.json \
  --checkouts tests/fixtures/checkouts --out /tmp/catalog.json

How entries are extracted

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.

Attribution is data, not prose

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.

Tests and CI

ruff check . && pytest -q

Tests 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.

Roadmap

  • 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.py currently only exposes the shared RIG results tools.

License

MIT, see LICENSE.


Built by Mike Rodgers · rodgersintelligence.com

About

Generated catalog of agents, skills and repos, with counts that fail CI when they drift.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages