# ═══════════════════════════════════════════════════════════════════════
# compass.state.yaml — pqdx/2.0.0 Canonical Fixture
# ═══════════════════════════════════════════════════════════════════════
#
# PQDX-STD-0001d — Canonical Fixture
# Demonstrates best practices for a well-governed pqdx state file.
#
# A conforming validator MUST produce zero errors and zero warnings
# against this file. Every field, every status, every lifecycle stage
# represented. Read this to understand what a governed project looks
# like in practice.
#
# Project: Compass — an internal knowledge management platform for a
# mid-size consulting firm. Chosen because the domain is accessible
# across industries: every organization manages knowledge.
#
# DOCUMENT SET:
#   PQDX-STD-0001a  pqdx-schema-spec.yaml       Annotated schema
#   PQDX-STD-0001b  pqdx-schema-spec.md          Prose specification
#   PQDX-STD-0001c  pqdx-template.yaml           Bare template
#   PQDX-STD-0001d  pqdx-fixture.state.yaml      Canonical fixture (this file)
#   PQDX-GDE-0001   pqdx-patching-guide.md       Patching guide
#   PQDX-GDE-0002   pqdx-directory-reference.md   Directory reference
#
# © 2026 Our Collaborative Space, LLC — CC-BY-ND 4.0
#
# ═══════════════════════════════════════════════════════════════════════

schema_version: "pqdx/2.0.0"


# ─── Vocabulary ──────────────────────────────────────────────────────

vocabulary:
  field:
    - profile: pqdc-software-dev
      version: "1.0.0"
  specialty: []
  org:
    - profile: meridian-consulting
      version: "1.0.0"
  team: []
  individual: []


# ─── Identity ────────────────────────────────────────────────────────

identity:
  project: compass
  description: >
    Internal knowledge management platform for Meridian Consulting.
    Captures engagement learnings, methodology templates, and client
    deliverable patterns. Replaces the legacy SharePoint wiki that
    nobody updates.
  entity: Meridian Consulting
  type: product
  tier: standard
  owner: Sarah Chen
  blast_radius: high
  posture: public
  created: "2026-01-15"
  status: active
  contact: "sarah.chen@meridian.consulting"
  repo: "https://git.meridian.internal/compass"
  version: "1.0.3"
  metrics:
    articles_published: 342
    active_contributors: 28
    sessions_completed: 12
  notes: >
    Originally codenamed "Atlas" through S003. Renamed to Compass after
    client feedback that Atlas implied geographic focus. Some legacy
    references in early session notes use the old name.
  team:
    - { name: Sarah Chen, role: authority, type: human }
    - { name: David Park, role: driver, type: human }
    - { name: Mia Torres, role: contributor, type: human }
    - { name: Claude, role: driver, type: collaborator }


# ─── Milestones ──────────────────────────────────────────────────────

