fix(registry): remove unmaintainable per-tool version field#73
Merged
Conversation
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>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PART A (this PR) - stop the registry
versionfield from re-driftingregistry.jsonhardcoded a patch-levelversionper tool (Blender showed0.2.3, live was0.2.4). Tool repos auto-bump patch on every content merge, so the catalog re-staled on each tool's next content PR. Hand-bumping one entry just resets a clock that keeps running.Consumption check (step 1). The field had zero consumers:
scripts/sync_from_registry.py(no reference),docs/script.js(the card renderer never reads it),standards-versionmarkers and the metaVERSION, never the registry entryversion).validate.yml) and rode along passively inside the embedded registry blob indocs/index.html, but was never rendered. The README tools table has no version column.Fix (step 2) - removed entirely, uniformly across all 12 entries:
versionfrom everyregistry.jsonentry,versionfrom thevalidate.ymlregistry schema,docs/index.html(embedded blob no longer carriesversion;sync_from_registry.py --checkclean),.cursorrules,AGENTS.md, andCLAUDE.mdso it is not reintroduced.A tool repo's patch bump can no longer create catalog drift. Patch precision is not reintroduced anywhere.
PART B (already applied via gh, not files) - gated auto-merge
Auto-merge was disabled, so catalog PRs stalled on manual merge. Enabled it gated (waits for green; does not merge instantly). No codified settings file exists in the repo, so this was applied via
ghand is recorded here for reproducibility.Trigger enumeration (confirmed from each workflow
on:block):validate.yml(no path filter) ->Validate registry.json,Validate docs site,Validate scaffold,Registry sync check,Public-repo safety scan,feat/fix commits require VERSION bump,Run drift_check tests;codeql.yml(no path filter) ->CodeQL;dependency-review.yml->Audit dependencies;label-sync.yml->Auto-label by path.Drift check(drift-check.ymlpull_requestis path-filtered to checker code; it does not run on most PRs - requiring it would hang every PR),Sync(sync.ymlis push-only, opens a follow-up PR),Release/Release Drafter/Deploy GitHub Pages(push/post-merge/path-filtered).Commands applied:
# Enable repo-level auto-merge gh api -X PATCH repos/TMHSDigital/Developer-Tools-Directory -f allow_auto_merge=trueThe existing
main protectionruleset (id15515943, enforcementactive) already requires exactly the correct gateable set and excludes the un-gateable ones, so no required-check change was needed:Validate registry.json,Validate docs site,Validate scaffold,Registry sync check,Public-repo safety scan,feat/fix commits require VERSION bump,CodeQL. With auto-merge on, GitHub merges only after these report green = "merge once green".Deliberate deviation from the brief: no
github-actions[bot]bypass added. The brief's deadlock rationale ("release.yml pushes the [skip ci] version-bump commit directly to main") is the tool-repo model. This meta-repo is VERSION-file-driven:release.ymlpushes only tags (annotatedvX.Y.Z+ floatingv1/v1.16), never a commit tomain; the human PR bumpsVERSION. Branch rulesets do not gate tag refs, andsync.ymlopens a PR rather than pushing. So no bot direct-push to a gated ref exists and no bypass is required; adding one would falsify the documented empty-bypass security invariant for zero benefit. The post-mergeReleaserun (tag push succeeding under the active ruleset with empty bypass) is the live proof the pipeline is not deadlocked.This PR doubles as the live test of gated auto-merge: it must wait for green (gating works) and must not hang (required-check names all report on PRs).
Test plan
python scripts/sync_from_registry.py --checkclean.pytest tests/green (212 passed, 1 skipped).registry.jsondiff is exactly 12 deletions (onlyversionlines); embeddeddocs/index.htmlblob no longer containsversion.VERSION1.16.1 -> 1.16.2 (version-bump-check guard).Releasecutsv1.16.2(tag push proves pipeline not deadlocked); main HEAD green across Validate, Drift check, Sync, CodeQL, Pages.