`sdlc` 0.5.1 rewrites every feature manifest on read - `sdlc state` alone did
this - so the migration cannot be avoided, only recorded. It is idempotent:
repeated reads produce no further churn (verified by checksum).
What schema 4 drops, so it is findable later:
- feature-level `id` (now derived from `slug`) and `updated_at`.
- per-task history: `created_at` is re-stamped with the migration instant and
`completed_at` is nulled, so task timing before 2026-08-16 is not recoverable
from these files.
- m9-community-profile-sync additionally loses 18 phase-history and artifact
timestamps (`entered`/`exited`/`approved_at`, 2026-03-04).
The pre-migration record is this commit's parent:
git show HEAD~1:.sdlc/features/m9-community-profile-sync/manifest.yaml
Committed separately from any state transition so the loss is one reviewable
diff rather than noise inside a feature change. `.sdlc/` is CLI-owned; nothing
here was hand-edited.