milestones:

  # Complete milestone — mixed terminal states, closed_in present
  - id: v1.0
    name: "v1.0 — Core Knowledge Platform"
    status: complete
    target: "2026-03-01"
    completed: "2026-03-05"
    closed_in: S008
    session: S001
    notes: >
      Foundational platform: article authoring, tagging, full-text search,
      and role-based access. Delivered 4 days past target due to SSO
      integration delays (BL-1). All 8 items resolved.
    items:
      - { id: v10-1, text: "Article authoring with rich text editor and inline image support", status: done }
      - { id: v10-2, text: "Hierarchical tagging system with auto-suggest from firm taxonomy", status: done }
      - { id: v10-3, text: "Full-text search with filters by practice area, engagement type, and date range", status: done }
      - { id: v10-4, text: "SSO integration with firm Azure AD tenant", status: done, gate: true, visibility: internal }
      - { id: v10-5, text: "Role-based access: viewer, contributor, editor, admin", status: done }
      - { id: v10-6, text: "Email digest of new articles by subscribed practice area", status: done }
      - { id: v10-7, text: "Markdown import from legacy wiki — deferred to v1.1", status: deferred }
      - { id: v10-8, text: "Mobile-responsive layout for tablet use in client meetings", status: dropped }
    visibility: public

  # In-progress milestone — gate items, depends_on, active work
  - id: v1.1
    name: "v1.1 — Search & Discovery"
    status: in-progress
    target: "2026-05-15"
    depends_on: [v1.0]
    session: S008
    notes: >
      Improving how people find knowledge. Semantic search, related
      article suggestions, and contributor profiles. The v10-7 markdown
      import tombstone is carried forward here as v11-6.
    items:
      - id: v11-1
        text: "Semantic search using embedding-based similarity scoring"
        status: open
        gate: true
        notes: >
          Depends on DR-001 pgvector integration. A-1 covers the
          embedding pipeline; this item covers query-time ranking
          and relevance scoring.
      - { id: v11-2, text: "Related articles sidebar based on tag overlap and content similarity", status: done }
      - { id: v11-3, text: "Contributor profiles with expertise areas and article history", status: done }
      - { id: v11-4, text: "Practice area landing pages with curated featured content", status: open }
      - { id: v11-5, text: "Search analytics dashboard for content gap identification", status: open }
      - { id: v11-6, text: "Markdown import from legacy wiki (carried from v10-7)", status: open }
      - { id: v11-8, text: "Tag-based content recommendations on article pages", status: subsumed }
      - { id: v11-7, text: "Verification gate — end-to-end search quality audit", status: open, gate: true }
    visibility: public

  # Planned milestone — future work, blocked_by concern
  - id: v1.2
    name: "v1.2 — Analytics & Engagement Metrics"
    status: planned
    target: "Q3 2026"
    depends_on: [v1.1]
    blocked_by: [RSK-1]
    session: S007
    notes: >
      Usage analytics, content quality scoring, and engagement tracking.
      Blocked on RSK-1 (data privacy review) — cannot instrument user
      behavior tracking until legal clears the approach.
    items:
      - { id: v12-1, text: "Article view and engagement tracking with anonymization", status: open }
      - { id: v12-2, text: "Content quality scoring based on freshness, citations, and peer reviews", status: open }
      - { id: v12-3, text: "Practice area health dashboard for knowledge managers", status: open }
      - { id: v12-4, text: "Monthly knowledge digest with trending topics and top contributors", status: open }

  # On-hold milestone — paused by external factor
  - id: v1.3
    name: "v1.3 — Mobile App Companion"
    status: on-hold
    target: "Q4 2026"
    depends_on: [v1.1]
    notes: >
      Native mobile companion for field consultants. On hold pending
      firm-wide decision on mobile device management policy — IT
      security reviewing BYOD implications. Cannot commit to platform
      targets until MDM policy is finalized.
      This milestone deliberately omits the `session` field to demonstrate
      that milestone opening provenance is OPTIONAL (per DR-010) — long-
      range placeholders may have no discrete introducing session.
    items:
      - { id: v13-1, text: "Offline article caching for field use without connectivity", status: open }
      - { id: v13-2, text: "Push notifications for practice area updates", status: open }
      - { id: v13-3, text: "Mobile article authoring with voice-to-text", status: open }

  # Cancelled milestone — scope abandoned
  - id: v0.9
    name: "v0.9 — Legacy Wiki Migration Tool"
    status: cancelled
    target: "2026-01-31"
    closed_in: S003
    session: S001
    notes: >
      Originally planned as an automated migration tool to bulk-convert
      legacy wiki content. Cancelled after S003 discussion concluded
      that selective manual migration (A-7) produces higher quality
      results than automated conversion. No items reached done.
    items:
      - { id: v09-1, text: "Parse legacy wiki custom markup into AST", status: dropped }
      - { id: v09-2, text: "Convert AST to Markdown with YAML frontmatter", status: dropped }
      - { id: v09-3, text: "Batch import with duplicate detection", status: dropped }


# ─── Decisions ───────────────────────────────────────────────────────

