{
  "format": "hydra.session-board-work-graph.v1",
  "source_format": "ldgr.schedule.v1",
  "scope": "Session Board production implementation plan",
  "disclosure_note": "This is the retained pre-execution LDGR schedule. Its pending statuses describe the original plan, not the current implementation state.",
  "work_item_count": 98,
  "work_items": [
    {
      "slug": "bootstrap-repository-toolchain",
      "title": "Bootstrap the production repository and toolchain",
      "description": "Source: artifact 5 sections 5, 6, 17, and 22. Initialize Git and a production TypeScript monorepo with separately runnable web, API, and worker applications plus domain, database, integration, UI, and test packages. Pin the package manager and runtime; add reproducible local PostgreSQL, queue/cache, and S3-compatible services; provide build, lint, typecheck, unit-test, integration-test, and development commands. No runtime mock service or demo-only path is permitted. Walkthrough foundation: 18.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "A clean checkout can install with the locked toolchain, start required local services, build all applications, run baseline checks, and report dependency/configuration failures clearly; repository structure enforces cohesive modules and contains no placeholder implementations.",
      "dependencies": [
        "decompose-production-spec"
      ]
    },
    {
      "slug": "configure-environments",
      "title": "Implement typed environment and dependency configuration",
      "description": "Source: artifact 5 sections 6.1, 14, and 17. Normative IDs: NFR-DEP-005. Implement validated configuration contracts for local, test, staging, and production; separate core dependencies from optional integrations; fail closed for missing database, queue, storage, identity, or email settings; expose disabled-with-reason state for optional AI/calendar/Accelevents capabilities. Include local production-shaped service configuration without representing emulators as production providers.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Startup validation tests cover every environment and secret reference, core dependency omissions stop startup, optional omissions produce explicit disabled health, and no secret value appears in client bundles or logs.",
      "dependencies": [
        "bootstrap-repository-toolchain"
      ]
    },
    {
      "slug": "create-core-schema",
      "title": "Create the tenant and event foundation schema",
      "description": "Source: artifact 5 sections 7, 8.1, and 9.1. Implement PostgreSQL migration conventions plus organization, user, membership, event, and event-team-grant tables/repositories with tenant keys, stable identifiers, uniqueness, lifecycle timestamps, optimistic versions, soft archive/restore fields, and referential constraints. Domain-specific tables are owned by their corresponding atomic feature items; this foundation must not pre-create placeholder schemas.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Migrations apply from empty and roll forward on PostgreSQL; schema/repository tests prove tenant keys, identifiers, uniqueness, event membership references, lifecycle/version constraints, and rejection of cross-tenant or invalid references; no domain placeholder tables or manual database edits exist.",
      "dependencies": [
        "configure-environments"
      ]
    },
    {
      "slug": "implement-identity-sessions",
      "title": "Implement OIDC identity, secure sessions, and MFA enforcement",
      "description": "Source: artifact 5 sections 7.2, 11, and walkthrough step 1. Implement generic standards-compliant OIDC login for workforce users, verified passwordless portal access where required, secure server-side session lifecycle, invitation acceptance, logout/revocation, reauthentication hooks, and organization-level MFA enforcement using real identity-provider claims and policies.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "identity",
      "acceptance_criteria": "Integration tests against a real staging OIDC tenant prove login, logout, expiry, revocation, invitation, MFA allow/deny, portal token expiry, and session fixation resistance; missing or invalid identity configuration fails closed.",
      "dependencies": [
        "create-core-schema"
      ]
    },
    {
      "slug": "enforce-authorization-tenancy",
      "title": "Enforce server-side roles, ownership, and tenant isolation",
      "description": "Source: artifact 5 sections 7.1, 7.3, 8.1, and 11. Normative IDs: NFR-SEC-003. Implement deny-by-default organization and event RBAC for owner/admin, event admin, program manager, content manager, evaluator, speaker/submitter, public viewer, and integration principals; add resource ownership, event restrictions, blind-field policy hooks, and field-level visibility. Authorization must execute before querying or serializing sensitive data.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "identity",
      "acceptance_criteria": "A generated permission matrix and database/API integration tests cover allow and deny cases, cross-tenant identifiers reveal no existence or data, UI hiding is never the only control, and scoped principals cannot escalate roles or fields.",
      "dependencies": [
        "implement-identity-sessions"
      ]
    },
    {
      "slug": "implement-audit-ledger",
      "title": "Implement append-only tamper-evident audit history",
      "description": "Source: artifact 5 sections 8, 11, and 15. Normative IDs: NFR-SEC-008. Persist attributable append-only audit events for authentication, authorization, exports, sensitive reads, privilege changes, form/publication changes, decisions, agenda overrides, integration actions, and deletion. Include actor/principal, tenant, target, before/after references or redacted diffs, rationale, correlation ID, and integrity chaining; application actors cannot rewrite history.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Integration tests prove mandatory events, redaction, tenant-scoped reads, integrity verification, pagination, and denial of update/delete through application credentials; operator documentation defines retention and verification.",
      "dependencies": [
        "create-core-schema",
        "enforce-authorization-tenancy"
      ]
    },
    {
      "slug": "instrument-request-job-context",
      "title": "Instrument request and job correlation context",
      "description": "Source: artifact 5 section 15. Normative IDs: NFR-OBS-001, NFR-OBS-002. Implement structured logging, metrics, and distributed tracing foundations across web, API, worker, database, and outbound provider calls. Propagate correlation, organization, principal, operation, job, and trace identifiers while excluding secrets and sensitive payloads.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "operations",
      "acceptance_criteria": "Automated tests trace one request through a committed job and provider adapter, verify required context fields, prove redaction, and export usable telemetry to the configured staging backend.",
      "dependencies": [
        "configure-environments"
      ]
    },
    {
      "slug": "implement-outbox-jobs",
      "title": "Implement transactional outbox and durable job execution",
      "description": "Source: artifact 5 sections 8.1 and 14. Normative IDs: NFR-REL-002, NFR-REL-003. Implement transactional outbox writes, at-least-once queue delivery, idempotent consumers, typed retry classification, bounded exponential backoff, dead-letter storage, durable job status, cancellation where safe, and replay tooling primitives.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Database/queue integration tests prove commit atomicity, duplicate delivery safety, crash recovery, retry bounds, terminal errors, dead-letter capture, and trace propagation without losing or duplicating domain side effects.",
      "dependencies": [
        "create-core-schema",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "implement-object-storage",
      "title": "Implement secure durable object storage primitives",
      "description": "Source: artifact 5 sections 6, 8, and 16. Normative IDs: NFR-DR-002. Implement organization-prefixed S3-compatible object storage, encrypted buckets, versioning, lifecycle configuration, checksum metadata, short-lived signed upload/download operations, quarantine and clean namespaces, deletion markers, and database/object reconciliation. Production uses a real managed compatible service.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Integration tests exercise multipart upload, checksum mismatch, expiration, unauthorized cross-tenant keys, version recovery, lifecycle tags, quarantine isolation, and reconciliation against the real staging storage service.",
      "dependencies": [
        "configure-environments",
        "create-core-schema",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "build-web-shell-i18n",
      "title": "Build the authenticated web shell and internationalization foundation",
      "description": "Source: artifact 5 sections 6, 7, and 12. Normative IDs: NFR-I18N-001, NFR-I18N-002, NFR-I18N-003. Build organizer and portal shells with routing, loading/error/permission states, accessible navigation, externalized English strings, Unicode-safe forms, locale formatters, UTC persistence with IANA timezone context, and explicit event/user timezone display.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "frontend",
      "acceptance_criteria": "Browser tests cover authenticated routing, denied states, Unicode, DST-boundary date/time rendering, locale switching infrastructure, keyboard navigation, and recovery from API/session errors without concatenated locale-sensitive copy.",
      "dependencies": [
        "bootstrap-repository-toolchain",
        "configure-environments",
        "implement-identity-sessions"
      ]
    },
    {
      "slug": "harden-web-security",
      "title": "Implement transport, browser, input, and abuse security baseline",
      "description": "Source: artifact 5 section 11. Normative IDs: NFR-SEC-001, NFR-SEC-002, NFR-SEC-004, NFR-SEC-005, NFR-SEC-006, NFR-SEC-007. Enforce TLS assumptions, managed-secret references, secure cookies, CSRF/origin checks, high-risk reauthentication, allowlist validation, parameterized access, safe serialization/output encoding, HTML sanitization, SSRF-safe egress, public/auth rate limits, bot and enumeration defenses, abuse telemetry, CSP, HSTS, embed-aware frame policy, content-type, referrer, and permissions headers.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "security",
      "acceptance_criteria": "Security integration tests cover CSRF, hostile origins, cookie flags, injection/XSS/SSRF payloads, enumeration, rate-limit recovery, headers, secret redaction, and high-risk reauthentication; production cannot boot with plaintext secret configuration.",
      "dependencies": [
        "build-web-shell-i18n",
        "enforce-authorization-tenancy",
        "implement-identity-sessions",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "define-privacy-data-registry",
      "title": "Implement privacy field registry and consent records",
      "description": "Source: artifact 5 section 11. Normative IDs: NFR-PRIV-001, NFR-PRIV-002, NFR-PRIV-005. Define every sensitive field's purpose, visibility, retention class, export/delete behavior, provider/data-region flow, and subprocessor. Implement timestamped versioned attributable consent capture and revocation where applicable, and expose organization-readable data-flow documentation.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "privacy",
      "acceptance_criteria": "Schema and policy tests show every sensitive domain field has registry metadata; consent history is immutable and revocable per policy; generated data-flow/subprocessor documentation covers identity, email, AI, storage, and integrations.",
      "dependencies": [
        "create-core-schema",
        "implement-audit-ledger"
      ]
    },
    {
      "slug": "implement-event-lifecycle",
      "title": "Implement organization and event lifecycle administration",
      "description": "Source: artifact 5 sections 9.1 and 10.1. Normative IDs: FR-ORG-001, FR-ORG-002. Implement authorized organization-scoped create, update, archive, export, and restore for events; validate name, slug, multi-day dates, IANA timezone, locale, contacts, branding, public domains/settings, and explicit draft-active-archived transitions. Walkthrough step: 2.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "events",
      "acceptance_criteria": "API, repository, and browser tests prove valid lifecycle transitions, slug/domain uniqueness, archive/restore, tenant isolation, full export, DST/timezone correctness, authorization, and audit evidence.",
      "dependencies": [
        "build-web-shell-i18n",
        "create-core-schema",
        "enforce-authorization-tenancy",
        "implement-audit-ledger"
      ]
    },
    {
      "slug": "implement-event-taxonomies",
      "title": "Implement event taxonomies and reference protection",
      "description": "Source: artifact 5 section 10.1. Normative IDs: FR-ORG-003, FR-ORG-004. Implement ordered tracks, categories, rooms, formats, levels, languages, tags, participant roles, and session statuses with applicable colors, active/inactive state, usage counts, and reference-protected deletion. Walkthrough step: 2.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "events",
      "acceptance_criteria": "CRUD and concurrency tests cover every taxonomy type, stable ordering, usage counts, inactivation, valid colors, protected deletion, tenant isolation, and audit history; organizer UI reflects conflicts and recovery actions.",
      "dependencies": [
        "implement-event-lifecycle"
      ]
    },
    {
      "slug": "implement-team-access",
      "title": "Implement event team invitations and least-privilege access",
      "description": "Source: artifact 5 sections 7.3 and 10.1. Normative IDs: FR-ORG-005. Implement team invitations, organization/event role grants, event restrictions, expiry, revocation, access history, and evaluator invitations without privilege inheritance. Walkthrough step: 1.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "identity",
      "acceptance_criteria": "End-to-end tests invite an event admin and evaluator, accept through the real identity provider, verify allowed work, prove denied cross-role and cross-tenant actions, revoke access immediately, and inspect history.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "implement-audit-ledger",
        "implement-event-lifecycle",
        "implement-identity-sessions"
      ]
    },
    {
      "slug": "implement-change-impact-confirmation",
      "title": "Implement impact previews and high-risk confirmations",
      "description": "Source: artifact 5 sections 10.1 and 12. Normative IDs: FR-ORG-006, NFR-UX-001. Build a reusable server-authoritative impact-preview/confirmation contract for destructive, bulk, publish, send, decision, schedule, sync, form, and integration changes, including affected counts/records, invalidations, external effects, authorization, confirmation tokens, and stale-preview rejection.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "foundation",
      "acceptance_criteria": "Integration and browser tests prove each high-risk operation can preview scope, requires explicit confirmation, rejects changed/stale scope, audits actor and rationale, and never executes solely from a client-calculated preview.",
      "dependencies": [
        "build-web-shell-i18n",
        "implement-audit-ledger",
        "implement-event-taxonomies",
        "implement-team-access"
      ]
    },
    {
      "slug": "build-message-templates",
      "title": "Build versioned message templates and preview",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-001, FR-COMMS-002. Implement event-scoped versioned email templates with validated merge-field schemas, subject, sanitized rich and plain bodies, locale, sender identity, reply-to, optional calendar content, real-record or privacy-safe sample preview, and missing-value diagnostics.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "communications",
      "acceptance_criteria": "Template/API/browser tests cover version immutability, allowed/unknown fields, HTML/plain rendering, sanitization, locale, real-record authorization, safe samples, missing values, sender validation, and audit history.",
      "dependencies": [
        "build-web-shell-i18n",
        "enforce-authorization-tenancy",
        "implement-audit-ledger",
        "implement-event-lifecycle"
      ]
    },
    {
      "slug": "integrate-transactional-email",
      "title": "Integrate real transactional email delivery and event webhooks",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-005, FR-COMMS-006. Implement a production transactional-email adapter with provider message IDs, accepted/delivered/deferred/bounced/complained/suppressed states, attempts and timestamps; signature-verify provider webhooks, handle duplicate/out-of-order events idempotently, retain redacted provider evidence, and expose delivery status.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "communications",
      "acceptance_criteria": "Contract tests and live staging-provider tests send a message and ingest signed lifecycle webhooks; invalid signatures, duplicates, reordering, provider errors, and redaction are verified; no log-only or fabricated delivery success exists.",
      "dependencies": [
        "build-message-templates",
        "harden-web-security",
        "implement-outbox-jobs",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "implement-campaign-scheduling",
      "title": "Implement campaigns, audience snapshots, and durable scheduling",
      "description": "Source: artifact 5 sections 10.7 and 14. Normative IDs: FR-COMMS-003, FR-COMMS-004, NFR-REL-005. Implement individual, filtered, scheduled, event-triggered, task, and reminder sends; snapshot audience membership at approval/send; use timezone-correct durable scheduling, deduplication, restart recovery, cancellation where safe, and immutable approval evidence.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "communications",
      "acceptance_criteria": "Integration tests cover each trigger, audience drift after approval, DST boundaries, restart recovery, deduplication, cancellation, authorization, and exactly one provider submission per intended recipient despite at-least-once jobs.",
      "dependencies": [
        "implement-change-impact-confirmation",
        "implement-outbox-jobs",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "enforce-mail-suppression",
      "title": "Enforce suppression, bounce, complaint, and unsubscribe policy",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-007. Implement global/provider suppression reconciliation, invalid-address, bounce, complaint, and legally applicable unsubscribe rules, with explicit authorized transactional exceptions and audience exclusion explanations.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "communications",
      "acceptance_criteria": "Policy and live-provider tests prove harmful repeat sends are blocked, authorized transactional exceptions are narrow and audited, complaints/bounces update promptly, audience previews explain exclusions, and cross-tenant suppression visibility is protected.",
      "dependencies": [
        "implement-campaign-scheduling",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "build-form-schema-versioning",
      "title": "Build form definitions, fields, versions, and stable exports",
      "description": "Source: artifact 5 sections 8, 8.1, and 10.2. Normative IDs: FR-FORM-001, FR-FORM-002, FR-FORM-009. Implement reusable form definitions, sections/content, all specified field types, validation, required/sensitive/respondent/organizer visibility, mapping targets, immutable published versions, stable field IDs, and answer exports preserving version lineage.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "forms",
      "acceptance_criteria": "Schema/API/browser tests create every field type, reject invalid definitions, prove published-version immutability and field-ID stability, enforce visibility, and round-trip answers/exports without losing type or version lineage.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "implement-audit-ledger",
        "implement-event-lifecycle",
        "implement-event-taxonomies"
      ]
    },
    {
      "slug": "implement-form-rule-engine",
      "title": "Implement authoritative conditional form rule evaluation",
      "description": "Source: artifact 5 section 10.2. Normative IDs: FR-FORM-003, FR-FORM-004, FR-FORM-005, FR-FORM-006. Implement typed predicates, explicit AND/OR grouping, visibility/required/default/routing/track/reviewer/template actions, cycle/reference/contradiction validation, deterministic server evaluation, and a matching client interpreter whose results are rechecked by the server.",
      "status": "pending",
      "priority": "P0",
      "program": "session-board-production",
      "group": "forms",
      "acceptance_criteria": "Table-driven unit and property tests cover all operators and nested logic; invalid/cyclic/contradictory graphs cannot publish; browser/API differential tests prove client/server parity and server rejection of tampered hidden or required values.",
      "dependencies": [
        "build-form-schema-versioning"
      ]
    },
    {
      "slug": "build-form-branch-preview",
      "title": "Build reachable-branch preview and rule explanations",
      "description": "Source: artifact 5 section 10.2. Normative IDs: FR-FORM-007. Compute reachable conditional branches, detect unreachable paths, generate representative inputs, display fired-rule explanations and routing outcomes, and allow organizers to interactively preview the exact immutable draft version. Walkthrough step: 3.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "forms",
      "acceptance_criteria": "Tests cover three-plus branches, nested conditions, unreachable branches, default/routing interactions, exact rule explanations, keyboard operation, and preview isolation from live submissions.",
      "dependencies": [
        "build-web-shell-i18n",
        "implement-form-rule-engine"
      ]
    },
    {
      "slug": "implement-form-publication-policy",
      "title": "Implement form lifecycle, windows, limits, and abuse policy",
      "description": "Source: artifact 5 sections 9.2 and 10.2. Normative IDs: FR-FORM-008. Implement draft-published-closed-archived transitions, immutable publication snapshots, open/close/edit windows, draft saving policy, submission limits, confirmation pages, abuse protection, publish impact preview, and authorized close/archive behavior. Walkthrough step: 3.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "forms",
      "acceptance_criteria": "Clock-controlled tests cover every transition and boundary, concurrent publication, edit deadlines, limits, confirmations, abuse throttling, stale impact previews, and preservation of answers tied to prior versions.",
      "dependencies": [
        "build-form-branch-preview",
        "implement-change-impact-confirmation",
        "implement-form-rule-engine"
      ]
    },
    {
      "slug": "build-public-cfp-page",
      "title": "Build the accessible branded public CFP surface",
      "description": "Source: artifact 5 section 10.3. Normative IDs: FR-CFP-001. Build event slug/custom-domain isolated CFP pages with branding, responsive layouts, WCAG semantics, explicit indexing policy, CSRF/abuse defenses, timezone labels, and empty/loading/error/closed states.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "cfp",
      "acceptance_criteria": "Browser tests across mobile/desktop verify branding, event/domain isolation, keyboard/screen-reader semantics, indexing headers, closed-window behavior, abuse limits, Core Web Vitals instrumentation, and absence of organizer/private data.",
      "dependencies": [
        "build-web-shell-i18n",
        "harden-web-security",
        "implement-form-publication-policy"
      ]
    },
    {
      "slug": "implement-cfp-draft-resume",
      "title": "Implement secure CFP draft, resume, submit, and withdrawal lifecycle",
      "description": "Source: artifact 5 sections 9.3 and 10.3. Normative IDs: FR-CFP-002, FR-CFP-003. Implement draft-submitted-under_review-accepted/declined/waitlisted-withdrawn transitions, save/resume/edit policy, verified identity, single-purpose expiring resume tokens protected from guessing/reuse/leakage/enumeration, and withdrawal confirmation. Walkthrough step: 4.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "cfp",
      "acceptance_criteria": "API/browser/security tests cover every lifecycle transition, token expiry/rotation/reuse, enumeration-neutral responses, session/device changes, edit deadlines, withdrawal, audit history, and recovery without exposing a proposal to another submitter.",
      "dependencies": [
        "build-public-cfp-page",
        "implement-audit-ledger",
        "implement-identity-sessions"
      ]
    },
    {
      "slug": "implement-cfp-participants-dedup",
      "title": "Implement proposal participants and nonblocking duplicate detection",
      "description": "Source: artifact 5 section 10.3. Normative IDs: FR-CFP-004, FR-CFP-005. Support multiple submitter/speaker/moderator/chair/custom participants with order and invitations; compute explainable probable contact/proposal duplicates using normalized identifiers and similarity without blocking legitimate submissions or exposing matches publicly.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "cfp",
      "acceptance_criteria": "Tests cover all roles, multiple participants, invite acceptance, legitimate same-name people, duplicate scoring/explanations, organizer resolution, privacy isolation, and no automatic destructive merge.",
      "dependencies": [
        "define-privacy-data-registry",
        "implement-cfp-draft-resume"
      ]
    },
    {
      "slug": "implement-submission-commit-routing",
      "title": "Implement atomic submission commit, routing, and confirmation",
      "description": "Source: artifact 5 sections 8.1 and 10.3. Normative IDs: FR-CFP-006. On submit, atomically freeze the form-version response, validate authoritative rules, compute category/track/reviewer/template routing, assign a stable reference, transition state, write audit/outbox events, enqueue a real confirmation email, and return durable status. Walkthrough steps: 4, 5.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "cfp",
      "acceptance_criteria": "Concurrency and failure-injection tests prove one committed reference, exact immutable response/routing lineage, no partial state or duplicate confirmation, visible provider failure/retry, and a live staging confirmation email.",
      "dependencies": [
        "implement-cfp-participants-dedup",
        "implement-form-publication-policy",
        "implement-form-rule-engine",
        "implement-outbox-jobs",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "build-organizer-submission-workspace",
      "title": "Build organizer submission search, export, comments, and correction history",
      "description": "Source: artifact 5 section 10.3. Normative IDs: FR-CFP-007, FR-CFP-008. Build authorized search/filter/bulk-tag/export/comment/audit workflows; organizer answer corrections must be attributed, preserve original values, create recoverable history, and never silently rewrite respondent answers. Walkthrough step: 5.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "cfp",
      "acceptance_criteria": "Browser/API tests cover search/filter combinations, bulk scope confirmation, safe export, concurrent comments, attributed corrections, original-value recovery, blinded/sensitive fields, tenant isolation, and complete audit evidence.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "implement-change-impact-confirmation",
        "implement-submission-commit-routing"
      ]
    },
    {
      "slug": "implement-evaluation-plans-rubrics",
      "title": "Implement evaluation plans, rounds, and weighted rubrics",
      "description": "Source: artifact 5 sections 8, 9.4, and 10.4. Normative IDs: FR-EVAL-001, FR-EVAL-002. Implement multiple plans and ordered rounds with independent windows, instructions, filters, evaluator pools, rubric snapshots, weighted numeric, choice, yes/no, and narrative criteria; reject invalid weights and transitions. Walkthrough step: 6.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Tests create two rounds, validate all criterion types and weight totals, enforce immutable round/rubric snapshots once used, handle dates/timezones, filter eligibility, authorize changes, and audit lifecycle transitions.",
      "dependencies": [
        "build-organizer-submission-workspace",
        "implement-event-taxonomies"
      ]
    },
    {
      "slug": "enforce-blind-review-policy",
      "title": "Enforce open, single-blind, and double-blind review data policy",
      "description": "Source: artifact 5 section 10.4. Normative IDs: FR-EVAL-003. Implement round-specific blind modes as server query/serialization policies that omit identities and hidden fields from API payloads, HTML, exports, logs, traces, search indexes, notifications, and AI inputs; protect indirect identifiers and attachment access. Walkthrough step: 7.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Adversarial API/browser/export/log tests prove forbidden fields and attachment metadata are absent rather than redacted after serialization for every role and blind mode, including errors and aggregates.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "implement-evaluation-plans-rubrics",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "implement-evaluation-assignment",
      "title": "Implement balanced evaluation assignment and conflict-of-interest blocking",
      "description": "Source: artifact 5 sections 9.4 and 10.4. Normative IDs: FR-EVAL-004, FR-EVAL-008. Implement manual and deterministic balanced assignment constrained by track/category, expertise, declared conflicts, maximum workload, eligibility, and stable tie-breaking; conflict declarations block record access and scoring until authorized resolution. Walkthrough step: 6.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Deterministic/property tests prove balance, constraints, stable re-runs, manual changes, workload caps, conflict access denial, resolution audit, and no assignment leakage across events or blind policies.",
      "dependencies": [
        "enforce-blind-review-policy",
        "implement-evaluation-plans-rubrics"
      ]
    },
    {
      "slug": "build-evaluator-workspace",
      "title": "Build evaluator draft, submit, and reminder workflow",
      "description": "Source: artifact 5 sections 9.4 and 10.4. Normative IDs: FR-EVAL-005. Build evaluator queues and rubric entry with permitted records only, draft autosave, completeness validation, submitted state, deadlines, and real targeted reminders. Walkthrough steps: 6, 7.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Browser/API tests cover autosave recovery, rubric validation, submit/late policy, inaccessible records, blind payloads, concurrent edits, deadline/timezone behavior, and one live reminder only to eligible incomplete evaluators.",
      "dependencies": [
        "build-web-shell-i18n",
        "enforce-mail-suppression",
        "implement-campaign-scheduling",
        "implement-evaluation-assignment"
      ]
    },
    {
      "slug": "build-evaluation-monitoring",
      "title": "Build evaluation completion, reopen, scoring, and export operations",
      "description": "Source: artifact 5 section 10.4. Normative IDs: FR-EVAL-006. Implement organizer completion dashboards, authorized reopen-with-reason, reassignment, per-criterion and aggregate score calculations, filters, and secure exports that respect blind/sensitive policy.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Tests prove real-time counts, exact score math and rounding, reopen/reassign transitions, immutable submitted-history snapshots, safe exports, blind policy, authorization, and audit rationale.",
      "dependencies": [
        "build-evaluator-workspace",
        "implement-audit-ledger"
      ]
    },
    {
      "slug": "implement-round-progression",
      "title": "Implement immutable multi-round progression",
      "description": "Source: artifact 5 sections 9.3, 9.4, and 10.4. Normative IDs: FR-EVAL-007. Implement explicit selection rules and authorized progression from one round to the next, snapshot eligible submissions/evaluations/score inputs, preserve previous round results, and expose progression history. Walkthrough step: 7.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Two-round integration tests prove deterministic eligibility, snapshot immutability, no rewrite from later submission/rubric edits, partial-failure atomicity, rollback by a new audited operation, and authorization.",
      "dependencies": [
        "build-evaluation-monitoring"
      ]
    },
    {
      "slug": "implement-human-decisions",
      "title": "Implement human decisions and explicit communications",
      "description": "Source: artifact 5 sections 9.3 and 10.4. Normative IDs: FR-EVAL-009. Implement authorized accept, decline, and waitlist decisions with optional rationale, impact preview, immutable history, reversal through a new decision, and separately confirmed real templated communications. AI can never finalize a decision. Walkthrough step: 8.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "evaluation",
      "acceptance_criteria": "Tests cover all decisions, authorization, stale confirmation, reversal, no-send and explicit-send paths, correct audience/template, real staging delivery, idempotency, and audit evidence naming the human actor.",
      "dependencies": [
        "build-message-templates",
        "implement-change-impact-confirmation",
        "implement-round-progression",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "convert-submissions-to-program",
      "title": "Convert accepted submissions into sessions and participants idempotently",
      "description": "Source: artifact 5 sections 8 and 10.5. Normative IDs: FR-SPK-001. Convert accepted proposals into organization contacts, event participants, sessions, and participant roles while preserving submission/answer/decision lineage, using stable idempotency and probable-duplicate review instead of destructive automatic merging. Walkthrough step: 9.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "speakers",
      "acceptance_criteria": "Repeated and concurrent conversion tests produce one session/participant set, preserve source lineage, flag duplicates, retain event-specific values, reject nonaccepted proposals, and audit every material change.",
      "dependencies": [
        "implement-cfp-participants-dedup",
        "implement-human-decisions"
      ]
    },
    {
      "slug": "implement-contact-profiles",
      "title": "Implement contact profiles and field-level speaker editing",
      "description": "Source: artifact 5 section 10.5. Normative IDs: FR-SPK-002, FR-SPK-003, FR-SPK-004. Implement organization contact and event-participant profiles for bio, headshot, pronouns, title, company, email, phone policy, social links, accessibility/dietary needs, consent, and custom fields; distinguish cross-event history from isolated event values and enforce organizer-opened, locked, and public fields.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "speakers",
      "acceptance_criteria": "API/browser tests prove field types and visibility, only opened fields are speaker-editable, locked/public labels are clear, organization history and event values do not leak or overwrite, sensitive values are protected, and all changes are audited.",
      "dependencies": [
        "convert-submissions-to-program",
        "define-privacy-data-registry",
        "enforce-authorization-tenancy"
      ]
    },
    {
      "slug": "implement-scoped-portal-access",
      "title": "Implement scoped speaker, co-presenter, and assistant portal access",
      "description": "Source: artifact 5 section 10.5. Normative IDs: FR-SPK-006. Issue verified expiring portal invitations and sessions scoped to assigned event/person/session/modules; support co-presenters and assistants without organizer privilege inheritance, immediate revocation, and visible account/session history.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "Identity/browser tests prove each participant type can access only assigned modules/records/fields, cross-person and organizer operations are denied, tokens expire/revoke, and invitations are idempotent and audited.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "implement-contact-profiles",
        "implement-identity-sessions"
      ]
    },
    {
      "slug": "build-speaker-portal-shell",
      "title": "Build configurable personalized speaker portal",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-001, FR-PORTAL-002. Build event-branded portal navigation and configurable audience/module assignments showing profile, sessions, schedule, tasks, forms, files, messages, deadlines, and resources with empty/loading/error/permission states. Walkthrough step: 10.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "Browser tests for speaker, co-presenter, and assistant prove personalization, module assignment, branding, responsive/keyboard navigation, timezone labels, revoked access, and no unauthorized module or record data in payloads.",
      "dependencies": [
        "build-web-shell-i18n",
        "implement-event-lifecycle",
        "implement-scoped-portal-access"
      ]
    },
    {
      "slug": "implement-portal-task-engine",
      "title": "Implement portal task applicability and approval state machine",
      "description": "Source: artifact 5 sections 9.5 and 10.6. Normative IDs: FR-PORTAL-003, FR-PORTAL-004. Implement task definitions and assignments with applicability rules, absolute/relative due dates, dependencies, evidence, reminders, completion, approval, waiver-with-rationale, changes requested, overdue, and actionable blocking explanations.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "State-machine/property tests cover every transition, dependency cycle rejection, applicability, due-date/DST calculation, impossible-action explanations, evidence, waiver/approval authorization, reminders, restart recovery, and audit history.",
      "dependencies": [
        "build-speaker-portal-shell",
        "implement-campaign-scheduling",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "implement-portal-assigned-forms",
      "title": "Implement immutable conditional portal form assignments",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-005. Assign immutable published form versions to portal audiences, reuse authoritative conditional logic, enforce assignment/deadline/edit policy, expose completion state, and preserve responses and replacement-version history.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "Integration/browser tests prove audience targeting, immutable version linkage, conditional parity, deadline/edit behavior, response visibility, version replacement policy, completion updates, and tenant/person isolation.",
      "dependencies": [
        "build-speaker-portal-shell",
        "implement-form-publication-policy",
        "implement-form-rule-engine"
      ]
    },
    {
      "slug": "implement-file-request-transfers",
      "title": "Implement portal file requests and signed transfers",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-006, FR-PORTAL-007. Implement file-request policy for media types, size, count, deadline, owner, visibility, replacement/version behavior; issue short-lived signed multipart transfers, verify checksums plus MIME/magic bytes, quarantine all new bytes, and serve only through authorized signed downloads. Walkthrough step: 10.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "files",
      "acceptance_criteria": "Real staging-storage tests cover permitted and rejected types/sizes/counts, expired/replayed URLs, checksum and MIME mismatch, interrupted multipart recovery, version replacement, cross-tenant denial, quarantine, and authorized clean download.",
      "dependencies": [
        "build-speaker-portal-shell",
        "harden-web-security",
        "implement-object-storage"
      ]
    },
    {
      "slug": "implement-file-scan-recovery",
      "title": "Implement malware scanning and recoverable upload failures",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-008. Connect a real scanning service/engine to quarantined uploads, model pending-clean-unsafe-failed states, retry transient scans, surface unsupported/interrupted/failed outcomes, allow safe replacement, prevent unsafe bytes from being served, and reconcile missing objects/records.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "files",
      "acceptance_criteria": "Integration tests with real staging scanner cover clean test files, standard antivirus test signatures, timeout/retry, terminal failure, interrupted upload, replacement, never-served quarantine/unsafe objects, operator visibility, and reconciliation.",
      "dependencies": [
        "implement-file-request-transfers",
        "implement-outbox-jobs",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "build-portal-resource-pages",
      "title": "Build sanitized portal resources and mediated embeds",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-009. Build event/audience resource pages with sanitized rich text, safe links, authorized attachments, and allowlisted sandboxed HTML embeds; prohibit scripts and active content unless a separately trusted integration mediates them. Walkthrough step: 10.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "Browser/security tests cover audience assignment, sanitization bypass payloads, unsafe URL schemes, attachment authorization, iframe sandbox/allowlist/CSP, responsive rendering, revision history, and absence of arbitrary script execution.",
      "dependencies": [
        "build-speaker-portal-shell",
        "harden-web-security",
        "implement-object-storage"
      ]
    },
    {
      "slug": "build-onboarding-dashboard",
      "title": "Build real-time speaker onboarding and reminder dashboard",
      "description": "Source: artifact 5 section 10.6. Normative IDs: FR-PORTAL-010. Build aggregate and per-speaker outstanding task/form/file dashboards with filters, due/overdue state, drill-down, update timestamps, secure small-group handling, and targeted real reminder actions. Walkthrough step: 11.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "portal",
      "acceptance_criteria": "Integration/browser tests prove aggregate/source consistency after each task/form/file state change, correct audience and due filters, authorized drill-down, no sensitive leakage, and a real reminder sent only once to the selected incomplete audience.",
      "dependencies": [
        "enforce-mail-suppression",
        "implement-campaign-scheduling",
        "implement-file-scan-recovery",
        "implement-portal-assigned-forms",
        "implement-portal-task-engine"
      ]
    },
    {
      "slug": "implement-icalendar-delivery",
      "title": "Implement standards-compliant iCalendar invitation delivery",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-008. Implement RFC 5545 iCalendar, RFC 5546 iTIP, and RFC 6047 iMIP generation/delivery with stable UID, organizer, attendees, IANA timezone components, sequence, and REQUEST/CANCEL methods through the real transactional provider.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "calendar",
      "acceptance_criteria": "Parser/contract tests validate folding, escaping, timezone/DST, MIME parts, stable UID, organizer/attendees and methods; a live staging invitation is accepted by at least one independent standards-compliant calendar client.",
      "dependencies": [
        "build-message-templates",
        "convert-submissions-to-program",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "build-agenda-domain-views",
      "title": "Build agenda placement domain and organizer views",
      "description": "Source: artifact 5 sections 8, 9.6, and 10.8. Normative IDs: FR-AGENDA-001, FR-AGENDA-003. Implement searchable session list, day, week, track, and room views; placements store start/end or duration, IANA timezone, room, track context, draft/published state, version, and one active placement invariant. Walkthrough step: 12.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Repository/API/browser tests cover all views and filters, multi-day/DST placement math, draft/publish lifecycle, one-active-placement constraint, authorization, stable ordering, responsive rendering, and audit events.",
      "dependencies": [
        "build-web-shell-i18n",
        "convert-submissions-to-program",
        "enforce-authorization-tenancy",
        "implement-audit-ledger",
        "implement-event-taxonomies"
      ]
    },
    {
      "slug": "build-accessible-agenda-editor",
      "title": "Build drag-drop and keyboard-equivalent agenda editing",
      "description": "Source: artifact 5 sections 10.8 and 12. Normative IDs: FR-AGENDA-002, NFR-A11Y-001. Implement authorized form controls plus pointer drag/drop with equivalent keyboard move/date/time/room operations, accessible announcements, focus preservation, impact preview, and server-authoritative validation. Walkthrough step: 12.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Browser tests using mouse, touch-sized controls, and keyboard/screen-reader flows perform identical moves; errors/conflicts are announced; focus remains logical; permission and stale-preview failures leave placement unchanged.",
      "dependencies": [
        "build-agenda-domain-views",
        "implement-change-impact-confirmation"
      ]
    },
    {
      "slug": "implement-hard-conflict-engine",
      "title": "Implement deterministic hard agenda conflict validation",
      "description": "Source: artifact 5 section 10.8. Normative IDs: FR-AGENDA-004, FR-AGENDA-005. Before commit, compute complete new/resolved conflicts for speaker/moderator/chair overlap, room overlap, event/room availability, invalid duration, and duplicate active placement using deterministic interval semantics. Walkthrough step: 12.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Property and database tests cover boundaries, simultaneous changes, roles, rooms, availability, DST, zero/negative duration, duplicate placement, complete new/resolved sets, deterministic ordering, and no partial commit on hard conflict.",
      "dependencies": [
        "build-agenda-domain-views"
      ]
    },
    {
      "slug": "implement-agenda-warnings-overrides",
      "title": "Implement agenda warnings and authorized overrides",
      "description": "Source: artifact 5 section 10.8. Normative IDs: FR-AGENDA-006, FR-AGENDA-007. Add configurable warnings for track overlap, speaker preference, capacity, sequencing, buffers, and distribution imbalance; hard conflicts block unless explicit policy permits an authorized override with rationale and append-only audit evidence.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Rule tests cover every warning and configuration; hard conflicts block by default; only eligible principals can override eligible conflict types; rationale is required and visible; disabled policies cannot be bypassed by API or UI.",
      "dependencies": [
        "implement-audit-ledger",
        "implement-hard-conflict-engine"
      ]
    },
    {
      "slug": "implement-agenda-concurrency-history",
      "title": "Implement optimistic agenda concurrency and version restoration",
      "description": "Source: artifact 5 section 10.8. Normative IDs: FR-AGENDA-008, FR-AGENDA-010. Require placement/version preconditions, reject stale concurrent edits with current conflict context, record versioned change sets, expose audit history, and restore a prior agenda by creating and validating a new change set rather than rewriting history. Walkthrough step: 12.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Concurrent integration/browser tests prove no silent overwrite, useful conflict responses, complete history, authorized restore through new validation, immutable prior versions, and correct hard/warning conflict behavior on restore.",
      "dependencies": [
        "implement-agenda-warnings-overrides",
        "implement-audit-ledger",
        "implement-hard-conflict-engine"
      ]
    },
    {
      "slug": "implement-calendar-update-cancel",
      "title": "Implement calendar update/cancel lifecycle and client compatibility",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-009, FR-COMMS-010. Bind calendar series to session/placement changes, increment sequence idempotently, deliver REQUEST updates and CANCEL invalidations, reconcile delivery, explain recipient RSVP/trust limitations, and validate Gmail, Microsoft 365, and an independent client. Walkthrough step: 13.",
      "status": "pending",
      "priority": "P1",
      "program": "session-board-production",
      "group": "calendar",
      "acceptance_criteria": "Live end-to-end tests send, update, and cancel one series with stable UID/increasing sequence through Gmail, Outlook/Microsoft 365, and an independent parser/client; duplicate jobs do not fork events and UI copy never promises silent insertion.",
      "dependencies": [
        "build-agenda-domain-views",
        "implement-icalendar-delivery",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "integrate-ai-evaluation-advice",
      "title": "Integrate policy-safe real AI evaluation advice",
      "description": "Source: artifact 5 sections 5.3 and 10.4. Normative IDs: FR-EVAL-010, FR-EVAL-011. Implement an optional configured real AI provider that returns advisory criterion suggestions and rationale only; construct minimized consent/region/retention-compliant prompts after blind filtering, validate structured outputs, retain attributable advisory lineage, expose failures, and prevent output from overwriting or blocking human evaluation.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "ai",
      "acceptance_criteria": "Live staging-provider and failure tests prove disabled state without configuration, blind/minimized prompts, structured validation, timeout/rate-limit visibility, no fabricated fallback, immutable advisory provenance, and mandatory independent human scoring.",
      "dependencies": [
        "define-privacy-data-registry",
        "enforce-blind-review-policy",
        "implement-evaluation-plans-rubrics",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "integrate-ai-agenda-advice",
      "title": "Integrate real AI agenda suggestions behind deterministic validation",
      "description": "Source: artifact 5 sections 5.3 and 10.8. Normative IDs: FR-AGENDA-011. Add optional real-provider agenda suggestions with minimized inputs and visible rationale; every suggestion remains uncommitted until human confirmation and must pass the deterministic conflict engine and authorization unchanged.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "ai",
      "acceptance_criteria": "Live staging-provider tests show useful structured suggestions, disabled/error states without fabrication, minimized inputs, conflict-engine rejection, mandatory human confirmation, no direct write capability, and advisory audit lineage.",
      "dependencies": [
        "build-accessible-agenda-editor",
        "implement-agenda-warnings-overrides",
        "integrate-ai-evaluation-advice"
      ]
    },
    {
      "slug": "integrate-google-calendar",
      "title": "Implement optional direct Google Calendar OAuth reconciliation",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-011. Implement a real optional Google Calendar connection with OAuth consent, least-privilege scopes, encrypted refresh-token reference, revocation, stable provider mapping, update/cancel reconciliation, visible disabled/error health, and standards invitations retained as the baseline path.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "calendar",
      "acceptance_criteria": "Live Google sandbox/account tests cover consent, scopes, token refresh/rotation/revocation, create/update/cancel, duplicate/reconciliation, provider outage, secret redaction, and fallback to standards-compliant invitations without fake success.",
      "dependencies": [
        "harden-web-security",
        "implement-calendar-update-cancel"
      ]
    },
    {
      "slug": "integrate-microsoft-calendar",
      "title": "Implement optional direct Microsoft Calendar OAuth reconciliation",
      "description": "Source: artifact 5 section 10.7. Normative IDs: FR-COMMS-011. Implement a real optional Microsoft 365 Calendar connection with OAuth consent, least-privilege scopes, encrypted refresh-token reference, revocation, stable provider mapping, update/cancel reconciliation, visible disabled/error health, and standards invitations retained as the baseline path.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "calendar",
      "acceptance_criteria": "Live Microsoft sandbox/account tests cover consent, scopes, token refresh/rotation/revocation, create/update/cancel, duplicate/reconciliation, provider outage, secret redaction, and fallback to standards-compliant invitations without fake success.",
      "dependencies": [
        "harden-web-security",
        "implement-calendar-update-cancel"
      ]
    },
    {
      "slug": "build-operational-dashboards",
      "title": "Build secure operational event dashboards",
      "description": "Source: artifact 5 section 10.9. Normative IDs: FR-REPORT-001, FR-REPORT-002, FR-REPORT-006. Build dashboards for submission states, evaluation progress, decision funnel, onboarding, overdue tasks, message health, agenda conflicts, publication, and integrations; every aggregate links to authorized filtered records, reports update time, and prevents blind/sensitive/cross-tenant or small-group inference. Walkthrough step: 17.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "reporting",
      "acceptance_criteria": "Database/API/browser tests reconcile every aggregate to source records after state changes, enforce role/blind/field policy and small-group suppression, link filters correctly, display freshness, and never expose another tenant.",
      "dependencies": [
        "build-evaluation-monitoring",
        "build-onboarding-dashboard",
        "build-organizer-submission-workspace",
        "implement-agenda-concurrency-history",
        "integrate-transactional-email"
      ]
    },
    {
      "slug": "build-saved-filters",
      "title": "Build saved filters for all operational record sets",
      "description": "Source: artifact 5 section 10.9. Normative IDs: FR-REPORT-003. Implement user/event-scoped saved filters and tabular views for submissions, speakers, sessions, evaluations, tasks, messages, agenda, and sync results with typed criteria, stable sorting, permission re-evaluation, sharing policy, and versioned schema migration.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "reporting",
      "acceptance_criteria": "Tests create and reuse filters for every record set, reject unknown/unauthorized fields, preserve stable pagination/sorting, handle renamed/removed fields, enforce sharing/tenant policy, and link dashboard aggregates accurately.",
      "dependencies": [
        "build-operational-dashboards"
      ]
    },
    {
      "slug": "implement-secure-async-exports",
      "title": "Implement authorized asynchronous exports",
      "description": "Source: artifact 5 sections 10.9 and 12. Normative IDs: FR-REPORT-004, FR-REPORT-005, NFR-UX-002. Implement background exports for all specified tables with authorization at request, execution, and download; progress, safe cancellation, durable results, expiry/deletion, audit, bounded pagination/backpressure, CSV formula-injection mitigation, stable IDs, and timezone semantics.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "reporting",
      "acceptance_criteria": "Large-data integration tests prove bounded resource use, progress/restart, revoked-access denial, safe cancellation, expiry, signed download, audit evidence, CSV injection neutralization, stable IDs/timezones, and no blinded or cross-tenant fields.",
      "dependencies": [
        "build-saved-filters",
        "implement-audit-ledger",
        "implement-object-storage",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "publish-program-content",
      "title": "Implement speaker, session, agenda, and itinerary publication",
      "description": "Source: artifact 5 sections 9.6 and 10.10. Normative IDs: FR-PUB-001, FR-PUB-004. Implement draft-published-unpublished session/speaker content, authorized publication impact preview, standalone speaker gallery/session list/agenda/itinerary projections, and schema-level selection of only approved speakers, published sessions, and explicitly public fields. Walkthrough step: 14.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "public",
      "acceptance_criteria": "Publication tests cover lifecycle transitions, incomplete-content rejection, scheduled/unscheduled sessions, approved/public-field policy, unpublish, tenant isolation, audit, and adversarial proof that private/sensitive fields never enter public projections.",
      "dependencies": [
        "implement-agenda-concurrency-history",
        "implement-change-impact-confirmation",
        "implement-contact-profiles"
      ]
    },
    {
      "slug": "build-public-embed-experience",
      "title": "Build responsive public pages and configurable embeds",
      "description": "Source: artifact 5 section 10.10. Normative IDs: FR-PUB-002, FR-PUB-003. Build mobile-first accessible standalone and embeddable gallery, session, agenda, and itinerary views with safe theme tokens, event/date/track/room/format/tag filters, search, field selection, detail panels, locale/timezone display, cacheable responses, and no third-party-cookie dependency. Walkthrough step: 14.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "public",
      "acceptance_criteria": "Browser tests cover all view/filter combinations, responsive/mobile rendering, keyboard/screen-reader operation, safe themes, locale/timezone output, embed without cookies, public-only payloads, empty/error states, and representative Core Web Vitals.",
      "dependencies": [
        "build-web-shell-i18n",
        "publish-program-content"
      ]
    },
    {
      "slug": "implement-public-cache-invalidation",
      "title": "Implement versioned public caching and urgent refresh",
      "description": "Source: artifact 5 sections 10.10 and 13. Normative IDs: FR-PUB-005, NFR-PERF-005. Implement CDN/cache keys tied to publication versions, transactional invalidation events, automatic purge within five minutes, authorized urgent refresh within one minute, stale-while-revalidate policy that never re-exposes unpublished/private content, and observable purge state.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "public",
      "acceptance_criteria": "Clocked integration tests prove publication/unpublication propagation targets, urgent refresh authorization, duplicate/out-of-order invalidation safety, private-content eviction, provider failure visibility/retry, and cache metrics.",
      "dependencies": [
        "implement-outbox-jobs",
        "instrument-request-job-context",
        "publish-program-content"
      ]
    },
    {
      "slug": "harden-public-embed-boundary",
      "title": "Harden embed messaging, SEO, and origin boundaries",
      "description": "Source: artifact 5 section 10.10. Normative IDs: FR-PUB-006, FR-PUB-007. Provide constrained script/iframe origins, route-specific CSP and sandbox, documented versioned resize/event messaging with origin validation and no host-page data access, canonical URLs, indexing controls, social metadata, and valid structured data.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "public",
      "acceptance_criteria": "Security/browser/metadata tests reject hostile origins/messages and host-data access, enforce sandbox/CSP, verify resize protocol, canonical/robots/social output, structured-data validity, and consistent public-field policy.",
      "dependencies": [
        "build-public-embed-experience",
        "harden-web-security"
      ]
    },
    {
      "slug": "connect-accelevents",
      "title": "Implement Accelevents credentials, destination, and field mappings",
      "description": "Source: artifact 5 section 10.11. Normative IDs: FR-ACC-001, FR-ACC-002, FR-ACC-003. Implement real secret-manager-backed Accelevents credentials, connection health, one internal event to one provider destination, versioned speaker/session field mappings, provider schema discovery/validation, and explicit one-way Session Board-to-Accelevents authority.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "accelevents",
      "acceptance_criteria": "Live sandbox tests verify credential storage/reference, health, event binding, mapping validation, rotation/revocation, redaction, and that inbound/provider data cannot overwrite authoritative internal records.",
      "dependencies": [
        "configure-environments",
        "harden-web-security",
        "implement-event-lifecycle"
      ]
    },
    {
      "slug": "build-accelevents-preview",
      "title": "Build Accelevents eligibility and real-data sync preview",
      "description": "Source: artifact 5 section 10.11. Normative IDs: FR-ACC-004, FR-ACC-005. Apply configurable approved/published eligibility and permitted participants; compare real local data to live provider schema/state and preview creates, updates, deactivations, skips, mapping errors, and unsupported values without mutating the provider or presenting preview as a sync.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "accelevents",
      "acceptance_criteria": "Live sandbox preview tests cover every outcome and eligibility transition, exact counts and record diffs, unsupported mappings, private-field exclusion, authorization, provider schema changes, and proof no provider mutation occurs.",
      "dependencies": [
        "connect-accelevents",
        "implement-change-impact-confirmation",
        "publish-program-content"
      ]
    },
    {
      "slug": "implement-accelevents-sync-engine",
      "title": "Implement idempotent checkpointed Accelevents synchronization",
      "description": "Source: artifact 5 section 10.11. Normative IDs: FR-ACC-006. Implement provider-ID mapping, per-item idempotency/checkpoints, bounded concurrency, rate-limit honoring, classified exponential backoff with jitter, redacted responses, dead-letter state, and resume after worker/process failure.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "accelevents",
      "acceptance_criteria": "Contract and live sandbox tests cover create/update duplicates, process interruption/resume, rate limiting, transient/terminal errors, checkpoint correctness, bounded concurrency, redaction, and no duplicate provider records.",
      "dependencies": [
        "build-accelevents-preview",
        "implement-outbox-jobs",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "implement-accelevents-recovery-audit",
      "title": "Implement Accelevents deactivation, selective retry, and run audit",
      "description": "Source: artifact 5 section 10.11. Normative IDs: FR-ACC-007, FR-ACC-008, FR-ACC-009. Apply confirmed provider-safe removal/deactivation policy when records become deleted/unpublished/ineligible; expose run trigger/actor/source versions/item outcomes/redacted responses/retries/reconciliation; retry corrected selected failures without duplicating successes.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "accelevents",
      "acceptance_criteria": "Live sandbox tests create then update/deactivate records, preview impact, induce mixed failures, retry selected items, preserve successes, reconcile state, and display complete authorized audit evidence with no secrets.",
      "dependencies": [
        "implement-accelevents-sync-engine",
        "implement-audit-ledger",
        "implement-change-impact-confirmation"
      ]
    },
    {
      "slug": "serialize-accelevents-triggers",
      "title": "Serialize manual, scheduled, and event-triggered Accelevents sync",
      "description": "Source: artifact 5 sections 9.7 and 10.11. Normative IDs: FR-ACC-010. Implement disabled-healthy-degraded states and queued-validated-running-succeeded/partial/failed/canceled/reconciled runs; safely coexist manual, scheduled, and event-triggered sync through per-connection serialization, coalescing, restart recovery, and explicit cancellation semantics.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "accelevents",
      "acceptance_criteria": "Concurrency and restart tests prove one active mutation stream per connection, safe coalescing/order, no lost trigger, correct lifecycle transitions, cancellation boundaries, eventual reconciliation, and actionable degraded health.",
      "dependencies": [
        "implement-accelevents-recovery-audit",
        "implement-campaign-scheduling"
      ]
    },
    {
      "slug": "build-api-contract-foundation",
      "title": "Build versioned OpenAPI and JSON API foundation",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-002. Implement versioned JSON conventions, OpenAPI generation, examples and schemas, stable error contracts, cursor pagination, filtering, sorting, expansions, request/response validation, rate/deprecation headers, compatibility policy, and generated documentation deployed with the API.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "Contract tests validate the generated OpenAPI document, examples, schema/request/response parity, errors, pagination stability, filters/sorts/expansions, version negotiation, and deprecation metadata; docs contain no nonexistent endpoint.",
      "dependencies": [
        "enforce-authorization-tenancy",
        "harden-web-security",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "build-api-admin-resources",
      "title": "Expose organization, event, and taxonomy API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned API resources for organizations, events, and taxonomies using existing domain services, including documented list/get/create/update/archive/restore actions where policy permits; do not duplicate lifecycle or authorization logic.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed integration tests cover every organization/event/taxonomy resource and action, pagination/filtering/sorting, tenant/role policy, lifecycle errors, stable IDs, audit/outbox effects, and organizer UI parity.",
      "dependencies": [
        "build-api-contract-foundation",
        "implement-event-taxonomies"
      ]
    },
    {
      "slug": "build-api-program-resources",
      "title": "Expose contact, speaker, session, and agenda API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources for contacts, event participants, speakers, sessions, agenda placements/conflicts/history, and publication state, delegating state transitions, conflicts, field visibility, and concurrency to domain services.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed integration tests cover every resource/action, role and field policy, agenda validation/concurrency, stable identifiers, tenant isolation, audit/outbox effects, and organizer workflow parity.",
      "dependencies": [
        "build-api-contract-foundation",
        "implement-agenda-concurrency-history",
        "implement-contact-profiles",
        "publish-program-content"
      ]
    },
    {
      "slug": "build-api-operations-resources",
      "title": "Expose dashboard, filter, and export API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources/actions for dashboards, saved filters, asynchronous exports, progress, results, expiry, cancellation, and authorized downloads while delegating all aggregate, security, and job behavior to existing services.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed tests cover dashboards, saved filters and every export lifecycle action, asynchronous progress/results, scope and field policy, tenant isolation, signed download, cancellation/expiry, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "implement-secure-async-exports"
      ]
    },
    {
      "slug": "enforce-api-write-semantics",
      "title": "Enforce API schema, field authorization, idempotency, and concurrency",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-003. Apply content-type/schema validation, per-field authorization, idempotency keys with canonical request hashes and expiry to retryable writes, optimistic concurrency preconditions, stable validation/conflict errors, and transaction/outbox boundaries across all write endpoints.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "Generated endpoint-matrix tests reject malformed or unauthorized fields, prove same-key same-request replay and conflicting-key rejection, prevent stale overwrites, preserve atomic side effects, and return documented stable errors.",
      "dependencies": [
        "build-api-admin-resources",
        "build-api-communication-public-resources",
        "build-api-evaluation-resources",
        "build-api-form-submission-resources",
        "build-api-integration-resources",
        "build-api-operations-resources",
        "build-api-portal-resources",
        "build-api-program-resources",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "implement-api-client-auth-rate-limits",
      "title": "Implement scoped API client credentials and risk-based rate limits",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-004, FR-API-005. Implement hashed opaque credentials or OAuth client flow, least-privilege scopes, event restrictions, expiry, rotation, immediate revocation, last-used audit, and rate limits by tenant/principal/route/abuse risk with stable retry information. Walkthrough step: 16.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "Security/API tests cover issue-once secrets, stored hashes, scope/event allow/deny, expiry/rotation/revocation, tenant isolation, layered rate buckets, Retry-After/stable errors, concurrent requests, and complete audit without credential leakage.",
      "dependencies": [
        "build-api-contract-foundation",
        "enforce-authorization-tenancy",
        "implement-audit-ledger"
      ]
    },
    {
      "slug": "implement-webhook-delivery",
      "title": "Implement versioned signed webhook delivery and redelivery",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-006, FR-API-007. Emit material create/update/delete/status/publish/decision/schedule/message/task/sync events through versioned payloads; deliver with HMAC/timestamp, replay protection, stable event IDs, bounded retries, dead-letter state, authorized manual redelivery, endpoint rotation/disable, and logs. Walkthrough step: 16.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "Contract/end-to-end tests cover all event families, HMAC verification, replay rejection, duplicate IDs, timeout/retry/dead-letter, secret rotation, disabled endpoints, manual redelivery, ordering metadata, and tenant-safe logs.",
      "dependencies": [
        "build-api-contract-foundation",
        "harden-web-security",
        "implement-audit-ledger",
        "implement-outbox-jobs"
      ]
    },
    {
      "slug": "enforce-api-sensitive-field-schemas",
      "title": "Enforce sensitive and blind fields through API schemas",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-008. Generate role/mode-specific API projections so sensitive and blind-review fields are never selected or serialized for unauthorized principals; apply the same policy to expansions, errors, search, exports, webhook payloads, and OpenAPI schemas.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "Adversarial matrix tests inspect raw responses, schema docs, expansions, errors, exports, and webhooks for every role/blind mode and prove prohibited fields and inferred identifiers are absent, not post-redacted.",
      "dependencies": [
        "build-api-admin-resources",
        "build-api-communication-public-resources",
        "build-api-evaluation-resources",
        "build-api-form-submission-resources",
        "build-api-integration-resources",
        "build-api-operations-resources",
        "build-api-portal-resources",
        "build-api-program-resources",
        "enforce-blind-review-policy",
        "implement-webhook-delivery"
      ]
    },
    {
      "slug": "wire-agenda-side-effects",
      "title": "Wire post-commit agenda cache, calendar, webhook, and sync side effects",
      "description": "Source: artifact 5 section 10.8. Normative IDs: FR-AGENDA-009. After and only after a validated agenda commit, transactionally emit public cache invalidation, calendar update/cancel, signed webhook, and eligible Accelevents sync events with stable version/idempotency metadata; expose partial external failures without rolling back authoritative schedule state.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "agenda",
      "acceptance_criteria": "Failure-injection tests prove no side effect before commit, exactly-once observable results under duplicate delivery, correct version ordering, visible independent retries, cache/calendar/webhook/Accelevents convergence, and no corruption when providers fail.",
      "dependencies": [
        "implement-agenda-concurrency-history",
        "implement-calendar-update-cancel",
        "implement-public-cache-invalidation",
        "implement-webhook-delivery",
        "serialize-accelevents-triggers"
      ]
    },
    {
      "slug": "validate-live-accelevents",
      "title": "Validate complete Accelevents behavior against a live sandbox event",
      "description": "Source: artifact 5 section 10.11. Normative IDs: FR-ACC-011. Execute and automate where provider-safe the live sandbox/test-event path: connection, mapping preview, create, update, unpublish/deactivate, induced retryable failure, selected retry, final reconciliation, trigger serialization, secret redaction, and operator evidence. Walkthrough step: 15.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "validation",
      "acceptance_criteria": "A timestamped durable report from a real Accelevents sandbox identifies internal/provider records and run IDs, proves every required transition and recovery, records provider/version constraints without secrets, and has no unresolved mismatch or fixture-only substitution.",
      "dependencies": [
        "serialize-accelevents-triggers",
        "wire-agenda-side-effects"
      ]
    },
    {
      "slug": "implement-contact-privacy-operations",
      "title": "Implement contact merge, restore, access, and erasure operations",
      "description": "Source: artifact 5 sections 10.5 and 11. Normative IDs: FR-SPK-005, NFR-PRIV-003. Implement reviewed duplicate merge with reversible lineage, soft deletion/restore, authorized data export, identity-verified access and erasure requests, legal/retention exceptions, per-provider completion tracking, and audit evidence.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "privacy",
      "acceptance_criteria": "Integration tests cover merge conflicts/rollback, restore, scoped export, verified request intake, legal hold/retention exception, asynchronous provider deletion tracking, completion evidence, and no deletion or disclosure to an unverified requester.",
      "dependencies": [
        "define-privacy-data-registry",
        "implement-audit-ledger",
        "implement-contact-profiles"
      ]
    },
    {
      "slug": "minimize-observability-data",
      "title": "Enforce personal-data minimization across operational surfaces",
      "description": "Source: artifact 5 section 11. Normative IDs: NFR-PRIV-004. Apply privacy registry policies to logs, traces, metrics labels, analytics, exports, AI prompts, support/operator tools, email/calendar evidence, webhooks, and Accelevents responses; tokenize or omit personal values and secrets while preserving diagnostic correlation.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "privacy",
      "acceptance_criteria": "Automated canary-secret and synthetic-PII scans across telemetry/export/provider artifacts find no prohibited values; permitted identifiers remain correlatable; policy tests cover error paths and operator views; violations block release.",
      "dependencies": [
        "define-privacy-data-registry",
        "implement-accelevents-recovery-audit",
        "implement-secure-async-exports",
        "implement-webhook-delivery",
        "instrument-request-job-context",
        "integrate-ai-evaluation-advice"
      ]
    },
    {
      "slug": "harden-runtime-reliability",
      "title": "Implement runtime resilience, health, and transaction boundaries",
      "description": "Source: artifact 5 section 14. Normative IDs: NFR-REL-001, NFR-REL-004, NFR-REL-006, NFR-REL-007. Define the 99.9% availability SLO; isolate provider timeout/rate-limit/partial outages; encode transaction and compensation/reconciliation boundaries for multi-record/external operations; implement secret-safe liveness/readiness plus database, migration, queue, storage, and provider health.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "reliability",
      "acceptance_criteria": "Failure-injection tests prove each provider outage degrades only dependent features, core state remains valid, health distinguishes each dependency, transactions/compensation converge, SLO indicators are calculable, and health output exposes no secrets.",
      "dependencies": [
        "implement-object-storage",
        "implement-outbox-jobs",
        "implement-webhook-delivery",
        "integrate-transactional-email",
        "serialize-accelevents-triggers"
      ]
    },
    {
      "slug": "build-operator-observability",
      "title": "Build alerts, operator controls, runbooks, and release annotations",
      "description": "Source: artifact 5 section 15. Normative IDs: NFR-OBS-003, NFR-OBS-004, NFR-OBS-005, NFR-OBS-006. Build dashboards and actionable alerts for SLO burn, errors, database/queue, dead letters, providers, backups/restores, and security; authorized inspection/retry/cancel for jobs/messages/webhooks/sync; runbooks for every named incident; and deploy/migration annotations. Walkthrough step: 17.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "operations",
      "acceptance_criteria": "Staging drills trigger and route every critical alert, operators inspect/retry/cancel safely with audit, each specified runbook is executable and linked, deploy/migration annotations appear in traces/dashboards, and restricted operators cannot access secrets or payloads.",
      "dependencies": [
        "build-operational-dashboards",
        "implement-accelevents-recovery-audit",
        "implement-file-scan-recovery",
        "implement-secure-async-exports",
        "implement-webhook-delivery",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "implement-backup-retention-recovery",
      "title": "Implement encrypted backup, retention, and isolated restore drills",
      "description": "Source: artifact 5 section 16. Normative IDs: NFR-DR-001, NFR-DR-003, NFR-DR-004, NFR-DR-005, NFR-DR-006. Configure PostgreSQL encrypted backups/PITR for RPO <=15 minutes, object/file recovery, four-hour regional application/database RTO, one-business-day historical-export RTO, organization-configurable legal retention across all named data classes, provider-aware delayed deletion, and quarterly isolated restore verification. Walkthrough step: 19.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "operations",
      "acceptance_criteria": "A staging restore drill restores database and file versions into isolated infrastructure, validates referential/checksum consistency, measures RPO/RTO within targets, tests retention/legal exceptions and provider deletion lag, emits alerts/evidence, and never touches production data destructively.",
      "dependencies": [
        "build-operator-observability",
        "create-core-schema",
        "define-privacy-data-registry",
        "implement-object-storage"
      ]
    },
    {
      "slug": "rehearse-schema-migrations",
      "title": "Implement and rehearse rolling-safe schema migrations",
      "description": "Source: artifact 5 sections 14 and 17. Normative IDs: NFR-REL-008. Establish expand/migrate/contract rules, migration locks, progress/telemetry, realistic-volume rehearsals, rollback/roll-forward plans, and application compatibility across rolling versions; destructive contracts require verified backfill and retention policy.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "deployment",
      "acceptance_criteria": "Automated tests start from every supported prior schema, run old/new application versions during migration, verify data/backfill invariants at realistic volume, exercise failure/restart/roll-forward, and block incompatible or unobservable migrations.",
      "dependencies": [
        "create-core-schema",
        "implement-backup-retention-recovery",
        "instrument-request-job-context"
      ]
    },
    {
      "slug": "validate-accessibility",
      "title": "Validate WCAG 2.2 AA across all critical workflows",
      "description": "Source: artifact 5 section 12. Normative IDs: NFR-A11Y-002, NFR-A11Y-003. Add automated accessibility gates and manual keyboard/screen-reader protocols for organizer, evaluator, speaker portal, CFP, agenda drag/drop equivalent, dashboards, forms, files, and public embeds; explicitly test focus, errors, labels, contrast, motion, live regions, and tables. Walkthrough step: 20.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "validation",
      "acceptance_criteria": "Automated scans report no blocking violations and durable manual evidence covers every critical flow at desktop/mobile breakpoints with keyboard and supported screen readers; all severity-blocking findings are fixed and regression-tested.",
      "dependencies": [
        "build-accessible-agenda-editor",
        "build-evaluator-workspace",
        "build-onboarding-dashboard",
        "build-operational-dashboards",
        "build-public-cfp-page",
        "build-public-embed-experience"
      ]
    },
    {
      "slug": "create-deterministic-seed",
      "title": "Create deterministic production-like seed data",
      "description": "Source: artifact 5 section 19. Create idempotent versioned seed tooling for two isolated organizations; a multi-day/multi-timezone event; branched/versioned forms; submissions in every state; duplicate contacts; two evaluation rounds; portal tasks/forms/files; agenda conflicts; public/private data; message outcomes; Accelevents sync states; API clients/webhooks; and realistic volumes suitable for acceptance and performance tests. Seed mode must be impossible in production.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "testing",
      "acceptance_criteria": "Repeated seeded builds yield stable identifiers/counts and identical expected snapshots, cover every listed state/edge case, prove tenant isolation and public/private distinctions, support scalable volume parameters, and production startup rejects seed configuration.",
      "dependencies": [
        "build-api-operations-resources",
        "enforce-api-sensitive-field-schemas",
        "implement-contact-privacy-operations",
        "wire-agenda-side-effects"
      ]
    },
    {
      "slug": "validate-performance-capacity",
      "title": "Validate capacity, latency, and backpressure targets",
      "description": "Source: artifact 5 section 13. Normative IDs: NFR-PERF-001, NFR-PERF-002, NFR-PERF-003, NFR-PERF-004, NFR-PERF-006. At the specified 25k submissions/event, 10k contacts/5k speakers, 5k sessions, 1m response values, 250 authenticated users, 5k public viewers, 1TB files, and >=500MB upload baseline, tune indexes/queries/cache/backpressure to meet API p95/p99, write p95, conflict p95, and p75 Core Web Vitals targets.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "validation",
      "acceptance_criteria": "Production-shaped load/soak reports show read p95 <500ms/p99 <1.5s, write p95 <800ms without awaited providers, conflict p95 <500ms, public p75 Web Vitals targets, bounded memory/query/export work, stable queue lag, and no tenant/security regression. Walkthrough step: 20.",
      "dependencies": [
        "create-deterministic-seed",
        "harden-runtime-reliability",
        "implement-public-cache-invalidation",
        "implement-secure-async-exports"
      ]
    },
    {
      "slug": "document-threat-incident-response",
      "title": "Complete threat models and security response program",
      "description": "Source: artifact 5 section 11. Normative IDs: NFR-SEC-010. Produce reviewed threat models for tenant isolation, identity/portal tokens, forms/uploads, communications/calendar, AI, embeds, API/webhooks, Accelevents, operator tooling, backups, and deployment; define incident response, vulnerability intake, severity/patch SLAs, credential compromise rotation, evidence preservation, communications, and annual/major-release penetration testing.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "security",
      "acceptance_criteria": "Threat models enumerate assets, trust boundaries, abuse cases, mitigations and verification links; tabletop exercises cover credential compromise and data exposure; intake/patch/pen-test ownership and cadence are operational with no unowned critical risk.",
      "dependencies": [
        "build-operator-observability",
        "harden-web-security",
        "minimize-observability-data"
      ]
    },
    {
      "slug": "run-cross-domain-test-matrices",
      "title": "Run complete production cross-domain test matrices",
      "description": "Source: artifact 5 sections 18.1 and 18.2. Run unit, real-PostgreSQL integration, provider contract, live sandbox, browser end-to-end, load/soak/failure, accessibility, security, backup/restore, and migration tests across tenant isolation, roles, form branches/versions, state machines, conflicts, Gmail/Outlook/independent calendar clients, upload scanning, Accelevents, embeds, and API. Test doubles are allowed only inside tests and never replace live-provider gates.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "validation",
      "acceptance_criteria": "A durable matrix maps every specification requirement and state transition to passing evidence; every required live provider has a timestamped staging result; failures and flakes are resolved; no runtime mock/stub or skipped production path is accepted.",
      "dependencies": [
        "build-portal-resource-pages",
        "enforce-api-sensitive-field-schemas",
        "enforce-api-write-semantics",
        "harden-public-embed-boundary",
        "harden-runtime-reliability",
        "implement-api-client-auth-rate-limits",
        "implement-backup-retention-recovery",
        "integrate-ai-agenda-advice",
        "integrate-google-calendar",
        "integrate-microsoft-calendar",
        "validate-accessibility",
        "validate-live-accelevents",
        "validate-performance-capacity"
      ]
    },
    {
      "slug": "build-ci-quality-security-gates",
      "title": "Build required CI quality and security gates",
      "description": "Source: artifact 5 sections 11 and 17. Normative IDs: NFR-SEC-009, NFR-DEP-002. Configure protected CI to run formatting, static analysis, type checks, unit, integration, contract, end-to-end, accessibility, migration, security, dependency/source/container/IaC scans, secret scanning, build reproducibility, and artifact attestations; critical exploitable findings or required suite failures block release.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "deployment",
      "acceptance_criteria": "A clean CI run executes every named gate with retained evidence and immutable artifacts; seeded intentional failures prove each gate blocks; critical findings cannot be waived without explicit time-bounded audited policy; no production credential enters CI logs/artifacts.",
      "dependencies": [
        "document-threat-incident-response",
        "rehearse-schema-migrations",
        "run-cross-domain-test-matrices"
      ]
    },
    {
      "slug": "build-production-deployment",
      "title": "Implement reproducible immutable production deployment",
      "description": "Source: artifact 5 section 17. Normative IDs: NFR-DEP-001, NFR-DEP-003, NFR-DEP-004, NFR-DEP-006, NFR-DEP-007. Put application/infrastructure/schema/docs in version control; provision separated environment accounts/projects, networks, identities, secrets, data, domains, CDN/WAF, database, queue, storage, identity, email, telemetry, backups, and alerts through code; promote signed immutable staging artifacts using rolling or blue/green health/migration gates with rollback/roll-forward and release checklist/change log. Walkthrough step: 18.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "deployment",
      "acceptance_criteria": "CI deploys one immutable artifact to staging, passes smoke/migration/health gates, promotes the same digest, records release annotations/checklist/config/provider risks, and demonstrates rollback/roll-forward without rebuilding or manual production edits.",
      "dependencies": [
        "build-ci-quality-security-gates",
        "build-operator-observability",
        "implement-backup-retention-recovery",
        "rehearse-schema-migrations"
      ]
    },
    {
      "slug": "build-api-form-submission-resources",
      "title": "Expose form and submission API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources for form definitions/versions/fields/rules/publication plus submissions, participants, responses, routing, comments, tags, correction history, and lifecycle actions, delegating conditional evaluation and immutable history to domain services.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed integration tests cover every form/submission resource and permitted action, version lineage, conditional validation, lifecycle and correction history, search/filtering, role/field policy, stable IDs, tenant isolation, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "build-organizer-submission-workspace",
        "implement-form-publication-policy"
      ]
    },
    {
      "slug": "build-api-portal-resources",
      "title": "Expose portal task, form, resource, and file API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources for portal configuration, task/form assignments, completion/approval transitions, resource pages, file requests, signed transfers, scan state, and authorized downloads, delegating policy and state machines to portal/file services.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed integration tests cover every portal/file resource and transition, participant scope, task/form state, upload/download authorization, scan/quarantine states, resource audience policy, stable IDs, tenant isolation, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "build-onboarding-dashboard",
        "build-portal-resource-pages",
        "implement-file-scan-recovery"
      ]
    },
    {
      "slug": "build-api-evaluation-resources",
      "title": "Expose evaluation and decision API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources for plans, rounds, rubrics, assignments, conflicts, evaluator drafts/submissions, scores, progression snapshots, decisions, monitoring, and exports, delegating blind policy and transitions to evaluation services.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed integration tests cover every evaluation/decision resource and action, blind-mode schemas, evaluator/organizer role policy, immutable round/progression history, score math, transitions, tenant isolation, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "build-evaluation-monitoring",
        "enforce-blind-review-policy",
        "implement-human-decisions"
      ]
    },
    {
      "slug": "build-api-communication-public-resources",
      "title": "Expose communications, calendar, and public publication API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources/actions for templates, previews, campaigns, messages/delivery state, calendar series, publication configurations, public cache refresh, embeds, and public projections while preserving impact confirmation and asynchronous behavior.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed tests cover every communication/calendar/public action, audience and impact confirmation, async/provider-disabled states, delivery/calendar lifecycle, publication/public-field policy, cache refresh authorization, tenant isolation, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "enforce-mail-suppression",
        "harden-public-embed-boundary",
        "implement-calendar-update-cancel",
        "implement-public-cache-invalidation"
      ]
    },
    {
      "slug": "build-api-integration-resources",
      "title": "Expose Accelevents connection and sync API resources",
      "description": "Source: artifact 5 section 10.12. Normative IDs: FR-API-001. Implement scoped versioned resources/actions for Accelevents connections, mappings, eligibility preview, run triggers, item outcomes, retry/cancel, reconciliation, and provider health while preserving secret redaction, impact confirmation, and serialized mutation policy.",
      "status": "pending",
      "priority": "P2",
      "program": "session-board-production",
      "group": "api",
      "acceptance_criteria": "OpenAPI-backed tests cover connection/mapping/preview/run/item/retry/cancel/reconcile resources, async progress, disabled/degraded/provider errors, secret redaction, impact confirmation, role/tenant policy, and audit/outbox behavior.",
      "dependencies": [
        "build-api-contract-foundation",
        "serialize-accelevents-triggers"
      ]
    },
    {
      "slug": "run-production-acceptance",
      "title": "Run the complete production acceptance and launch gate",
      "description": "Source: artifact 5 sections 20-22. Walkthrough steps: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20. Execute the normative walkthrough against staging with production-equivalent services and real sandbox providers, then verify production domains, identity, email, storage, database, queue, observability, backups, alert routing, secrets, data policies, support contacts, and on-call ownership. Confirm every FR/NFR and genuine non-goal, with no mock, stub, placeholder, manual database edit, demo-only success, or deferred core path.",
      "status": "pending",
      "priority": "P3",
      "program": "session-board-production",
      "group": "release",
      "acceptance_criteria": "A signed/timestamped acceptance dossier traces all 160 requirement IDs and 20 walkthrough steps to passing evidence; production smoke, tenant/security/accessibility/performance/restore/provider gates pass; no severity-blocking finding or unresolved required path remains; operators and owners accept launch readiness.",
      "dependencies": [
        "build-production-deployment",
        "document-threat-incident-response",
        "run-cross-domain-test-matrices"
      ]
    }
  ]
}
