v0.4.0 — Configurable artifact mapping (#17) + lifecycle fix (#61)
Highlights
Configurable artifact mapping (spec 007 — resolves #17). The spec→Linear mapping is now operator-configurable via an optional mapping: block in linear-config.yml, while the spec-001 default (repo→Project, spec→Issue, phase→sub-issue, task→checklist) stays the frozen zero-config default — existing installs are byte-for-byte unchanged.
- #17 spec-as-Project shape:
Initiative > Project > Issue > sub-issue— idempotent (zero-churn re-runs), drift-aware on the spec level. - Optional L0 narrative super-level → a Linear Initiative above the repo (narrative from the spec
**Input**:only), degrading gracefully where Initiatives aren't on the plan. - Fail-closed validation at config-load rejects mappings Linear can't build (Project-under-Project, dependency-links-as-nesting, etc.).
- Constitution v2.1.0 (MINOR) records the bounded configurability.
- Validated end-to-end against a real Linear workspace (created the full hierarchy, re-ran zero-churn). The three fixes that validation surfaced are included.
Lifecycle fix (#61). Linear issues no longer stick at "in-progress": the reconciler reads the spec's real branch from plan.md for the PR-state lookup instead of guessing from the directory name.
extension.id stays linear; the command surface is unchanged. See the CHANGELOG for full detail.