decisions:

  # ── DR — Decision Records ──

  # Accepted DR with companion, review metadata, scope
  - id: DR-001
    title: "Adopt PostgreSQL with pgvector for semantic search over dedicated vector database"
    status: accepted
    session: S005
    origin: "Evaluation spike in S004 — benchmarked Pinecone, Weaviate, and pgvector"
    blast_radius: high
    scope: search
    decision_date: "2026-02-18"
    reviewed_by: [Sarah Chen, David Park]
    companion: "repo://decisions/DR-001-pgvector-adoption.md"
    notes: >
      pgvector won on operational simplicity: one database to manage,
      no additional infrastructure, adequate performance for our scale
      (sub-100ms at 500k articles). Pinecone was faster at scale but
      added a managed service dependency the team wanted to avoid.
    visibility: public

  # Proposed DR — under evaluation
  - id: DR-002
    title: "Implement AI-assisted article summarization using Claude API for search result snippets"
    status: proposed
    session: S010
    blast_radius: medium
    scope: ai-features
    companion: "repo://decisions/DR-002-ai-summarization.md"
    notes: >
      Cost analysis pending. Estimated $0.02/article for initial
      summarization, negligible for cached results. Privacy review
      required — article content may contain client-confidential material.

  # Superseded DR — replaced by DR-001, with superseded_by linkage
  - id: DR-003
    title: "Use Elasticsearch for all search functionality"
    status: superseded
    session: S002
    blast_radius: high
    scope: search
    superseded_by: DR-001
    closed_in: S005
    notes: "Superseded by DR-001 after pgvector evaluation showed simpler ops path."

  # Deferred DR — evaluation paused
  - id: DR-004
    title: "Replace PostgreSQL full-text search with dedicated Elasticsearch cluster for non-semantic queries"
    status: deferred
    session: S009
    blast_radius: medium
    scope: search
    companion: "repo://decisions/DR-004-elasticsearch-fts.md"
    notes: >
      Proposed to separate semantic (pgvector) and keyword (Elasticsearch)
      search paths. Deferred — current pgvector full-text performance is
      adequate at current scale. Revisit if article count exceeds 10k
      and RSK-2 materializes.

  # Rejected DR — evaluated and declined
  - id: DR-005
    title: "Adopt GraphQL API layer over existing REST endpoints"
    status: rejected
    session: S008
    blast_radius: high
    scope: api
    decision_date: "2026-03-05"
    reviewed_by: [Sarah Chen, David Park]
    closed_in: S008
    notes: >
      Evaluated for the contributor profile queries (nested data).
      Rejected — REST with sparse fieldsets covers the use cases
      without the operational complexity of a GraphQL layer. The
      team lacks GraphQL expertise and the learning curve doesn't
      justify the benefit at current scale.

  # Withdrawn DR — retracted before evaluation
  - id: DR-006
    title: "Migrate from PostgreSQL to CockroachDB for multi-region resilience"
    status: withdrawn
    session: S007
    blast_radius: critical
    scope: infrastructure
    closed_in: S007
    notes: >
      Withdrawn by David after initial scoping revealed the firm
      operates in a single region with no multi-region requirements.
      The proposal was premature — solving a problem that doesn't
      exist yet.

  # ── OQ — Open Questions ──

  # Open OQ with impact and resolution path
  - id: OQ-1
    title: "Should Compass support client-facing knowledge sharing or remain internal-only?"
    status: open
    session: S003
    impact: high
    blast_radius: high
    scope: platform
    resolution_path: "Survey 10 engagement managers on client knowledge-sharing patterns by end of Q2"
    notes: >
      If client-facing, the trust boundary model becomes critical —
      internal methodology content must never leak to client views.

  # Narrowed OQ
  - id: OQ-2
    title: "Which authentication provider for external collaborator access?"
    status: narrowed
    session: S006
    impact: medium
    resolution_path: "Down to Auth0 vs Azure AD B2C — security review scheduled for S013"

  # Resolved OQ — closed_in present
  - id: OQ-3
    title: "What content format should replace the legacy wiki's custom markup?"
    status: resolved
    session: S002
    impact: medium
    decision_date: "2026-02-10"
    closed_in: S004
    notes: "Resolved: Markdown with YAML frontmatter. Firm-wide tooling already supports it."

  # Deferred OQ
  - id: OQ-4
    title: "Should Compass integrate with the firm's CRM for engagement-linked knowledge?"
    status: deferred
    session: S007
    impact: low
    notes: "Deferred until CRM migration to Salesforce completes (expected Q4 2026)."

  # ── ILD — Informal Locked Decisions ──

  # Locked ILD — the standard pattern (born locked)
  - id: ILD-1
    title: "All article content stored as Markdown with YAML frontmatter"
    status: locked
    session: S001
    scope: content
    notes: >
      Markdown is the firm standard for documentation. YAML frontmatter
      carries metadata (author, practice area, tags, created date)
      without polluting the content body.

  # Locked ILD with blast_radius
  - id: ILD-2
    title: "Article IDs are ULIDs — time-sortable, globally unique, URL-safe"
    status: locked
    session: S003
    blast_radius: high

  # Locked ILD with origin — transferred from another project
  - id: ILD-3
    title: "All API endpoints require authentication — no anonymous access"
    status: locked
    session: S001
    origin: "Inherited from firm security policy SEC-2024-017"
    scope: auth

  # Pending ILD — articulated but not confirmed (S027 new status)
  - id: ILD-4
    title: "Contributor profiles should include engagement history from CRM"
    status: pending
    session: S010
    notes: >
      Discussed in S010 but deferred lock pending CRM API availability
      assessment. If the CRM API doesn't support the query pattern,
      this becomes infeasible and we'd lock a simpler profile model.

  # Pending ILD — second instance
  - id: ILD-5
    title: "Search results should show AI-generated snippets instead of raw text excerpts"
    status: pending
    session: S010
    blast_radius: medium
    notes: "Pending DR-002 resolution — if AI summarization is rejected, this is superseded."

  # Superseded ILD — replaced by ILD-2, with superseded_by linkage
  - id: ILD-6
    title: "Article IDs are sequential integers"
    status: superseded
    session: S001
    superseded_by: ILD-2
    closed_in: S003
    notes: "Superseded by ILD-2 — ULIDs chosen over sequential IDs for portability."

  # Locked ILD — operational convention
  - id: ILD-7
    title: "Session close-outs happen within 24 hours of the session ending"
    status: locked
    session: S005
    blast_radius: negligible

  # Locked ILD — naming convention
  - id: ILD-8
    title: "Practice areas use the firm's official taxonomy — no custom categories"
    status: locked
    session: S004
    origin: "Firm taxonomy v3.2 published by Knowledge Management Office"


