{ "planPath": "docs/plans/2026-06-01-zb-mom-ww-audit-shared-library.md", "tasks": [ {"id": 0, "subject": "Task 0: Current-state — OtOpcUa", "status": "pending"}, {"id": 1, "subject": "Task 1: Current-state — MxAccessGateway", "status": "pending"}, {"id": 2, "subject": "Task 2: Current-state — ScadaBridge", "status": "pending"}, {"id": 3, "subject": "Task 3: SPEC.md + EVENT-MODEL.md", "status": "pending", "blockedBy": [0, 1, 2]}, {"id": 4, "subject": "Task 4: shared-contract/ZB.MOM.WW.Audit.md", "status": "pending", "blockedBy": [3]}, {"id": 5, "subject": "Task 5: components/audit/README.md + GAPS.md", "status": "pending", "blockedBy": [3, 4]}, {"id": 6, "subject": "Task 6: Scaffold the library + test project + solution", "status": "pending", "blockedBy": [4]}, {"id": 7, "subject": "Task 7: AuditEvent record + AuditOutcome enum + seam interfaces", "status": "pending", "blockedBy": [6]}, {"id": 8, "subject": "Task 8: NullAuditRedactor", "status": "pending", "blockedBy": [7]}, {"id": 9, "subject": "Task 9: TruncatingAuditRedactor + options", "status": "pending", "blockedBy": [7]}, {"id": 10, "subject": "Task 10: NoOpAuditWriter", "status": "pending", "blockedBy": [7]}, {"id": 11, "subject": "Task 11: CompositeAuditWriter", "status": "pending", "blockedBy": [7]}, {"id": 12, "subject": "Task 12: RedactingAuditWriter", "status": "pending", "blockedBy": [7]}, {"id": 13, "subject": "Task 13: AddZbAudit DI extension", "status": "pending", "blockedBy": [8, 10]}, {"id": 14, "subject": "Task 14: Full test run + dotnet pack @ 0.1.0", "status": "pending", "blockedBy": [13]}, {"id": 15, "subject": "Task 15: Index/registry updates + GAPS cross-check", "status": "pending", "blockedBy": [14]} ], "lastUpdated": "2026-06-01" }