|
| 1 | +You are working on Developer Tools Directory, a meta-repository that catalogs, standardizes, and scaffolds TMHSDigital Cursor IDE plugins and MCP servers. |
| 2 | + |
| 3 | +## Repo structure |
| 4 | + |
| 5 | +- `registry.json` -- single source of truth for all 9 tool repos (name, type, counts, links, status) |
| 6 | +- `standards/` -- 9 Markdown docs defining conventions (folder structure, CI/CD, manifests, pages, commits, README, AGENTS.md, versioning) |
| 7 | +- `scaffold/create-tool.py` -- Python repo generator using Jinja2 templates |
| 8 | +- `scaffold/templates/` -- 18 Jinja2 templates producing a standards-compliant repo |
| 9 | +- `docs/` -- static GitHub Pages catalog site (index.html, style.css, script.js) |
| 10 | +- `assets/` -- logo image |
| 11 | +- `.github/workflows/` -- CI/CD for this repo (validate, pages, stale, codeql, dependency-review, release, release-drafter, label-sync) |
| 12 | +- `AGENTS.md` -- AI agent guidance for this repo |
| 13 | +- `CLAUDE.md` -- Claude Code project documentation |
| 14 | + |
| 15 | +## Commit conventions |
| 16 | + |
| 17 | +Use conventional commits. Prefix determines changelog category: |
| 18 | +- `feat:` -- new tool in registry, new standard doc, new scaffold template |
| 19 | +- `fix:` -- corrections to existing content |
| 20 | +- `chore:` -- dependency updates, CI changes, maintenance |
| 21 | +- `docs:` -- documentation-only changes |
| 22 | + |
| 23 | +## Hard rules |
| 24 | + |
| 25 | +- No em dashes or en dashes anywhere. Use hyphens or rewrite. |
| 26 | +- No hardcoded credentials, tokens, API keys, or passwords. |
| 27 | +- No binary files except images in `assets/`. |
| 28 | +- `registry.json` must be valid JSON at all times -- CI enforces schema. |
| 29 | +- The catalog site uses no external CDN dependencies -- everything is self-contained. |
| 30 | +- Standards docs are written for public readership -- no internal references. |
| 31 | +- All content is CC-BY-NC-ND-4.0 licensed. |
| 32 | + |
| 33 | +## When editing registry.json |
| 34 | + |
| 35 | +- Every entry needs all required fields: name, repo, slug, description, type, homepage, skills, rules, mcpTools, extras, topics, status, version, language, license, pagesType, hasCI. |
| 36 | +- `type` must be `cursor-plugin` or `mcp-server`. |
| 37 | +- `skills`, `rules`, `mcpTools` must be integers. |
| 38 | +- After editing registry.json, also update: |
| 39 | + 1. The embedded registry in `docs/index.html` (inside `<script type="application/json" id="registry-data">`) |
| 40 | + 2. The tools table and aggregate stats line in `README.md` |
| 41 | + |
| 42 | +## When editing standards/ |
| 43 | + |
| 44 | +- Standards are pure Markdown documentation -- no executable code. |
| 45 | +- If adding a new standard, also add a row to `standards/README.md` and the standards table in `README.md`. |
| 46 | +- If the standard changes scaffold output expectations, update the corresponding `.j2` template in `scaffold/templates/`. |
| 47 | +- Use `docs:` commit prefix for edits, `feat:` for new standards. |
| 48 | + |
| 49 | +## When editing scaffold/ |
| 50 | + |
| 51 | +- Templates are Jinja2 (`.j2` extension) in `scaffold/templates/`. |
| 52 | +- The generator script is `scaffold/create-tool.py`. It accepts CLI args: --name, --slug, --description, --type, --mcp-server, --skills, --rules, --license, --output, --author-name, --author-email. |
| 53 | +- If adding a new template file, update `create-tool.py` to render it. |
| 54 | +- Test locally: `python scaffold/create-tool.py --name "Test" --description "Test" --mcp-server --skills 2 --rules 1 --output /tmp/test` |
| 55 | +- CI runs a dry-run test on every push. |
| 56 | + |
| 57 | +## When editing docs/ |
| 58 | + |
| 59 | +- `docs/index.html` is the catalog site entry point. |
| 60 | +- `docs/script.js` fetches `registry.json` at runtime and renders tool cards. It also has an embedded fallback copy. |
| 61 | +- `docs/style.css` is the full stylesheet -- dark theme, responsive, card layout. |
| 62 | +- No external dependencies (CDNs, frameworks). Vanilla HTML/CSS/JS only. |
| 63 | +- The `pages.yml` workflow copies `registry.json` and `assets/` into `docs/` at deploy time. |
| 64 | + |
| 65 | +## When editing workflows |
| 66 | + |
| 67 | +- `validate.yml` runs on PR and push to main. Keep checks fast. |
| 68 | +- `pages.yml` deploys to GitHub Pages. It copies registry.json into docs/ during build. |
| 69 | +- `release.yml` auto-creates releases on push to main. |
| 70 | +- `release-drafter.yml` auto-drafts release notes from merged PR titles and labels. |
| 71 | +- `stale.yml` runs weekly. Issues: 60-day stale / 14-day close. PRs: 30-day stale / 14-day close. |
| 72 | +- `codeql.yml` scans Python code for security issues weekly and on push/PR. |
| 73 | +- `dependency-review.yml` audits new dependencies in PRs. |
| 74 | +- `label-sync.yml` auto-labels PRs based on changed file paths. |
| 75 | + |
| 76 | +## Dependencies |
| 77 | + |
| 78 | +One Python dependency: `Jinja2` (in `requirements.txt`). The docs site has zero dependencies. |
0 commit comments