From 4e6caf224633367ab2e1e9a34e7f553b1861de2a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2026 18:51:36 +0000 Subject: [PATCH 1/2] Add SpecJudge extension to community catalog Add specjudge extension submitted by @JoaquinRuiz to: - extensions/catalog.community.json (alphabetical order) - docs/community/extensions.md community extensions table Closes #4068 Assisted-by: GitHub Copilot (model: claude-sonnet-4.6, autonomous) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- docs/community/extensions.md | 1 + extensions/catalog.community.json | 189 +++++++++++++++++++++++++----- 2 files changed, 162 insertions(+), 28 deletions(-) diff --git a/docs/community/extensions.md b/docs/community/extensions.md index e77c40bcfa..00f1cd6589 100644 --- a/docs/community/extensions.md +++ b/docs/community/extensions.md @@ -145,6 +145,7 @@ The following community-contributed extensions are available in [`catalog.commun | Spec Validate | Comprehension validation, review gating, and approval state for spec-kit artifacts — staged quizzes, peer review SLA, and a hard gate before /speckit.implement | `process` | Read+Write | [spec-kit-spec-validate](https://github.com/aeltayeb/spec-kit-spec-validate) | | Spec-Kit BDD | ATDD/BDD extension: convert specs to Gherkin scenarios, scaffold step definitions, and verify acceptance test coverage | `process` | Read+Write | [spec-kit-bdd](https://github.com/RSginer/spec-kit-bdd) | | Spec2Cloud | Spec-driven workflow tuned for shipping to Azure | `process` | Read+Write | [spec2cloud](https://github.com/Azure-Samples/Spec2Cloud) | +| SpecJudge — right-size the model before you implement | Recommends the model that fits your tasks, citing the spec fragment behind every level. | `process` | Read-only | [SpecJudge](https://github.com/JoaquinRuiz/SpecJudge) | | SpecKit Companion | Live spec-driven progress — lifecycle capture, status, resume, and a turbo pipeline profile | `visibility` | Read+Write | [speckit-companion](https://github.com/alfredoperez/speckit-companion) | | SpecKit Grill Me | Exhaustively resolve specification ambiguities and decisions before planning | `process` | Read+Write | [speckit-grill-me](https://github.com/yoshi1220/speckit-grill-me) | | SpecTest | Auto-generate test scaffolds from spec criteria, map coverage, and find untested requirements | `code` | Read+Write | [spec-kit-spectest](https://github.com/Quratulain-bilal/spec-kit-spectest) | diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index b35f1c849d..2ca6d09d82 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "updated_at": "2026-08-11T00:00:00Z", + "updated_at": "2026-08-12T00:00:00Z", "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json", "extensions": { "adrkit": { @@ -19,7 +19,13 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.13.0,<0.16.0", - "tools": [{ "name": "adr", "version": ">=0.3.0", "required": true }] + "tools": [ + { + "name": "adr", + "version": ">=0.3.0", + "required": true + } + ] }, "provides": { "commands": 3, @@ -542,8 +548,14 @@ "requires": { "speckit_version": ">=0.10.0", "tools": [ - { "name": "bash", "required": false }, - { "name": "git", "required": false } + { + "name": "bash", + "required": false + }, + { + "name": "git", + "required": false + } ] }, "provides": { @@ -822,7 +834,12 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.11.9", - "tools": [{ "name": "git", "required": false }] + "tools": [ + { + "name": "git", + "required": false + } + ] }, "provides": { "commands": 5, @@ -991,7 +1008,10 @@ "requires": { "speckit_version": ">=0.9.5", "tools": [ - { "name": "python3", "required": false } + { + "name": "python3", + "required": false + } ] }, "provides": { @@ -1484,11 +1504,26 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { "name": "git", "required": true }, - { "name": "bash", "required": false }, - { "name": "curl", "required": false }, - { "name": "jq", "required": false }, - { "name": "pwsh", "required": false } + { + "name": "git", + "required": true + }, + { + "name": "bash", + "required": false + }, + { + "name": "curl", + "required": false + }, + { + "name": "jq", + "required": false + }, + { + "name": "pwsh", + "required": false + } ] }, "provides": { @@ -1525,7 +1560,11 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { "name": "python3", "version": ">=3.8", "required": true } + { + "name": "python3", + "version": ">=3.8", + "required": true + } ] }, "provides": { @@ -1831,7 +1870,12 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.16.2", - "tools": [{ "name": "bash", "required": true }] + "tools": [ + { + "name": "bash", + "required": true + } + ] }, "provides": { "commands": 1, @@ -2117,12 +2161,31 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { "name": "bash", "version": ">=4.4", "required": true }, - { "name": "git", "required": true }, - { "name": "curl", "required": true }, - { "name": "jq", "required": true }, - { "name": "gitleaks", "required": false }, - { "name": "trufflehog", "required": false } + { + "name": "bash", + "version": ">=4.4", + "required": true + }, + { + "name": "git", + "required": true + }, + { + "name": "curl", + "required": true + }, + { + "name": "jq", + "required": true + }, + { + "name": "gitleaks", + "required": false + }, + { + "name": "trufflehog", + "required": false + } ] }, "provides": { @@ -2260,7 +2323,12 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.13.0,<1.0.0", - "tools": [{ "name": "linear-mcp", "required": true }] + "tools": [ + { + "name": "linear-mcp", + "required": true + } + ] }, "provides": { "commands": 5, @@ -2681,7 +2749,10 @@ "requires": { "speckit_version": ">=0.2.0", "tools": [ - { "name": "memsearch", "required": false } + { + "name": "memsearch", + "required": false + } ] }, "provides": { @@ -4148,6 +4219,46 @@ "created_at": "2026-04-30T00:00:00Z", "updated_at": "2026-04-30T00:00:00Z" }, + "specjudge": { + "name": "SpecJudge — right-size the model before you implement", + "id": "specjudge", + "description": "Recommends the model that fits your tasks, citing the spec fragment behind every level.", + "author": "Joaquín Ruiz", + "version": "0.5.4", + "download_url": "https://github.com/JoaquinRuiz/SpecJudge/releases/download/v0.5.4/spec-kit-specjudge.zip", + "repository": "https://github.com/JoaquinRuiz/SpecJudge", + "homepage": "https://github.com/JoaquinRuiz/SpecJudge", + "documentation": "https://github.com/JoaquinRuiz/SpecJudge/blob/main/extensions/spec-kit/README.md", + "changelog": "https://github.com/JoaquinRuiz/SpecJudge/blob/main/extensions/spec-kit/CHANGELOG.md", + "license": "MIT", + "category": "process", + "effect": "read-only", + "requires": { + "speckit_version": ">=0.13.0", + "tools": [ + { + "name": "specjudge", + "version": ">=0.5.0", + "required": true + } + ] + }, + "provides": { + "commands": 1, + "hooks": 1 + }, + "tags": [ + "cost", + "model-selection", + "local-first", + "ollama" + ], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-08-12T00:00:00Z", + "updated_at": "2026-08-12T00:00:00Z" + }, "speckit-superpowers-bridge": { "name": "Superpowers Implementation Bridge", "id": "speckit-superpowers-bridge", @@ -4537,8 +4648,14 @@ "requires": { "speckit_version": ">=0.2.0", "tools": [ - { "name": "gh", "required": true }, - { "name": "python3", "required": true } + { + "name": "gh", + "required": true + }, + { + "name": "python3", + "required": true + } ] }, "provides": { @@ -4907,11 +5024,27 @@ "requires": { "speckit_version": ">=0.10.0", "tools": [ - { "name": "rtk", "required": false }, - { "name": "headroom", "required": false }, - { "name": "token-router", "required": false }, - { "name": "ollama", "required": false }, - { "name": "python", "version": ">=3.10", "required": false } + { + "name": "rtk", + "required": false + }, + { + "name": "headroom", + "required": false + }, + { + "name": "token-router", + "required": false + }, + { + "name": "ollama", + "required": false + }, + { + "name": "python", + "version": ">=3.10", + "required": false + } ] }, "provides": { From fb66883c62ff203ea12c3a17fdae89ef40431d5f Mon Sep 17 00:00:00 2001 From: Manfred Riem <15701806+mnriem@users.noreply.github.com> Date: Wed, 12 Aug 2026 17:55:09 -0500 Subject: [PATCH 2/2] Revert unrelated formatting-only edits in community catalog Restore the compact single-line `tools` array formatting for existing extensions that were incidentally expanded, keeping the diff scoped to the SpecJudge addition and the catalog `updated_at` bump. Assisted-by: GitHub Copilot (model: Claude Opus 4.8, autonomous) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- extensions/catalog.community.json | 155 ++++++------------------------ 1 file changed, 28 insertions(+), 127 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 2ca6d09d82..f22f7ae950 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -19,13 +19,7 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.13.0,<0.16.0", - "tools": [ - { - "name": "adr", - "version": ">=0.3.0", - "required": true - } - ] + "tools": [{ "name": "adr", "version": ">=0.3.0", "required": true }] }, "provides": { "commands": 3, @@ -548,14 +542,8 @@ "requires": { "speckit_version": ">=0.10.0", "tools": [ - { - "name": "bash", - "required": false - }, - { - "name": "git", - "required": false - } + { "name": "bash", "required": false }, + { "name": "git", "required": false } ] }, "provides": { @@ -834,12 +822,7 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.11.9", - "tools": [ - { - "name": "git", - "required": false - } - ] + "tools": [{ "name": "git", "required": false }] }, "provides": { "commands": 5, @@ -1008,10 +991,7 @@ "requires": { "speckit_version": ">=0.9.5", "tools": [ - { - "name": "python3", - "required": false - } + { "name": "python3", "required": false } ] }, "provides": { @@ -1504,26 +1484,11 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { - "name": "git", - "required": true - }, - { - "name": "bash", - "required": false - }, - { - "name": "curl", - "required": false - }, - { - "name": "jq", - "required": false - }, - { - "name": "pwsh", - "required": false - } + { "name": "git", "required": true }, + { "name": "bash", "required": false }, + { "name": "curl", "required": false }, + { "name": "jq", "required": false }, + { "name": "pwsh", "required": false } ] }, "provides": { @@ -1560,11 +1525,7 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { - "name": "python3", - "version": ">=3.8", - "required": true - } + { "name": "python3", "version": ">=3.8", "required": true } ] }, "provides": { @@ -1870,12 +1831,7 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.16.2", - "tools": [ - { - "name": "bash", - "required": true - } - ] + "tools": [{ "name": "bash", "required": true }] }, "provides": { "commands": 1, @@ -2161,31 +2117,12 @@ "requires": { "speckit_version": ">=0.1.0", "tools": [ - { - "name": "bash", - "version": ">=4.4", - "required": true - }, - { - "name": "git", - "required": true - }, - { - "name": "curl", - "required": true - }, - { - "name": "jq", - "required": true - }, - { - "name": "gitleaks", - "required": false - }, - { - "name": "trufflehog", - "required": false - } + { "name": "bash", "version": ">=4.4", "required": true }, + { "name": "git", "required": true }, + { "name": "curl", "required": true }, + { "name": "jq", "required": true }, + { "name": "gitleaks", "required": false }, + { "name": "trufflehog", "required": false } ] }, "provides": { @@ -2323,12 +2260,7 @@ "effect": "read-write", "requires": { "speckit_version": ">=0.13.0,<1.0.0", - "tools": [ - { - "name": "linear-mcp", - "required": true - } - ] + "tools": [{ "name": "linear-mcp", "required": true }] }, "provides": { "commands": 5, @@ -2749,10 +2681,7 @@ "requires": { "speckit_version": ">=0.2.0", "tools": [ - { - "name": "memsearch", - "required": false - } + { "name": "memsearch", "required": false } ] }, "provides": { @@ -4235,13 +4164,7 @@ "effect": "read-only", "requires": { "speckit_version": ">=0.13.0", - "tools": [ - { - "name": "specjudge", - "version": ">=0.5.0", - "required": true - } - ] + "tools": [{ "name": "specjudge", "version": ">=0.5.0", "required": true }] }, "provides": { "commands": 1, @@ -4648,14 +4571,8 @@ "requires": { "speckit_version": ">=0.2.0", "tools": [ - { - "name": "gh", - "required": true - }, - { - "name": "python3", - "required": true - } + { "name": "gh", "required": true }, + { "name": "python3", "required": true } ] }, "provides": { @@ -5024,27 +4941,11 @@ "requires": { "speckit_version": ">=0.10.0", "tools": [ - { - "name": "rtk", - "required": false - }, - { - "name": "headroom", - "required": false - }, - { - "name": "token-router", - "required": false - }, - { - "name": "ollama", - "required": false - }, - { - "name": "python", - "version": ">=3.10", - "required": false - } + { "name": "rtk", "required": false }, + { "name": "headroom", "required": false }, + { "name": "token-router", "required": false }, + { "name": "ollama", "required": false }, + { "name": "python", "version": ">=3.10", "required": false } ] }, "provides": {