# ─── Concerns ────────────────────────────────────────────────────────

concerns:

  # Critical blocker — resolved, with closed_in
  - id: BL-1
    type: blocker
    severity: critical
    text: "SSO integration blocked by Azure AD tenant misconfiguration — users cannot authenticate"
    status: resolved
    session: S004
    resolution: "IT corrected the app registration redirect URIs and certificate thumbprint"
    closed_in: S006
    notes: "Blocked v1.0 delivery for 4 days. Post-mortem documented in S006 session notes."

  # High risk — open, blocks a milestone
  - id: RSK-1
    type: risk
    severity: high
    text: "Data privacy review required before instrumenting user behavior tracking — legal has not approved the approach"
    status: open
    session: S007
    blocks: [v1.2]
    visibility: public

  # Medium defect — monitoring, with ref to affected artifact
  - id: DEF-1
    type: defect
    severity: medium
    text: "Search ranking degrades for articles with code blocks — pgvector embeddings don't handle mixed prose/code well"
    status: monitoring
    session: S009
    ref: "src/search/embedding-pipeline.ts"
    notes: "Workaround: code blocks are stripped before embedding generation. Monitoring search quality metrics."

  # Low known-issue — open
  - id: KI-1
    type: known-issue
    severity: low
    text: "Article preview in search results truncates mid-word on mobile viewport widths below 375px"
    status: open
    session: S008

  # Negligible stale-doc — demonstrates the severity floor, with ref
  - id: SD-1
    type: stale-doc
    severity: negligible
    text: "README still references the old 'Atlas' project name in the architecture section header"
    status: open
    session: S005
    ref: "README.md"

  # Medium debt — deferred
  - id: DBT-1
    type: debt
    severity: medium
    text: "Tag autocomplete queries the full taxonomy on every keystroke — no debounce or caching"
    status: deferred
    session: S006
    notes: "Functional but slow on the 2,400-term taxonomy. Deferred to v1.1 cycle."

  # High gap — resolved, with closed_in
  - id: GAP-1
    type: gap
    severity: high
    text: "No content review workflow — articles publish immediately without peer review"
    status: resolved
    session: S003
    resolution: "Implemented optional peer review with 48-hour auto-publish if no reviewer assigned"
    closed_in: S008

  # Medium risk — open
  - id: RSK-2
    type: risk
    severity: medium
    text: "Single PostgreSQL instance with no read replica — search latency will degrade as article count grows past 10k"
    status: open
    session: S009
    origin: "Production monitoring — P95 query latency exceeded 200ms during peak hours"
    blocks: [v11-1]


