From f4ebd33ab68c1fd3fd023f1e4a7f380ecef1dd6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Wed, 6 May 2026 19:11:34 -0500 Subject: [PATCH 1/9] feat(catalog): add Spec Kit Schedule (schedule) community extension CP-SAT scheduler for spec-kit projects with multi-agent task optimization. Adds catalog entry for v0.5.2 release. Pre-flight verification: - archive/refs/tags/v0.5.2.zip resolves (HTTP 200, 718322 bytes, SHA-256 00d4dab1df680e5888e0d0e861eb4696ace00661d40669bf719a75dc379b40b5) - extension.yml schema_version 1.0, id 'schedule', 3 commands (speckit.schedule.run, speckit.schedule.portfolio, speckit.schedule.visualize) - 566 tests passing on Ubuntu 3.10/3.11/3.12 + macOS 3.12 (all blocking) - 92.51% line coverage, mypy --strict on 28 modules - Sigstore attestations via attest-build-provenance@v2 (gh attestation verify exit 0 confirmed) - 4 worked examples + replan demo runnable via bash bin/run-examples.sh License: MIT speckit_version: >=0.4.0 --- extensions/catalog.community.json | 32 +++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index b9d72ce6e4..f8adb7ec19 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2116,6 +2116,38 @@ "created_at": "2026-04-20T00:00:00Z", "updated_at": "2026-04-20T00:00:00Z" }, + "schedule": { + "name": "Spec Kit Schedule — CP-SAT Agent Orchestrator", + "id": "schedule", + "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", + "author": "Julio César Franco Ardila", + "version": "0.5.2", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.2.zip", + "repository": "https://github.com/jfranc38/spec-kit-schedule", + "homepage": "https://github.com/jfranc38/spec-kit-schedule", + "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", + "changelog": "https://github.com/jfranc38/spec-kit-schedule/blob/main/CHANGELOG.md", + "license": "MIT", + "requires": { + "speckit_version": ">=0.4.0" + }, + "provides": { + "commands": 3, + "hooks": 0 + }, + "tags": [ + "scheduling", + "optimization", + "multi-agent", + "cp-sat", + "operations-research" + ], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-05-06T22:35:00Z", + "updated_at": "2026-05-06T22:35:00Z" + }, "scope": { "name": "Spec Scope", "id": "scope", From 2e4a027ce7510836162d674a21e498803cfaec4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Wed, 6 May 2026 19:29:48 -0500 Subject: [PATCH 2/9] fix(catalog): update Spec Kit Schedule entry to v0.5.3 v0.5.2 had two real-world install bugs caught when a user tried the documented commands: 1. README/INSTALL showed 'specify extension add --from URL' (missing the EXTENSION positional arg). The canonical form is 'specify extension add schedule --from URL'. Fixed in v0.5.3. 2. Release zip was ~5x bigger than peer extensions due to dev cruft (.github/, tests/, benchmarks/, build metadata). Added .gitattributes export-ignore in v0.5.3, dropping the zip from 718 KB to 590 KB. v0.5.3 archive verified HTTP 200, sigstore attestations active. --- extensions/catalog.community.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index f8adb7ec19..6e8e8021e7 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.5.2", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.2.zip", + "version": "0.5.3", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.3.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2146,7 +2146,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-05-06T22:35:00Z", - "updated_at": "2026-05-06T22:35:00Z" + "updated_at": "2026-05-06T23:30:00Z" }, "scope": { "name": "Spec Scope", From 115319509bb883cf4155e60b691568008592e402 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Wed, 6 May 2026 19:45:53 -0500 Subject: [PATCH 3/9] fix(catalog): bump Spec Kit Schedule entry to v0.5.4 Adds an opt-in after_tasks hook so users get prompted to run the scheduler immediately after /speckit.tasks, without forcing it. Mirrors the canonical pattern used by the bundled 'git' extension. --- extensions/catalog.community.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 6e8e8021e7..d023156238 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.5.3", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.3.zip", + "version": "0.5.4", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.4.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2133,7 +2133,7 @@ }, "provides": { "commands": 3, - "hooks": 0 + "hooks": 1 }, "tags": [ "scheduling", @@ -2146,7 +2146,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-05-06T22:35:00Z", - "updated_at": "2026-05-06T23:30:00Z" + "updated_at": "2026-05-07T00:35:00Z" }, "scope": { "name": "Spec Scope", From 56252ce29be11eeaeb84d50bb34f409ed7bc6e32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Wed, 6 May 2026 19:57:26 -0500 Subject: [PATCH 4/9] fix(catalog): bump Spec Kit Schedule entry to v0.5.5 Documents the after_tasks hook in README and rewrites the /speckit.schedule.portfolio command to autodetect the project's tech stack via solver.autodetect, then refine interactively against the matching recipe in docs/portfolio-design.md, instead of starting from a blank slate. --- extensions/catalog.community.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index d023156238..3ef47f10a5 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.5.4", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.4.zip", + "version": "0.5.5", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.5.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2146,7 +2146,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-05-06T22:35:00Z", - "updated_at": "2026-05-07T00:35:00Z" + "updated_at": "2026-05-07T00:55:00Z" }, "scope": { "name": "Spec Scope", From c61622ba0345f2cf31fe097ca442ef5bb6c5087c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Thu, 7 May 2026 08:04:28 -0500 Subject: [PATCH 5/9] fix(catalog): bump Spec Kit Schedule entry to v0.6.0 State now encapsulated under .specify/, /speckit.schedule.run is idempotent with auto-bootstrap, and portfolio detection is AI-aware (reads .specify/integration.json and discovers the user's fleet from the canonical location for whichever spec-kit AI assistant they chose: claude, copilot, cursor-agent, gemini, or any of the other 26 supported integrations). --- extensions/catalog.community.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 3ef47f10a5..9a1463d08f 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.5.5", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.5.5.zip", + "version": "0.6.0", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.6.0.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2146,7 +2146,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-05-06T22:35:00Z", - "updated_at": "2026-05-07T00:55:00Z" + "updated_at": "2026-05-07T08:05:00Z" }, "scope": { "name": "Spec Scope", From c896b9aab58205cf60e094ba29541e0e215b20be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Thu, 7 May 2026 12:22:26 -0500 Subject: [PATCH 6/9] fix(catalog): bump Spec Kit Schedule entry to v0.6.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-AI portfolio templates with verified May 2026 GA models (gpt-5.5 flagship, claude-opus-4-7, gemini-2.5-flash). Critical price unit fix (cost_aware reported $ figures 1000× inflated in v0.6.0). Plus calibration feedback loop and inline summary. --- extensions/catalog.community.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 9a1463d08f..73a58cb694 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.6.0", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.6.0.zip", + "version": "0.6.1", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.6.1.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2146,7 +2146,7 @@ "downloads": 0, "stars": 0, "created_at": "2026-05-06T22:35:00Z", - "updated_at": "2026-05-07T08:05:00Z" + "updated_at": "2026-05-07T17:25:00Z" }, "scope": { "name": "Spec Scope", From ed087af79e42e88c7ec0162803413a7fd5844c31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Thu, 7 May 2026 12:27:47 -0500 Subject: [PATCH 7/9] fix(readme): add Spec Kit Schedule row to Community Extensions table Per Copilot review on PR #2473: the publishing guide requires an accepted submission to update both extensions/catalog.community.json AND the root README's Community Extensions table. Without the README row the extension wouldn't appear in the primary browsable list. Inserted alphabetically between 'Spec Diagram' and 'Spec Orchestrator'. Category: process. Effect: Read+Write. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 79940074e4..196b19b2bc 100644 --- a/README.md +++ b/README.md @@ -267,6 +267,7 @@ The following community-contributed extensions are available in [`catalog.commun | Spec Reference Loader | Reads the ## References section from the feature spec and loads only the listed docs into context | `docs` | Read-only | [spec-kit-spec-reference-loader](https://github.com/KevinBrown5280/spec-kit-spec-reference-loader) | | Spec Critique Extension | Dual-lens critical review of spec and plan from product strategy and engineering risk perspectives | `docs` | Read-only | [spec-kit-critique](https://github.com/arunt14/spec-kit-critique) | | Spec Diagram | Auto-generate Mermaid diagrams of SDD workflow state, feature progress, and task dependencies | `visibility` | Read-only | [spec-kit-diagram-](https://github.com/Quratulain-bilal/spec-kit-diagram-) | +| Spec Kit Schedule | Optimal multi-agent task scheduling via CP-SAT — DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output | `process` | Read+Write | [spec-kit-schedule](https://github.com/jfranc38/spec-kit-schedule) | | Spec Orchestrator | Cross-feature orchestration — track state, select tasks, and detect conflicts across parallel specs | `process` | Read-only | [spec-kit-orchestrator](https://github.com/Quratulain-bilal/spec-kit-orchestrator) | | Spec Refine | Update specs in-place, propagate changes to plan and tasks, and diff impact across artifacts | `process` | Read+Write | [spec-kit-refine](https://github.com/Quratulain-bilal/spec-kit-refine) | | Spec Scope | Effort estimation and scope tracking — estimate work, detect creep, and budget time per phase | `process` | Read-only | [spec-kit-scope-](https://github.com/Quratulain-bilal/spec-kit-scope-) | From ffc08dd17537cad5ff3bbebc9dff18e26bf49ab5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Thu, 7 May 2026 13:44:50 -0500 Subject: [PATCH 8/9] =?UTF-8?q?fix(catalog):=20provides.commands=203?= =?UTF-8?q?=E2=86=924=20(schedule=20only)=20+=20bump=20top-level=20updated?= =?UTF-8?q?=5Fat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Surgical edit responding to two Copilot review nits on PR #2473. Previous attempt used str.replace too broadly and was reverted — this version uses unique anchors to mutate only the schedule entry and the top-level updated_at field. 1. extensions/catalog.community.json schedule entry had provides.commands: 3, but the extension exposes 4 commands (run, portfolio, visualize, calibrate — calibrate was added in v0.6.0 Build 2 / calibration feedback loop). 2. Top-level catalog updated_at was 2026-05-06T22:28:55Z but per-entry updated_at for our schedule entry is 2026-05-07. Since this PR modifies the catalog, the top-level timestamp advances too. --- extensions/catalog.community.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 73a58cb694..f73826bbf6 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "updated_at": "2026-05-07T15:37:14Z", + "updated_at": "2026-05-07T17:30:00Z", "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json", "extensions": { "aide": { @@ -2132,7 +2132,7 @@ "speckit_version": ">=0.4.0" }, "provides": { - "commands": 3, + "commands": 4, "hooks": 1 }, "tags": [ From 0a3a11ee44e13374feef0fb5e7d93451be40b2a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20C=C3=A9sar=20Franco=20Ardila?= Date: Thu, 7 May 2026 15:06:51 -0500 Subject: [PATCH 9/9] fix(catalog): bump Spec Kit Schedule entry to v0.6.2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds /speckit.schedule.status (5th command) — self-diagnose installation state, distinguishes 'expected-missing' (will bootstrap automatically) from 'missing' (real problem). Closes the audit-tool false-alarm gap where schedule-config.yml absence post-install was misread as broken state. --- extensions/catalog.community.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index f73826bbf6..f360e87a97 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1,6 +1,6 @@ { "schema_version": "1.0", - "updated_at": "2026-05-07T17:30:00Z", + "updated_at": "2026-05-07T20:05:00Z", "catalog_url": "https://raw.githubusercontent.com/github/spec-kit/main/extensions/catalog.community.json", "extensions": { "aide": { @@ -2121,8 +2121,8 @@ "id": "schedule", "description": "Optimal multi-agent task scheduling via CP-SAT solver with DAG precedence, hallucination-aware caps, file-conflict avoidance, stochastic durations, replanning, and interactive HTML output", "author": "Julio César Franco Ardila", - "version": "0.6.1", - "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.6.1.zip", + "version": "0.6.2", + "download_url": "https://github.com/jfranc38/spec-kit-schedule/archive/refs/tags/v0.6.2.zip", "repository": "https://github.com/jfranc38/spec-kit-schedule", "homepage": "https://github.com/jfranc38/spec-kit-schedule", "documentation": "https://github.com/jfranc38/spec-kit-schedule/blob/main/README.md", @@ -2132,7 +2132,7 @@ "speckit_version": ">=0.4.0" }, "provides": { - "commands": 4, + "commands": 5, "hooks": 1 }, "tags": [