Skip to content

Commit 5dde12a

Browse files
fix(registry): remove unmaintainable per-tool version field
registry.json hardcoded a patch-level `version` per tool (Blender showed 0.2.3, live was 0.2.4). Tool repos auto-bump patch on every content merge, so the catalog re-staled on each tool's next content PR. Bumping a single entry by hand just resets a clock that keeps running. The field had zero consumers: it is not read by scripts/sync_from_registry.py, not displayed by docs/script.js, and not used by the drift checker (which reads agent-file standards-version markers and the meta VERSION, not the registry entry version). It only rode along passively inside the embedded registry blob in docs/index.html. Remove it everywhere so a tool's patch bump can never again create catalog drift: - drop `version` from all 12 registry.json entries - drop `version` from the validate.yml registry schema - regenerate docs/index.html (embedded blob no longer carries version) - update the schema docs (.cursorrules, AGENTS.md, CLAUDE.md) with a one-line note on why the field is gone, so it is not reintroduced Do not reintroduce patch precision. The catalog tracks tools by repo and homepage, not by version. Signed-off-by: fOuttaMyPaint <154358121+TMHSDigital@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent d9f1ef7 commit 5dde12a

7 files changed

Lines changed: 9 additions & 18 deletions

File tree

.cursorrules

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ Use conventional commits. Prefix determines changelog category:
3333

3434
## When editing registry.json
3535

36-
- Every entry needs all required fields: name, repo, slug, description, type, homepage, skills, rules, mcpTools, extras, topics, status, version, language, license, pagesType, hasCI.
36+
- Every entry needs all required fields: name, repo, slug, description, type, homepage, skills, rules, mcpTools, extras, topics, status, language, license, pagesType, hasCI.
37+
- Do not add a per-tool `version` field. It was removed because tool repos auto-bump patch on every content merge, so a catalog-pinned version re-stales on each tool's next content PR. The catalog tracks tools by repo and homepage, not by patch version.
3738
- `type` must be `cursor-plugin` or `mcp-server`.
3839
- `skills`, `rules`, `mcpTools` must be integers.
3940
- After editing registry.json, also update:

.github/workflows/validate.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ jobs:
3939
"extras": dict,
4040
"topics": list,
4141
"status": str,
42-
"version": str,
4342
"language": str,
4443
"license": str,
4544
"pagesType": str,

AGENTS.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,12 +124,13 @@ Array of tool objects. Required fields per entry:
124124
| `npm` | string | npm package name (empty string or omit if none) |
125125
| `topics` | string[] | Discovery tags |
126126
| `status` | string | `experimental`, `beta`, `active`, `maintenance`, `deprecated`, or `archived` (see [`standards/lifecycle.md`](standards/lifecycle.md)) |
127-
| `version` | string | Current semver version |
128127
| `language` | string | Primary language |
129128
| `license` | string | SPDX identifier |
130129
| `pagesType` | string | `static`, `mkdocs`, or `none` |
131130
| `hasCI` | bool | Whether the repo has CI workflows |
132131

132+
There is intentionally no per-tool `version` field. Tool repos auto-bump patch on every content merge, so a catalog-pinned patch version re-stales on each tool's next content PR (and is never rendered anywhere - the sync generator and docs site ignore it). The catalog tracks tools by repo and homepage. Do not reintroduce it.
133+
133134
### `docs/index.html`
134135

135136
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. The embedded copy is regenerated from `registry.json` by `scripts/sync_from_registry.py`. Do not edit the embedded block by hand.

CLAUDE.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@ Developer-Tools-Directory/
4747

4848
### registry.json
4949