# ─── Actions ─────────────────────────────────────────────────────────

actions:

  # Open action — priority, due date, assignee present
  - id: A-1
    text: "Complete semantic search embedding pipeline for existing 342 articles"
    session: S009
    assignee: david
    status: open
    priority: high
    due: "2026-04-30"
    depends_on: [DR-001]

  # Done action — resolution, closed_in, explicit skeleton visibility
  - id: A-2
    text: "Configure Azure AD app registration for SSO integration"
    session: S004
    assignee: sarah
    status: done
    resolution: "IT completed configuration. Verified with test accounts across all four roles."
    closed_in: S006
    visibility: skeleton

  # Blocked action
  - id: A-3
    text: "Draft data privacy impact assessment for user behavior tracking"
    session: S007
    assignee: sarah
    status: blocked
    priority: medium
    depends_on: [RSK-1]
    notes: "Waiting on legal to provide the DPIA template for internal tools."

  # Deferred action
  - id: A-4
    text: "Implement tag autocomplete debouncing and local cache"
    session: S006
    assignee: david
    status: deferred
    priority: negligible
    notes: "Deferred with DBT-1 — will address in v1.1 performance pass."

  # Cancelled action
  - id: A-5
    text: "Build mobile-responsive layout for tablet use in client meetings"
    session: S003
    assignee: mia
    status: cancelled
    resolution: "v10-8 dropped — client meeting feedback showed laptop use is universal."
    closed_in: S008

  # Open action — no assignee (demonstrates SHOULD, not MUST)
  - id: A-6
    text: "Write contributor onboarding guide for practice area leads"
    session: S010
    status: open
    priority: low
    notes: "Unassigned — waiting for v1.1 contributor profile feature to stabilize."

  # Done action — origin shows migration source
  - id: A-7
    text: "Migrate top 50 legacy wiki articles to Compass markdown format"
    session: S005
    origin: "Carried from legacy wiki decommission project"
    assignee: mia
    status: done
    resolution: "50 articles migrated. 12 required manual image re-embedding."
    closed_in: S009

  # Open action — critical priority, overdue
  - id: A-8
    text: "Run search quality audit against 100 sample queries before v1.1 gate"
    session: S010
    assignee: david
    status: open
    priority: critical
    due: "2026-04-15"


# ─── Sessions ────────────────────────────────────────────────────────

