From 45b88f62be030722daf8ba7b7224e1ae36c5452f Mon Sep 17 00:00:00 2001 From: Ash Brener Date: Wed, 10 Jun 2026 14:43:12 +0200 Subject: [PATCH] chore(catalog): add Jira Integration (Sync Engine) extension (#2895) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore(catalog): add Jira Integration (Sync Engine) extension Adds a new community-catalog listing for `spec-kit-jira-sync` (ashbrener/spec-kit-jira-sync), a reconcile-engine bridge that mirrors spec-kit specs into Jira (Epic per repo, Story per spec, Subtask per phase): idempotent, drift-aware, fail-closed. Catalog id is `jira-sync` because the `jira` id is already taken by an unrelated extension; display name "Jira Integration (Sync Engine)" disambiguates from the existing "Jira Integration" listing. Touches the two catalog surfaces: 1. extensions/catalog.community.json - the new "jira-sync" entry, inserted after the existing "jira" entry. Field shape matches the sibling "linear" entry exactly. 2. docs/community/extensions.md - the table row, after the existing Jira Integration row. JSON validated; diff is the single entry + the one table row. * catalog(jira-sync): neutral capability-focused description (address Copilot review) Drop the comparative/absolute framing ('A real …', 'never corrupts your board') flagged by Copilot; keep the factual, tested capability descriptors (idempotent, drift-aware, fail-closed). Applies to both the catalog entry and the docs table row. * chore(catalog): bump jira-sync to v0.2.0 (re-mode + engine unification) * fix(catalog): jira-sync download_url .tar.gz -> .zip (installer is ZIP-only) The spec-kit extension installer saves {id}-{version}.zip and extracts via zipfile.ZipFile (src/specify_cli/extensions.py) — a .tar.gz asset downloads but fails extraction. Matches every other catalog entry's /archive/refs/tags/vX.zip convention. Addresses the Copilot review on PR #2895. --------- Co-authored-by: Ash Brener --- docs/community/extensions.md | 1 + extensions/catalog.community.json | 33 +++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/docs/community/extensions.md b/docs/community/extensions.md index e111338e0..4fee0af76 100644 --- a/docs/community/extensions.md +++ b/docs/community/extensions.md @@ -55,6 +55,7 @@ The following community-contributed extensions are available in [`catalog.commun | Intelligent Agent Orchestrator | Cross-catalog agent discovery and intelligent prompt-to-command routing | `process` | Read+Write | [spec-kit-orchestrator](https://github.com/pragya247/spec-kit-orchestrator) | | Iterate | Iterate on spec documents with a two-phase define-and-apply workflow — refine specs mid-implementation and go straight back to building | `docs` | Read+Write | [spec-kit-iterate](https://github.com/imviancagrace/spec-kit-iterate) | | Jira Integration | Create Jira Epics, Stories, and Issues from spec-kit specifications and task breakdowns with configurable hierarchy and custom field support | `integration` | Read+Write | [spec-kit-jira](https://github.com/mbachorik/spec-kit-jira) | +| Jira Integration (Sync Engine) | Idempotent, drift-aware, fail-closed reconcile engine mirroring spec-kit specs into Jira (Epic per repo, Story per spec, Subtask per phase) | `integration` | Read+Write | [spec-kit-jira-sync](https://github.com/ashbrener/spec-kit-jira-sync) | | Learning Extension | Generate educational guides from implementations and enhance clarifications with mentoring context | `docs` | Read+Write | [spec-kit-learn](https://github.com/imviancagrace/spec-kit-learn) | | Linear Integration | Mirror spec-kit feature directories into Linear (filesystem → Linear, reconcile-based, unidirectional). | `integration` | Read+Write | [spec-kit-linear-sync](https://github.com/ashbrener/spec-kit-linear-sync) | | MAQA — Multi-Agent & Quality Assurance | Coordinator → feature → QA agent workflow with parallel worktree-based implementation. Language-agnostic. Auto-detects installed board plugins. Optional CI gate. | `process` | Read+Write | [spec-kit-maqa-ext](https://github.com/GenieRobot/spec-kit-maqa-ext) | diff --git a/extensions/catalog.community.json b/extensions/catalog.community.json index 0dfaefd6e..4746adab9 100644 --- a/extensions/catalog.community.json +++ b/extensions/catalog.community.json @@ -1215,6 +1215,39 @@ "created_at": "2026-03-05T00:00:00Z", "updated_at": "2026-03-05T00:00:00Z" }, + "jira-sync": { + "name": "Jira Integration (Sync Engine)", + "id": "jira-sync", + "description": "An idempotent, drift-aware, fail-closed reconcile engine that mirrors spec-kit specs into Jira (Epic per repo, Story per spec, Subtask per phase).", + "author": "Ash Brener", + "version": "0.2.0", + "download_url": "https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.2.0.zip", + "repository": "https://github.com/ashbrener/spec-kit-jira-sync", + "homepage": "https://github.com/ashbrener/spec-kit-jira-sync", + "documentation": "https://github.com/ashbrener/spec-kit-jira-sync/blob/main/README.md", + "changelog": "https://github.com/ashbrener/spec-kit-jira-sync/releases", + "license": "MIT", + "requires": { + "speckit_version": ">=0.1.0" + }, + "provides": { + "commands": 2, + "hooks": 0 + }, + "tags": [ + "issue-tracking", + "jira", + "tasks-sync", + "lifecycle-mirror", + "reconcile", + "drift-aware" + ], + "verified": false, + "downloads": 0, + "stars": 0, + "created_at": "2026-06-08T00:00:00Z", + "updated_at": "2026-06-08T00:00:00Z" + }, "learn": { "name": "Learning Extension", "id": "learn",