{
  "schema_version": "0.1",
  "id": "TRC-001",
  "title": "Traceability map for REQ-028 downstream system test harness",
  "created_at": "2026-06-17",
  "updated_at": "2026-06-17",
  "source_request_id": "REQ-028",
  "forward_map": {
    "REQ-028": {
      "type": "request",
      "derived_from": ["BR-2026-06-17-downstream-system-test"],
      "drives": ["PRD-001"]
    },
    "BR-2026-06-17-downstream-system-test": {
      "type": "brainstorm",
      "drives": ["REQ-028", "PRD-001"]
    },
    "PRD-001": {
      "type": "prd",
      "derived_from": ["REQ-028", "BR-2026-06-17-downstream-system-test"],
      "drives": ["ARCH-001"],
      "requirements": {
        "PRD-REQ-001": {"source": ["BR-REQ-001"], "satisfied_by": ["ARCH-COMP-001"], "implemented_by": ["IMP-TASK-004"], "validated_by": ["IMP-VAL-004"]},
        "PRD-REQ-002": {"source": ["BR-REQ-002"], "satisfied_by": ["ARCH-COMP-002", "ARCH-COMP-003"], "implemented_by": ["IMP-TASK-005", "IMP-TASK-006"], "validated_by": ["IMP-VAL-005", "IMP-VAL-006"]},
        "PRD-REQ-003": {"source": ["BR-REQ-003"], "satisfied_by": ["ARCH-COMP-004"], "implemented_by": ["IMP-TASK-007"], "validated_by": ["IMP-VAL-007"]},
        "PRD-REQ-004": {"source": ["BR-REQ-004"], "satisfied_by": ["ARCH-COMP-004"], "implemented_by": ["IMP-TASK-007", "IMP-TASK-009", "IMP-TASK-011", "IMP-TASK-013"], "validated_by": ["IMP-VAL-007", "IMP-VAL-009", "IMP-VAL-011", "IMP-VAL-013"]},
        "PRD-REQ-005": {"source": ["BR-REQ-005"], "satisfied_by": ["ARCH-COMP-005"], "implemented_by": ["IMP-TASK-008", "IMP-TASK-010"], "validated_by": ["IMP-VAL-008", "IMP-VAL-010"]},
        "PRD-REQ-006": {"source": ["BR-REQ-006"], "satisfied_by": ["ARCH-COMP-006"], "implemented_by": ["IMP-TASK-004", "IMP-TASK-008"], "validated_by": ["IMP-VAL-004", "IMP-VAL-008"]},
        "PRD-REQ-007": {"source": ["BR-REQ-007"], "satisfied_by": ["ARCH-COMP-007"], "implemented_by": ["IMP-TASK-008", "IMP-TASK-012"], "validated_by": ["IMP-VAL-008", "IMP-VAL-012"]},
        "PRD-REQ-008": {"source": ["BR-REQ-008"], "satisfied_by": ["ARCH-COMP-007"], "implemented_by": ["IMP-TASK-012"], "validated_by": ["IMP-VAL-012"]}
      }
    },
    "ARCH-001": {
      "type": "architecture",
      "derived_from": ["PRD-001"],
      "drives": ["IMP-001"],
      "components": {
        "ARCH-COMP-001": {"implements": ["PRD-REQ-001", "PRD-REQ-006", "PRD-NFR-003"], "drives": ["IMP-TASK-004"]},
        "ARCH-COMP-002": {"implements": ["PRD-REQ-002", "PRD-NFR-001"], "drives": ["IMP-TASK-005"]},
        "ARCH-COMP-003": {"implements": ["PRD-REQ-002", "PRD-NFR-004"], "drives": ["IMP-TASK-006"]},
        "ARCH-COMP-004": {"implements": ["PRD-REQ-003", "PRD-REQ-004", "PRD-ACC-003"], "drives": ["IMP-TASK-007"]},
        "ARCH-COMP-005": {"implements": ["PRD-REQ-005", "PRD-ACC-005"], "drives": ["IMP-TASK-008", "IMP-TASK-010"]},
        "ARCH-COMP-006": {"implements": ["PRD-REQ-006", "PRD-ACC-006"], "drives": ["IMP-TASK-008"]},
        "ARCH-COMP-007": {"implements": ["PRD-REQ-007", "PRD-ACC-007"], "drives": ["IMP-TASK-008", "IMP-TASK-012"]}
      }
    },
    "IMP-001": {
      "type": "implementation_plan",
      "derived_from": ["PRD-001", "ARCH-001"],
      "phases": ["IMP-PHASE-001", "IMP-PHASE-002", "IMP-PHASE-003", "IMP-PHASE-004"]
    }
  },
  "gaps": [
    {
      "id": "BR-Q-002",
      "summary": "How to validate skill selection without relying on opaque LLM internals",
      "status": "open",
      "mitigation": "Acceptance criteria focus on artifact signatures; future work may add structured skill-name telemetry from the agent trace."
    },
    {
      "id": "BR-Q-003",
      "summary": "Whether to test against installed npm package or local hub source",
      "status": "resolved",
      "resolution": "ARCH-DEC-002: test against local hub source in CI; publish-triggered smoke test can be added later."
    },
    {
      "id": "BR-Q-004",
      "summary": "How to mock git remotes for push/merge consent tests",
      "status": "open",
      "mitigation": "Use local bare repository as remote and assert no push ref-update occurs without consent."
    },
    {
      "id": "BR-Q-005",
      "summary": "Acceptable CI runtime budget",
      "status": "open",
      "mitigation": "PRD-NFR-002 proposes 60s smoke / 5min full scenario; finalize during IMP-PHASE-004 CI integration."
    }
  ]
}