sessions:

  # Production session — live-text with AI collaborator, with duration
  - id: S001
    date: "2026-01-15"
    title: "Project bootstrap — identity, milestones, initial architecture"
    purpose: production
    mode: live-text
    duration: "2h 30m"
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: claude, type: collaborator, role: driver }
    produced:
      - description: "Initial state file with identity, v1.0 milestone, and bootstrapping decisions"
        purpose: scaffold
        format: data
        location: "repo://.pqdx/compass.state.yaml"
      - description: "Architecture decision to evaluate search approaches"
        purpose: decision
        format: prose
        location: "session://S001"
    decisions_made: [ILD-1, ILD-3, ILD-6]
    state_changes:
      - "Project bootstrapped with compass.state.yaml"
      - "ILD-1 locked — Markdown with YAML frontmatter"
      - "ILD-3 locked — no anonymous API access (inherited from firm policy)"
      - "ILD-6 locked — sequential integer IDs (later superseded)"
    next_action: "Define v1.0 scope with the product committee."
    visibility: public

  # Coordination session — live-verbal with facilitator role, planned vs actual
  - id: S002
    date: "2026-01-22"
    title: "v1.0 scope review with product committee"
    purpose: coordination
    mode: live-verbal
    duration: "45m"
    planned_duration: "1h"
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: james, type: human, role: facilitator }
      - { name: mia, type: human, role: contributor }
      - { name: david, type: human, role: contributor }
    produced:
      - description: "v1.0 scope agreement with 8 items"
        purpose: reference
        format: prose
        location: "session://S002"
      - description: "Product committee scope review deck"
        purpose: communication
        format: slides
        location: "url://meridian.sharepoint.com/sites/compass/v1.0-scope-deck.pptx"
    decisions_made: [DR-003, OQ-3]
    state_changes:
      - "v1.0 items v10-1 through v10-8 scoped and approved"
      - "DR-003 proposed — Elasticsearch as search backend"
      - "OQ-3 opened — content format decision needed"
    next_action: "Begin implementation sprint for v1.0 core platform."

  # Discussion session — async (email thread review), effort-based duration
  - id: S003
    date: "2026-01-30"
    title: "Client knowledge-sharing scope discussion with practice leads"
    purpose: discussion
    mode: async
    duration: "~1h effort across 3 days"
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: james, type: human, role: contributor }
      - { name: managing-partner, type: human, role: observer }
    decisions_made: [ILD-2, OQ-1]
    state_changes:
      - "OQ-1 opened — internal-only vs client-facing question raised"
      - "ILD-2 locked — ULID article identifiers"
      - "GAP-1 opened — no content review workflow"
      - "v0.9 cancelled — automated migration abandoned in favor of selective manual approach"
    next_action: "Survey engagement managers on client knowledge-sharing needs."
    notes: "Managing Partner observed but deferred decision authority to Sarah."

  # Evaluation session — async-verbal (recorded walkthrough)
  - id: S004
    date: "2026-02-10"
    title: "Search backend evaluation — pgvector vs Pinecone vs Weaviate"
    purpose: evaluation
    mode: async-verbal
    participants:
      - { name: david, type: human, role: driver }
      - { name: sarah, type: human, role: reviewer }
    produced:
      - description: "Search backend benchmark results"
        purpose: analysis
        format: data
        location: "repo://docs/search-benchmark-results.yaml"
        notes: "Raw latency data from 10k-query benchmark against each backend"
      - description: "Recorded walkthrough of benchmark methodology and results"
        purpose: analysis
        format: video
        location: "local://recordings/s004-search-eval.mp4"
      - description: "Raw benchmark data — latency percentiles across 10k queries per backend"
        purpose: analysis
        format: spreadsheet
        location: "project-knowledge://search-benchmark-raw-data"
        notes: "Exported from benchmarking harness. Columns: backend, query_type, p50, p95, p99."
    decisions_made: [OQ-3]
    state_changes:
      - "OQ-3 resolved — Markdown with YAML frontmatter chosen"
      - "BL-1 opened — SSO integration blocked by AD misconfiguration"
    next_action: "DR-001 companion document based on evaluation results."

  # Production session — automated (CI pipeline session)
  - id: S005
    date: "2026-02-18"
    title: "DR-001 acceptance and pgvector integration"
    purpose: production
    mode: live-text
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: david, type: human, role: driver }
      - { name: claude, type: collaborator, role: contributor }
    decisions_made: [DR-001, ILD-7]
    state_changes:
      - "DR-001 accepted — pgvector chosen over Elasticsearch and Pinecone"
      - "DR-003 superseded by DR-001"
      - "ILD-6 superseded by ILD-2 — ULIDs replace sequential IDs"
      - "ILD-7 locked — 24-hour close-out window"
      - "SD-1 opened — README references old project name"
    produced:
      - description: "pgvector client module with connection pooling and embedding utilities"
        purpose: implementation
        format: code
        location: "repo://src/search/pgvector-client.ts"
    next_action: "Resolve BL-1 (SSO blocker) before v1.0 can ship."

  # Coordination session — no mode (demonstrates SHOULD relaxation)
  - id: S006
    date: "2026-02-22"
    title: "BL-1 resolution coordination with IT security"
    purpose: coordination
    # mode intentionally absent — quick cross-team sync, mode not recorded
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: it-security, type: human, role: contributor }
    decisions_made: [OQ-2]
    state_changes:
      - "BL-1 resolved — Azure AD configuration corrected"
      - "OQ-2 opened — external auth provider evaluation needed"
      - "DBT-1 opened — tag autocomplete performance noted"
    next_action: "Resume v1.0 delivery now that SSO blocker is cleared."

  # Evaluation session — live-text, minimal
  - id: S007
    date: "2026-02-28"
    title: "v1.2 feasibility review — analytics and privacy implications"
    purpose: evaluation
    mode: live-text
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: claude, type: collaborator, role: driver }
    decisions_made: [OQ-4]
    state_changes:
      - "OQ-4 deferred — CRM integration postponed until migration completes"
      - "RSK-1 opened — data privacy review required for tracking"
      - "A-3 created — DPIA drafting assigned to sarah"
      - "DR-006 withdrawn — multi-region migration premature"
    produced:
      - description: "v1.2 analytics data flow diagram"
        purpose: design
        format: diagram
        location: "session://S007"
      - description: "Data privacy risk assessment — formalized as RSK-1"
        purpose: analysis
        format: prose
        location: "state://concerns/RSK-1"
    next_action: "Focus on v1.0 delivery. v1.2 planning resumes after v1.1 ships."

  # Discussion session — hybrid (in-room + remote + AI)
  - id: S008
    date: "2026-03-05"
    title: "v1.0 release review and v1.1 planning"
    purpose: discussion
    mode: hybrid
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: james, type: human, role: facilitator }
      - { name: david, type: human, role: contributor }
      - { name: mia, type: human, role: contributor }
      - { name: claude, type: collaborator, role: recorder }
    produced:
      - description: "v1.1 scope proposal with 7 items"
        purpose: reference
        format: prose
        location: "session://S008"
      - description: "v1.1 search interface wireframes for practice area leads"
        purpose: design
        format: image
        location: "local://design/v1.1-search-wireframes.png"
        visibility: public
    decisions_made: [DR-005]
    state_changes:
      - "v1.0 marked complete — all items resolved"
      - "v1.1 scoped with 7 items including v10-7 carryforward"
      - "GAP-1 resolved — peer review workflow implemented"
      - "A-5 cancelled — mobile layout dropped with v10-8"
      - "KI-1 opened — mobile truncation noted during demo"
      - "DR-005 rejected — GraphQL layer declined"
      - "QI-4 deferred — gamification paused on practice lead concerns"
    next_action: "Begin v1.1 sprint — semantic search is the critical path."

  # Transfer session — live-verbal, recipient role
  - id: S009
    date: "2026-03-12"
    title: "Search implementation handoff — Sarah to David as search lead"
    purpose: transfer
    mode: live-verbal
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: david, type: human, role: recipient }
      - { name: claude, type: collaborator, role: recorder }
    produced:
      - description: "Search subsystem architecture guide"
        purpose: instruction
        format: prose
        location: "repo://docs/search-architecture.md"
      - description: "Recorded walkthrough of search subsystem handoff"
        purpose: reference
        format: audio
        location: "local://recordings/s009-search-handoff.m4a"
    decisions_made: []
    state_changes:
      - "DEF-1 opened — search ranking issue with code blocks"
      - "RSK-2 opened — single Postgres instance risk"
      - "A-7 done — legacy wiki migration complete"
      - "QI-5 cancelled — legacy wiki staying read-only, no sunset needed"
    next_action: "David to own search quality through v1.1 delivery."

  # Production session — latest, with pending decisions
  - id: S010
    date: "2026-03-20"
    title: "AI features scoping — summarization and smart search"
    purpose: production
    mode: live-text
    participants:
      - { name: sarah, type: human, role: authority }
      - { name: claude, type: collaborator, role: driver }
    produced:
      - description: "DR-002 companion document — AI summarization cost/benefit analysis"
        purpose: decision
        format: prose
        location: "repo://decisions/DR-002-ai-summarization.md"
      - description: "AI features design package — summarization architecture, cost model, privacy analysis"
        purpose: design
        format: composite
        location: "pending://docs/ai-features-design-package"
    decisions_made: [DR-002, ILD-4, ILD-5]
    state_changes:
      - "DR-002 proposed — AI summarization under evaluation"
      - "ILD-4 pending — CRM profile integration awaiting API assessment"
      - "ILD-5 pending — AI snippets contingent on DR-002"
      - "A-6 created — unassigned contributor guide"
      - "A-8 created — search quality audit before v1.1 gate"
    next_action: >
      Two tracks: David completes semantic search pipeline (A-1),
      Sarah drives DR-002 evaluation with cost analysis and privacy
      review. Next session should resolve ILD-4 and ILD-5.
    visibility: skeleton

  # Automated session — CI pipeline, machine-computed duration
  - id: S011
    date: "2026-03-22"
    title: "Automated embedding generation for legacy article backfill"
    purpose: production
    mode: automated
    duration: "8m 42s"
    participants:
      - { name: compass-pipeline, type: agent, role: executor }
      - { name: david, type: human, role: authority }
    produced:
      - description: "Embedding vectors for 342 legacy articles"
        purpose: implementation
        format: data
        location: "repo://data/embeddings/legacy-backfill.parquet"
    decisions_made: []
    state_changes:
      - "342 articles embedded via batch pipeline"
      - "A-1 progressed — embedding pipeline operational, quality audit pending"
    next_action: "David to validate embedding quality on sample queries before A-8 audit."


