Hook self-healing (spec 014). The community update path (specify extension add linear --from <release-zip> --force) silently strips the bridge's six after_* auto-sync hooks from .specify/extensions.yml, so auto-sync quietly stops and the Linear board drifts. The bridge now self-reports its own hook health.
- On every
speckit.linear.pushandspeckit.linear.status, missingafter_*hooks raise one named, non-blocking warning + the/speckit.linear.installremediation. speckit.linear.statusreports hook health as a first-class line (all present / partial+names / none); exit code unchanged.- Interactive sessions offer a single y/N consented self-heal that re-registers all missing hooks at once (preserving any
enabled: false); non-interactive runs are warn-only and mutate nothing. - A deliberately disabled hook is never treated as missing and never silently re-enabled.
- README:
--from <archive> --forceupdate one-liner + re-run/speckit.linear.installafter a--forceupdate.
Additive; extension.id stays linear; no command/hook change; no constitution amendment. 25 new unit + 9 new integration tests; CI green.
Install / update (replace the archive URL with this tag):
specify extension add linear --from https://github.com/ashbrener/spec-kit-linear-sync/archive/refs/tags/v0.8.0.zip --force
After a --force update, re-run /speckit.linear.install to restore the auto-sync hooks.