v0.2.0 — re-mode + engine unification
Minor release on top of v0.1.0. Install via the GitHub-generated source tarball at this tag.
Feature 004 — guarded re-mode / orphan pruning (new, user-facing)
An opt-in, controlled-destruction reconcile.sh --remode that converges a board to the shape the current mapping projects:
- Orphan pruning — prunes the bridge-owned artifacts a prior mapping shape left behind, identified by a vendor-neutral diff
O = E \ Dover thespeckit-*identity labels, then regenerates the new shape in one pass. - Fail-safe scoping — an issue carrying no
speckit-*identity label (e.g. operator-created) is structurally excluded and never touched. - Dry-run preview —
--remode --dry-runpreviews the exact prune + regenerate set with zero writes, byte-faithful to the real run. - Fail-closed — reads are fail-closed (an unreadable read aborts before any delete); a partial prune failure is surfaced and completable by a re-run; backward-drift on a to-be-pruned issue is warned first.
- Selectable destruction model —
remode.destruction: hard-delete(default) orarchive. - Ordinary reconcile stays strictly non-destructive — it only warns when it detects prior-shape orphans.
- Governance — gated on a constitution v1.1.0 amendment: a scoped controlled-destruction carve-out to Principle I (flag-only, bridge-owned-only, dry-run-previewable, fail-closed). No principle removed.
Feature 003 — engine orchestration unification (internal, behavior-preserving)
Re-platforms the engine onto one neutral, mapping-driven projection (sync_level_artifact + link_to_parent) driven by a vendor-neutral level loop; the 001-era orchestrators (~450 lines) are removed. An enforced committed gate keeps the engine path free of Jira issue-type / artifact-name / relationship knowledge, so the eventual engine extraction is a near-mechanical lift. No operator-observable change — behavior is byte-for-byte identical and the full suite passes unchanged.
Full changelog: https://github.com/ashbrener/spec-kit-jira-sync/blob/v0.2.0/CHANGELOG.md