# ─── Queued ──────────────────────────────────────────────────────────

queued:

  # Pending QI with prompt and scope
  - id: QI-1
    title: "Content quality scoring model design"
    status: pending
    session: S008
    priority: medium
    depends_on: [v1.1]
    scope: "2 sessions — scoring rubric design + implementation review"
    prompt: "session://S008"
    notes: "Blocked until v1.1 search analytics (v11-5) provides the data foundation."

  # In-progress QI
  - id: QI-2
    title: "External collaborator access model — Auth0 vs Azure AD B2C evaluation"
    status: in-progress
    session: S006
    priority: high
    scope: "1 session — security-focused evaluation with firm CISO"
    notes: "Connected to OQ-2. Security review scheduled."

  # Complete QI — closed_in present, explicit public visibility
  - id: QI-3
    title: "Search backend technology selection"
    status: complete
    session: S002
    closed_in: S005
    notes: "Completed via S004 (evaluation) and S005 (DR-001 acceptance)."
    visibility: public

  # Deferred QI — paused intentionally
  - id: QI-4
    title: "Gamification design — contributor badges and leaderboards"
    status: deferred
    session: S008
    priority: low
    scope: "1 session — design review with practice area leads"
    notes: >
      Deferred after S008 discussion. Practice leads expressed concern
      that leaderboards could discourage junior consultants from
      contributing. Revisit after contributor profile adoption metrics
      are available.

  # Cancelled QI — became moot
  - id: QI-5
    title: "Legacy wiki sunset planning and redirect mapping"
    status: cancelled
    session: S003
    closed_in: S009
    notes: >
      Originally queued to plan the formal decommission of the legacy
      wiki. Cancelled after A-7 (manual migration) completed and
      IT confirmed the wiki would remain read-only indefinitely rather
      than being shut down. No sunset needed.


