`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.
156 lines
4.6 KiB
YAML
156 lines
4.6 KiB
YAML
slug: m10-community-policy-engine
|
|
title: Community Policy Engine
|
|
description: Declarative schema-level rules governing which signal types community members can read/write; policy is versioned alongside data
|
|
phase: released
|
|
created_at: 2026-03-03T06:29:45.064231Z
|
|
updated_at: 2026-03-05T00:20:37.160439Z
|
|
artifacts:
|
|
- artifact_type: spec
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/spec.md
|
|
created_at: 2026-03-05T00:14:48.987560Z
|
|
approved_at: 2026-03-05T00:14:51.867292Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: design
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/design.md
|
|
created_at: 2026-03-05T00:14:57.610988Z
|
|
approved_at: 2026-03-05T00:15:00.833766Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: tasks
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/tasks.md
|
|
created_at: 2026-03-05T00:15:06.533342Z
|
|
approved_at: 2026-03-05T00:15:09.249313Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: qa_plan
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/qa-plan.md
|
|
created_at: 2026-03-05T00:15:20.035713Z
|
|
approved_at: 2026-03-05T00:15:20.049690Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: review
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/review.md
|
|
created_at: 2026-03-05T00:16:45.167206Z
|
|
approved_at: 2026-03-05T00:16:47.991087Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: audit
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/audit.md
|
|
created_at: 2026-03-05T00:16:59.361664Z
|
|
approved_at: 2026-03-05T00:16:59.370605Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
- artifact_type: qa_results
|
|
status: approved
|
|
path: .sdlc/features/m10-community-policy-engine/qa-results.md
|
|
created_at: 2026-03-05T00:20:26.550813Z
|
|
approved_at: 2026-03-05T00:20:30.487848Z
|
|
rejected_at: null
|
|
rejection_reason: null
|
|
approved_by: null
|
|
tasks:
|
|
- id: T1
|
|
title: Define CommunityPolicy, CommunityContext, and schema types
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.689321Z
|
|
started_at: 2026-03-05T00:16:18.515690Z
|
|
completed_at: 2026-03-05T00:16:18.522105Z
|
|
blocker: null
|
|
depends_on: []
|
|
- id: T2
|
|
title: Add CommunityPolicy to Schema and SchemaBuilder
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.695454Z
|
|
started_at: 2026-03-05T00:16:23.266698Z
|
|
completed_at: 2026-03-05T00:16:23.272128Z
|
|
blocker: null
|
|
depends_on: []
|
|
- id: T3
|
|
title: Implement CommunityPolicyEvaluator and signal_with_community_policy()
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.701107Z
|
|
started_at: 2026-03-05T00:16:23.279758Z
|
|
completed_at: 2026-03-05T00:16:23.284447Z
|
|
blocker: null
|
|
depends_on: []
|
|
- id: T4
|
|
title: Thread CommunityContext through retrieval and scoring
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.706724Z
|
|
started_at: 2026-03-05T00:16:23.289218Z
|
|
completed_at: 2026-03-05T00:16:23.293547Z
|
|
blocker: null
|
|
depends_on: []
|
|
- id: T5
|
|
title: Integration tests (m10_community_policy.rs)
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.713647Z
|
|
started_at: 2026-03-05T00:16:23.298103Z
|
|
completed_at: 2026-03-05T00:16:23.302437Z
|
|
blocker: null
|
|
depends_on: []
|
|
- id: T6
|
|
title: Final polish and verification
|
|
description: null
|
|
status: completed
|
|
created_at: 2026-03-05T00:15:34.719759Z
|
|
started_at: 2026-03-05T00:16:23.307581Z
|
|
completed_at: 2026-03-05T00:16:23.312523Z
|
|
blocker: null
|
|
depends_on: []
|
|
comments: []
|
|
next_comment_seq: 0
|
|
blockers: []
|
|
phase_history:
|
|
- phase: draft
|
|
entered: 2026-03-03T06:29:45.064231Z
|
|
exited: 2026-03-05T00:14:51.868Z
|
|
- phase: specified
|
|
entered: 2026-03-05T00:14:51.868Z
|
|
exited: 2026-03-05T00:15:20.060080Z
|
|
- phase: planned
|
|
entered: 2026-03-05T00:15:20.060080Z
|
|
exited: 2026-03-05T00:16:18.523086Z
|
|
- phase: ready
|
|
entered: 2026-03-05T00:16:18.523086Z
|
|
exited: 2026-03-05T00:16:23.272814Z
|
|
- phase: implementation
|
|
entered: 2026-03-05T00:16:23.272814Z
|
|
exited: 2026-03-05T00:16:47.993589Z
|
|
- phase: review
|
|
entered: 2026-03-05T00:16:47.993589Z
|
|
exited: 2026-03-05T00:16:59.363535Z
|
|
- phase: audit
|
|
entered: 2026-03-05T00:16:59.363535Z
|
|
exited: 2026-03-05T00:16:59.373048Z
|
|
- phase: qa
|
|
entered: 2026-03-05T00:16:59.373048Z
|
|
exited: 2026-03-05T00:20:30.492764Z
|
|
- phase: merge
|
|
entered: 2026-03-05T00:20:30.492764Z
|
|
exited: 2026-03-05T00:20:37.160439Z
|
|
- phase: released
|
|
entered: 2026-03-05T00:20:37.160439Z
|
|
exited: null
|
|
dependencies: []
|
|
archived: false
|
|
schema_version: 4
|