50-
Array of tool objects. Each entry has: `name`, `repo`, `slug`, `description`, `type` (cursor-plugin | mcp-server), `homepage`, `skills`, `rules`, `mcpTools`, `extras`, `topics`, `status`, `version`, `language`, `license`, `pagesType`, `hasCI`. `status` is one of `experimental`, `beta`, `active`, `maintenance`, `deprecated`, or `archived` (see [`standards/lifecycle.md`](standards/lifecycle.md)).
50+
Array of tool objects. Each entry has: `name`, `repo`, `slug`, `description`, `type` (cursor-plugin | mcp-server), `homepage`, `skills`, `rules`, `mcpTools`, `extras`, `topics`, `status`, `language`, `license`, `pagesType`, `hasCI`. `status` is one of `experimental`, `beta`, `active`, `maintenance`, `deprecated`, or `archived` (see [`standards/lifecycle.md`](standards/lifecycle.md)).
51+
52+
There is intentionally no per-tool `version` field. Tool repos auto-bump patch on every content merge, so a catalog-pinned patch version re-stales on each tool's next content PR; the catalog tracks tools by repo and homepage instead. Do not reintroduce it.
5153

5254
When updating, run `python scripts/sync_from_registry.py` to regenerate every derived artifact. The `sync-check` CI job blocks PRs that drift.
5355

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.16.1
1+
1.16.2

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ <h3>Scaffold Generator</h3>
337337
</button>
338338

