Skip to content

Commit be2ecae

Browse files
committed
feat: add AGENTS.md for AI agent guidance
Made-with: Cursor
1 parent 67a91b8 commit be2ecae

File tree

1 file changed

+120
-0
lines changed

1 file changed

+120
-0
lines changed

AGENTS.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
# AGENTS.md
2+
3+
This file tells AI coding agents how the Developer Tools Directory repo works and how to contribute correctly.
4+
5+
**Catalog site:** https://tmhsdigital.github.io/Developer-Tools-Directory/ (auto-deployed on push to main)
6+
7+
## Repository overview
8+
9+
This is a **meta-repository** -- it does not contain a Cursor plugin or MCP server itself. It catalogs, standardizes, and scaffolds other TMHSDigital developer tool repos. It contains:
10+
11+
- **`registry.json`** -- single source of truth for all tool repos (9 entries). The catalog site and README tables are derived from it.
12+
- **`standards/`** -- 9 Markdown docs defining conventions for folder structure, CI/CD, plugin manifests, GitHub Pages, commit conventions, README format, AGENTS.md format, and versioning.
13+
- **`scaffold/`** -- Python repo generator (`create-tool.py`) with 18 Jinja2 templates that produce a fully standards-compliant new tool repo.
14+
- **`docs/`** -- static GitHub Pages catalog site (vanilla HTML/CSS/JS, no build step). Reads `registry.json` at runtime to render tool cards.
15+
- **`assets/`** -- logo image.
16+
- **`.github/workflows/`** -- CI/CD for this repo (validate + pages deploy).
17+
18+
## Branching and commit model
19+
20+
- **Single branch**: `main` only. No develop/release branches.
21+
- **Conventional commits** are required:
22+
- `feat:` -- new tool added to registry, new standard doc, new scaffold template
23+
- `fix:` -- corrections to existing content
24+
- `chore:` -- dependency updates, CI changes
25+
- `docs:` -- documentation-only changes
26+
- Commit messages should be concise and describe the "why", not the "what".
27+
28+
## CI/CD workflows
29+
30+
### `validate.yml` (runs on PR and push to main)
31+
32+
Checks:
33+
- `registry.json` is valid JSON with correct schema (required fields, valid types, integer counts)
34+
- `docs/index.html`, `docs/style.css`, `docs/script.js` exist
35+
- `scaffold/create-tool.py` compiles without syntax errors
36+
- Scaffold dry-run test: generates a test repo and verifies key files exist
37+
38+
### `pages.yml` (runs on push to main when docs/, assets/, or registry.json change)
39+
40+
1. Copies `registry.json` into `docs/` for client-side fetch
41+
2. Copies `assets/` into `docs/assets/`
42+
3. Uploads `docs/` as a Pages artifact
43+
4. Deploys to GitHub Pages via `actions/deploy-pages`
44+
45+
## Key files and what they do
46+
47+
### `registry.json`
48+
49+
Array of tool objects. Required fields per entry:
50+
51+
| Field | Type | Description |
52+
|-------|------|-------------|
53+
| `name` | string | Display name |
54+
| `repo` | string | `Owner/RepoName` |
55+
| `slug` | string | Kebab-case identifier |
56+
| `description` | string | One-line summary |
57+
| `type` | string | `cursor-plugin` or `mcp-server` |
58+
| `homepage` | string | Docs site URL (empty string if none) |
59+
| `skills` | int | Number of skills |
60+
| `rules` | int | Number of rules |
61+
| `mcpTools` | int | Number of MCP tools |
62+
| `extras` | object | Optional extra counts (snippets, templates, natives, events) |
63+
| `topics` | string[] | Discovery tags |
64+
| `status` | string | `active`, `beta`, `deprecated` |
65+
| `version` | string | Current semver version |
66+
| `language` | string | Primary language |
67+
| `license` | string | SPDX identifier |
68+
| `pagesType` | string | `static`, `mkdocs`, or `none` |
69+
| `hasCI` | bool | Whether the repo has CI workflows |
70+
71+
### `docs/index.html`
72+
73+
The catalog site. It embeds a copy of the registry data in a `<script type="application/json">` tag as a fallback, and also fetches `registry.json` at runtime. When updating the registry, **also update the embedded copy in index.html** to keep them in sync.
74+
75+
### `scaffold/create-tool.py`
76+
77+
Python script using Jinja2. Templates live in `scaffold/templates/`. The script accepts CLI args (`--name`, `--description`, `--type`, `--mcp-server`, `--skills`, `--rules`, `--license`, `--output`).
78+
79+
### `standards/`
80+
81+
Pure documentation -- no code. Each file documents a convention derived from analyzing existing TMHSDigital tool repos (CFX, Docker, Steam, Home Lab, etc.).
82+
83+
## Adding a new tool to the registry
84+
85+
1. Add an entry to `registry.json` following the schema above
86+
2. Update the embedded registry in `docs/index.html` to match
87+
3. Update the tools table and aggregate stats line in `README.md`
88+
4. Use `feat:` commit prefix
89+
90+
## Adding or updating a standard
91+
92+
1. Edit or create the file in `standards/`
93+
2. If new, add a row to the standards table in `README.md` and in `standards/README.md`
94+
3. If the standard affects the scaffold output, update the corresponding `.j2` template in `scaffold/templates/`
95+
4. Use `docs:` commit prefix for docs-only changes, `feat:` if adding a new standard
96+
97+
## Updating the scaffold
98+
99+
1. Edit templates in `scaffold/templates/`
100+
2. If adding a new template file, update `scaffold/create-tool.py` to render it
101+
3. Test with: `python scaffold/create-tool.py --name "Test" --description "Test" --mcp-server --skills 2 --rules 1 --output /tmp/test`
102+
4. CI runs a dry-run test on every push
103+
104+
## Code conventions
105+
106+
- No hardcoded credentials anywhere
107+
- `registry.json` must be valid JSON at all times -- CI enforces this
108+
- The catalog site uses no external CDN dependencies -- everything is self-contained
109+
- Standards docs are written for public readership -- no internal references or private repo mentions
110+
- Use hyphens, not em dashes or en dashes, in all content
111+
112+
## Dependencies
113+
114+
This repo has one Python dependency: `Jinja2` (for the scaffold generator). It is listed in `requirements.txt`.
115+
116+
The docs site has zero dependencies -- vanilla HTML, CSS, and JavaScript.
117+
118+
## License
119+
120+
CC-BY-NC-ND-4.0. All contributions fall under this license.

0 commit comments

Comments
 (0)