# ─── Notes ───────────────────────────────────────────────────────────

notes:

  # Note with session provenance
  - id: N-1
    date: "2026-01-15"
    session: S001
    text: >
      Project kicked off with strong executive sponsorship from the
      Managing Partner. The legacy wiki has been a known pain point
      for two years — three previous attempts to fix it failed because
      they tried to migrate content rather than rethink the platform.
      This time we're building new and migrating selectively.

  # Note with origin — context from outside a session
  - id: N-2
    date: "2026-02-25"
    session: S005
    origin: "Firm all-hands Q&A — Managing Partner mentioned Compass by name"
    text: >
      Compass was called out positively in the firm all-hands. Managing
      Partner said "this is the kind of internal tooling that makes us
      competitive." Good signal for continued resourcing. Also increases
      blast radius — visible failure is now reputational.

  # Note demonstrating dashboard creation
  - id: N-3
    date: "2026-03-08"
    session: "dashboard"
    text: >
      David reported that the top 20 most-viewed legacy wiki articles
      account for 73% of all traffic. Migration priority list should
      focus on these first. Data from Google Analytics export.

  # Note with visibility override — public-facing observation
  - id: N-4
    date: "2026-03-20"
    session: S010
    text: >
      The AI summarization approach in DR-002 has potential beyond search
      snippets — it could generate practice area digests, onboarding
      guides, and client-ready knowledge briefs. Scope expansion
      consideration for v1.2 or later.
    visibility: public