339339
<script id="registry-data" type="application/json">
340-
[{"name":"CFX Developer Tools","repo":"TMHSDigital/CFX-Developer-Tools","slug":"cfx-developer-tools","description":"AI-powered Cursor IDE plugin for FiveM and RedM resource development","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/CFX-Developer-Tools/","skills":9,"rules":6,"mcpTools":6,"extras":{"snippets":24,"templates":11,"natives":12000,"events":101},"topics":["fivem","redm","cfx","lua","game-development"],"status":"active","version":"0.7.2","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"mkdocs","hasCI":true},{"name":"Unity Developer Tools","repo":"TMHSDigital/Unity-Developer-Tools","slug":"unity-developer-tools","description":"Cursor IDE plugin for Unity game development with URP, HDRP, and Built-in render pipeline support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Unity-Developer-Tools/","skills":18,"rules":8,"mcpTools":4,"extras":{"snippets":20,"templates":5},"topics":["unity","game-development","csharp","urp","hdrp"],"status":"active","version":"1.2.1","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"mkdocs","hasCI":true},{"name":"Docker Developer Tools","repo":"TMHSDigital/Docker-Developer-Tools","slug":"docker-developer-tools","description":"Cursor IDE plugin for Docker workflows with container management, Compose, and Dockerfile support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Docker-Developer-Tools/","skills":17,"rules":10,"mcpTools":150,"extras":{},"npm":"@tmhs/docker-mcp","topics":["docker","containers","devops","docker-compose","dockerfile"],"status":"active","version":"1.0.0","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Home Lab Developer Tools","repo":"TMHSDigital/Home-Lab-Developer-Tools","slug":"home-lab-developer-tools","description":"Home lab and Raspberry Pi workflows for Cursor with Docker Compose, monitoring, DNS, networking, and security","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Home-Lab-Developer-Tools/","skills":22,"rules":11,"mcpTools":50,"extras":{},"npm":"@tmhs/homelab-mcp","topics":["homelab","raspberry-pi","infrastructure","docker-compose","monitoring"],"status":"active","version":"1.0.0","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Mobile App Developer Tools","repo":"TMHSDigital/Mobile-App-Developer-Tools","slug":"mobile-app-developer-tools","description":"Cursor plugin for mobile app development with React Native, Expo, and Flutter support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Mobile-App-Developer-Tools/","skills":43,"rules":12,"mcpTools":36,"extras":{},"npm":"@tmhs/mobile-mcp","topics":["react-native","expo","flutter","mobile-development","typescript"],"status":"active","version":"1.0.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Plaid Developer Tools","repo":"TMHSDigital/Plaid-Developer-Tools","slug":"plaid-developer-tools","description":"Cursor plugin and MCP companion for building on the Plaid API","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Plaid-Developer-Tools/","skills":17,"rules":7,"mcpTools":30,"extras":{},"topics":["plaid","fintech","banking","open-banking","plaid-api"],"status":"active","version":"1.0.0","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Monday Cursor Plugin","repo":"TMHSDigital/Monday-Cursor-Plugin","slug":"monday-cursor-plugin","description":"Cursor IDE plugin for Monday.com with boards, items, sprints, docs, dashboards, and GraphQL","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Monday-Cursor-Plugin/","skills":21,"rules":8,"mcpTools":45,"extras":{},"topics":["monday","project-management","graphql","productivity","work-management"],"status":"active","version":"1.0.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Steam Cursor Plugin","repo":"TMHSDigital/Steam-Cursor-Plugin","slug":"steam-cursor-plugin","description":"Steam and Steamworks integration for Cursor IDE for game developers, modders, and power users","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Steam-Cursor-Plugin/","skills":30,"rules":9,"mcpTools":25,"extras":{},"topics":["steam","steamworks","game-development","modding","steam-workshop"],"status":"active","version":"1.0.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Steam MCP Server","repo":"TMHSDigital/steam-mcp","slug":"steam-mcp","description":"MCP server for Steam and Steamworks APIs with store data, player stats, reviews, achievements, and workshop tools","type":"mcp-server","homepage":"https://www.npmjs.com/package/@tmhs/steam-mcp","skills":0,"rules":0,"mcpTools":25,"extras":{},"npm":"@tmhs/steam-mcp","topics":["steam","mcp-server","steamworks","game-development","npm"],"status":"active","version":"1.0.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true},{"name":"Developer Tools MCP","repo":"TMHSDigital/Developer-Tools-MCP","slug":"developer-tools-mcp","description":"MCP server providing agent-callable read and write access to the TMHSDigital developer-tools ecosystem: registry, fleet status, drift checking, and standards management","type":"mcp-server","homepage":"https://tmhsdigital.github.io/Developer-Tools-MCP/","skills":0,"rules":0,"mcpTools":7,"extras":{},"topics":["mcp-server","developer-tools","ecosystem","registry","typescript"],"status":"active","version":"0.2.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"CFX MCP","repo":"TMHSDigital/cfx-mcp","slug":"cfx-mcp","description":"MCP server providing agent-callable tools for CFX/FiveM resource development, server management, and community platform integration.","type":"mcp-server","homepage":"","skills":0,"rules":0,"mcpTools":0,"extras":{},"topics":[],"status":"experimental","version":"0.1.0","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true},{"name":"Blender Developer Tools","repo":"TMHSDigital/Blender-Developer-Tools","slug":"blender-developer-tools","description":"Cursor and Claude Code skills, rules, snippets, and templates for Blender Python add-on and scripting development","type":"cursor-plugin","homepage":"","skills":12,"rules":6,"mcpTools":0,"extras":{"snippets":17,"templates":2},"topics":["blender","python","bpy","3d","addon-development"],"status":"active","version":"0.2.3","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true}]
340+
[{"name":"CFX Developer Tools","repo":"TMHSDigital/CFX-Developer-Tools","slug":"cfx-developer-tools","description":"AI-powered Cursor IDE plugin for FiveM and RedM resource development","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/CFX-Developer-Tools/","skills":9,"rules":6,"mcpTools":6,"extras":{"snippets":24,"templates":11,"natives":12000,"events":101},"topics":["fivem","redm","cfx","lua","game-development"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"mkdocs","hasCI":true},{"name":"Unity Developer Tools","repo":"TMHSDigital/Unity-Developer-Tools","slug":"unity-developer-tools","description":"Cursor IDE plugin for Unity game development with URP, HDRP, and Built-in render pipeline support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Unity-Developer-Tools/","skills":18,"rules":8,"mcpTools":4,"extras":{"snippets":20,"templates":5},"topics":["unity","game-development","csharp","urp","hdrp"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"mkdocs","hasCI":true},{"name":"Docker Developer Tools","repo":"TMHSDigital/Docker-Developer-Tools","slug":"docker-developer-tools","description":"Cursor IDE plugin for Docker workflows with container management, Compose, and Dockerfile support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Docker-Developer-Tools/","skills":17,"rules":10,"mcpTools":150,"extras":{},"npm":"@tmhs/docker-mcp","topics":["docker","containers","devops","docker-compose","dockerfile"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Home Lab Developer Tools","repo":"TMHSDigital/Home-Lab-Developer-Tools","slug":"home-lab-developer-tools","description":"Home lab and Raspberry Pi workflows for Cursor with Docker Compose, monitoring, DNS, networking, and security","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Home-Lab-Developer-Tools/","skills":22,"rules":11,"mcpTools":50,"extras":{},"npm":"@tmhs/homelab-mcp","topics":["homelab","raspberry-pi","infrastructure","docker-compose","monitoring"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Mobile App Developer Tools","repo":"TMHSDigital/Mobile-App-Developer-Tools","slug":"mobile-app-developer-tools","description":"Cursor plugin for mobile app development with React Native, Expo, and Flutter support","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Mobile-App-Developer-Tools/","skills":43,"rules":12,"mcpTools":36,"extras":{},"npm":"@tmhs/mobile-mcp","topics":["react-native","expo","flutter","mobile-development","typescript"],"status":"active","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Plaid Developer Tools","repo":"TMHSDigital/Plaid-Developer-Tools","slug":"plaid-developer-tools","description":"Cursor plugin and MCP companion for building on the Plaid API","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Plaid-Developer-Tools/","skills":17,"rules":7,"mcpTools":30,"extras":{},"topics":["plaid","fintech","banking","open-banking","plaid-api"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Monday Cursor Plugin","repo":"TMHSDigital/Monday-Cursor-Plugin","slug":"monday-cursor-plugin","description":"Cursor IDE plugin for Monday.com with boards, items, sprints, docs, dashboards, and GraphQL","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Monday-Cursor-Plugin/","skills":21,"rules":8,"mcpTools":45,"extras":{},"topics":["monday","project-management","graphql","productivity","work-management"],"status":"active","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Steam Cursor Plugin","repo":"TMHSDigital/Steam-Cursor-Plugin","slug":"steam-cursor-plugin","description":"Steam and Steamworks integration for Cursor IDE for game developers, modders, and power users","type":"cursor-plugin","homepage":"https://tmhsdigital.github.io/Steam-Cursor-Plugin/","skills":30,"rules":9,"mcpTools":25,"extras":{},"topics":["steam","steamworks","game-development","modding","steam-workshop"],"status":"active","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"Steam MCP Server","repo":"TMHSDigital/steam-mcp","slug":"steam-mcp","description":"MCP server for Steam and Steamworks APIs with store data, player stats, reviews, achievements, and workshop tools","type":"mcp-server","homepage":"https://www.npmjs.com/package/@tmhs/steam-mcp","skills":0,"rules":0,"mcpTools":25,"extras":{},"npm":"@tmhs/steam-mcp","topics":["steam","mcp-server","steamworks","game-development","npm"],"status":"active","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true},{"name":"Developer Tools MCP","repo":"TMHSDigital/Developer-Tools-MCP","slug":"developer-tools-mcp","description":"MCP server providing agent-callable read and write access to the TMHSDigital developer-tools ecosystem: registry, fleet status, drift checking, and standards management","type":"mcp-server","homepage":"https://tmhsdigital.github.io/Developer-Tools-MCP/","skills":0,"rules":0,"mcpTools":7,"extras":{},"topics":["mcp-server","developer-tools","ecosystem","registry","typescript"],"status":"active","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"static","hasCI":true},{"name":"CFX MCP","repo":"TMHSDigital/cfx-mcp","slug":"cfx-mcp","description":"MCP server providing agent-callable tools for CFX/FiveM resource development, server management, and community platform integration.","type":"mcp-server","homepage":"","skills":0,"rules":0,"mcpTools":0,"extras":{},"topics":[],"status":"experimental","language":"TypeScript","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true},{"name":"Blender Developer Tools","repo":"TMHSDigital/Blender-Developer-Tools","slug":"blender-developer-tools","description":"Cursor and Claude Code skills, rules, snippets, and templates for Blender Python add-on and scripting development","type":"cursor-plugin","homepage":"","skills":12,"rules":6,"mcpTools":0,"extras":{"snippets":17,"templates":2},"topics":["blender","python","bpy","3d","addon-development"],"status":"active","language":"Python","license":"CC-BY-NC-ND-4.0","pagesType":"none","hasCI":true}]
341341
</script>
342342

343343
<script id="search-index" type="application/json">

registry.json

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
"game-development"
2424
],
2525
"status": "active",
26-
"version": "0.7.2",
2726
"language": "Python",
2827
"license": "CC-BY-NC-ND-4.0",
2928
"pagesType": "mkdocs",
@@ -51,7 +50,6 @@
5150
"hdrp"
5251
],
5352
"status": "active",
54-
"version": "1.2.1",
5553
"language": "Python",
5654
"license": "CC-BY-NC-ND-4.0",
5755
"pagesType": "mkdocs",
@@ -77,7 +75,6 @@
7775
"dockerfile"
7876
],
7977
"status": "active",
80-
"version": "1.0.0",
8178
"language": "Python",
8279
"license": "CC-BY-NC-ND-4.0",
8380
"pagesType": "static",
@@ -103,7 +100,6 @@
103100
"monitoring"
104101
],
105102
"status": "active",
106-
"version": "1.0.0",
107103
"language": "Python",
108104
"license": "CC-BY-NC-ND-4.0",
109105
"pagesType": "static",
@@ -129,7 +125,6 @@
129125
"typescript"
130126
],
131127
"status": "active",
132-
"version": "1.0.0",
133128
"language": "TypeScript",
134129
"license": "CC-BY-NC-ND-4.0",
135130
"pagesType": "static",
@@ -154,7 +149,6 @@
154149
"plaid-api"
155150
],
156151
"status": "active",
157-
"version": "1.0.0",
158152
"language": "Python",
159153
"license": "CC-BY-NC-ND-4.0",
160154
"pagesType": "static",
@@ -179,7 +173,6 @@
179173
"work-management"
180174
],
181175
"status": "active",
182-
"version": "1.0.0",
183176
"language": "TypeScript",
184177
"license": "CC-BY-NC-ND-4.0",
185178
"pagesType": "static",
@@ -204,7 +197,6 @@
204197
"steam-workshop"
205198
],
206199
"status": "active",
207-
"version": "1.0.0",
208200
"language": "TypeScript",
209201
"license": "CC-BY-NC-ND-4.0",
210202
"pagesType": "static",
@@ -230,7 +222,6 @@
230222
"npm"
231223
],
232224
"status": "active",
233-
"version": "1.0.0",
234225
"language": "TypeScript",
235226
"license": "CC-BY-NC-ND-4.0",
236227
"pagesType": "none",
@@ -255,7 +246,6 @@
255246
"typescript"
256247
],
257248
"status": "active",
258-
"version": "0.2.0",
259249
"language": "TypeScript",
260250
"license": "CC-BY-NC-ND-4.0",
261251
"pagesType": "static",
@@ -274,7 +264,6 @@
274264
"extras": {},
275265
"topics": [],
276266
"status": "experimental",
277-
"version": "0.1.0",
278267
"language": "TypeScript",
279268
"license": "CC-BY-NC-ND-4.0",
280269
"pagesType": "none",
@@ -302,7 +291,6 @@
302291
"addon-development"
303292
],
304293
"status": "active",
305-
"version": "0.2.3",
306294
"language": "Python",
307295
"license": "CC-BY-NC-ND-4.0",
308296
"pagesType": "none",

0 commit comments

Comments
 (0)