Note for triage: This is a version update of the existing community-catalog entry jira-sync (currently 0.2.0) → 0.4.0, not a brand-new extension. It was previously submitted/updated via direct PRs to catalog.community.json (#2895 merged; #2933/#2952/#3133 closed); re-filing via the Extension Submission template per maintainer guidance on #3133. Filling all fields for completeness.
Extension ID
jira-sync
Extension Name
Jira Integration (Sync Engine)
Version
0.4.0
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
Repository URL
https://github.com/ashbrener/spec-kit-jira-sync
Download URL
https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.4.0.zip
License
MIT
Homepage (optional)
https://github.com/ashbrener/spec-kit-jira-sync
Documentation URL (optional)
https://github.com/ashbrener/spec-kit-jira-sync/blob/main/README.md
Changelog URL (optional)
https://github.com/ashbrener/spec-kit-jira-sync/blob/main/CHANGELOG.md
Required Spec Kit Version
=0.1.0
Required Tools (optional)
- bash (>=4.4) - required
- git, curl, jq - required
- gitleaks / trufflehog - optional (broader secret scanning; never bundled)
Number of Commands
4
Number of Hooks (optional)
0
Tags
issue-tracking, jira, tasks-sync, reconcile, drift-aware
Key Features
- One-way reconcile: mirrors
specs/NNN-*/ → Jira (Epic per repo, Story per spec, Subtask per task phase); filesystem is the source of truth, Jira a read-only mirror.
- Idempotent + drift-aware: zero-churn on unchanged state; surfaces backward-drift (Jira ahead of disk) and lets the operator decide.
/speckit-jira-install + /speckit-jira-seed: resolve the per-repo binding over REST and validate the lifecycle mapping — no hand-editing config (v0.4.0).
- Human-readable issue titles via a deterministic source ladder; lifecycle→subtask cascade so merged specs mark their phases done (v0.4.0).
- Consumer-side privacy guard: fail-closed pre-write scan for real Jira coordinates, never committed (v0.4.0).
- Configurable artifact mapping, optional author attribution, ADR/decision mirroring, guarded re-mode pruning.
Testing Checklist
Submission Requirements
Testing Details
Tested on:
- macOS + Linux (Ubuntu) with bash 4.4 and 5.2 (CI matrix).
Test suite: 507 bats unit + integration tests (offline, Jira REST mocked via a curl-shim), plus shellcheck, yamllint, and markdownlint — all green in CI on every release.
Real project: dogfooded against live Jira projects (install → seed → reconcile across multiple specs), which surfaced and drove the v0.2.1/v0.3.0/v0.4.0 fixes (multi-spec phase handling, board status cascade, flexible phase headers).
Release: v0.4.0 tagged with a published source archive (HTTP 200), validated by the pre-flight check in the publish flow.
Example Usage
# Install into your spec-kit project (catalog form once listed):
specify extension add jira-sync
# or from the release archive directly:
specify extension add jira-sync --from https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.4.0.zip
# Resolve the per-repo Jira binding (no hand-editing config):
/speckit-jira-install
/speckit-jira-seed
# Reconcile this repo's specs into Jira (idempotent, drift-aware):
/speckit-jira-push
# Read-only drift/sync preview:
/speckit-jira-status
Proposed Catalog Entry
{
"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.4.0",
"download_url": "https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.4.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/blob/main/CHANGELOG.md",
"license": "MIT",
"requires": {
"speckit_version": ">=0.1.0"
},
"provides": {
"commands": 4,
"hooks": 0
},
"tags": ["issue-tracking", "jira", "tasks-sync", "reconcile", "drift-aware"],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-06-08T00:00:00Z",
"updated_at": "2026-06-24T00:00:00Z"
}
}
Additional Context
Updates the existing jira-sync entry from 0.2.0 → 0.4.0. Since v0.2.0 the extension added: feature 005 (ADR/decision mirroring), 006 (consumer-side privacy guard), 007 (author attribution), 008 (install + seed ceremony — the two new commands, taking the count 2 → 4), 009 (human-readable issue titles), and 010 (lifecycle→subtask board cascade + flexible phase headers). The catalog created_at is preserved; only version, download_url, provides.commands, and updated_at change. Happy to adjust anything to fit the intake process — thanks for maintaining the catalog!
Extension ID
jira-sync
Extension Name
Jira Integration (Sync Engine)
Version
0.4.0
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
Repository URL
https://github.com/ashbrener/spec-kit-jira-sync
Download URL
https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.4.0.zip
License
MIT
Homepage (optional)
https://github.com/ashbrener/spec-kit-jira-sync
Documentation URL (optional)
https://github.com/ashbrener/spec-kit-jira-sync/blob/main/README.md
Changelog URL (optional)
https://github.com/ashbrener/spec-kit-jira-sync/blob/main/CHANGELOG.md
Required Spec Kit Version
Required Tools (optional)
Number of Commands
4
Number of Hooks (optional)
0
Tags
issue-tracking, jira, tasks-sync, reconcile, drift-aware
Key Features
specs/NNN-*/→ Jira (Epic per repo, Story per spec, Subtask per task phase); filesystem is the source of truth, Jira a read-only mirror./speckit-jira-install+/speckit-jira-seed: resolve the per-repo binding over REST and validate the lifecycle mapping — no hand-editing config (v0.4.0).Testing Checklist
Submission Requirements
extension.ymlmanifest includedTesting Details
Tested on:
Test suite: 507
batsunit + integration tests (offline, Jira REST mocked via a curl-shim), plus shellcheck, yamllint, and markdownlint — all green in CI on every release.Real project: dogfooded against live Jira projects (install → seed → reconcile across multiple specs), which surfaced and drove the v0.2.1/v0.3.0/v0.4.0 fixes (multi-spec phase handling, board status cascade, flexible phase headers).
Release:
v0.4.0tagged with a published source archive (HTTP 200), validated by the pre-flight check in the publish flow.Example Usage
Proposed Catalog Entry
{ "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.4.0", "download_url": "https://github.com/ashbrener/spec-kit-jira-sync/archive/refs/tags/v0.4.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/blob/main/CHANGELOG.md", "license": "MIT", "requires": { "speckit_version": ">=0.1.0" }, "provides": { "commands": 4, "hooks": 0 }, "tags": ["issue-tracking", "jira", "tasks-sync", "reconcile", "drift-aware"], "verified": false, "downloads": 0, "stars": 0, "created_at": "2026-06-08T00:00:00Z", "updated_at": "2026-06-24T00:00:00Z" } }Additional Context
Updates the existing
jira-syncentry from0.2.0→0.4.0. Since v0.2.0 the extension added: feature 005 (ADR/decision mirroring), 006 (consumer-side privacy guard), 007 (author attribution), 008 (install + seed ceremony — the two new commands, taking the count 2 → 4), 009 (human-readable issue titles), and 010 (lifecycle→subtask board cascade + flexible phase headers). The catalogcreated_atis preserved; onlyversion,download_url,provides.commands, andupdated_atchange. Happy to adjust anything to fit the intake process — thanks for maintaining the catalog!