{
  "library": "chromatic-color-team-roster",
  "note": "Six bounded team contracts. Each finding stays in its lane; the roster never folds findings into a composite score.",
  "teams": [
    {
      "id": "pink",
      "version": "1.1.0",
      "name": "Pink Team",
      "role": "Evidence",
      "discipline": "evidence qualification",
      "heading": "Qualify the evidence.",
      "summary": "Checks whether the market and wallet packet is complete enough for the other teams to work.",
      "mission": "Before a proposal gets a vector classification, the Pink Team records what is present, what is missing, and how current it is. Gaps remain visible instead of being converted into reassuring results.",
      "accent": "#a85f7d",
      "contract": {
        "inputs": {
          "title": "Evidence packet",
          "detail": "Wallet history, funding path, stake accumulation and recovery, trade execution, market data, and a source-dated treasury snapshot. For a launch-covenant record, the packet is the disclosed terms at issuance."
        },
        "outputs": {
          "title": "Coverage state",
          "detail": "Availability, confidence, source freshness, field-level forensic coverage, and an explicit withheld classification when evidence is incomplete."
        },
        "handoff": {
          "title": "Qualified record",
          "detail": "Complete forensic evidence can move to vector matching. Partial and unavailable packets keep their uncertainty attached for every downstream team."
        }
      },
      "boundaries": [
        "Missing wallet-forensics or market inputs never classify LOW. Work can be withheld as UNSCORED, UNKNOWN, STALE, or UNDER_REVIEW.",
        "The Pink Team qualifies evidence; it never scores a proposal and never fills a gap with a fixture value."
      ]
    },
    {
      "id": "red",
      "version": "1.0.0",
      "name": "Red Team",
      "role": "Attack",
      "discipline": "attack testing",
      "heading": "Try to break it.",
      "summary": "Tests each proposal against versioned economic attack playbooks and reports only the vector it matched.",
      "mission": "The Red Team runs versioned economic attack playbooks against qualified evidence. Every result belongs to one mechanism: indicators are never added across vectors into a composite score, and no match is not a claim of safety. Documented vectors join the library before their detectors ship — each one names the evidence its detector still needs, and none of them ever produces a classification.",
      "accent": "#9d4657",
      "contract": {
        "inputs": {
          "title": "Qualified packet",
          "detail": "A Pink-qualified evidence packet: wallet history, funding path, accumulation, stake recovery, and execution series for the proposal under review."
        },
        "outputs": {
          "title": "Vector finding",
          "detail": "A count of matched indicators and a classification scoped to one monitored vector, or an explicit withheld state when the packet is incomplete."
        },
        "handoff": {
          "title": "Scoped result",
          "detail": "The finding travels with its vector id, version, and scope note; the White Team checks the claim boundary before anything is published."
        }
      },
      "boundaries": [
        "Indicators are never added across vectors into a composite proposal-risk score.",
        "A documented vector never produces a classification; only monitored vectors run.",
        "A vector no-match is never presented as a safety rating."
      ]
    },
    {
      "id": "blue",
      "version": "1.2.0",
      "name": "Blue Team",
      "role": "Market",
      "discipline": "market watch",
      "heading": "Watch the market.",
      "summary": "Reads live pass-market and fail-market TWAPs against that DAO’s actual decision threshold.",
      "mission": "The Blue Team reads confirmed proposal state, pass-market and fail-market TWAPs, and the DAO’s configured threshold. Its market finding stays separate from the Red Team’s forensic result.",
      "accent": "#52759a",
      "contract": {
        "inputs": {
          "title": "Confirmed accounts",
          "detail": "Futarchy proposal and DAO accounts provide current state, proposal class, the configured threshold, and pass/fail TWAP accumulators."
        },
        "outputs": {
          "title": "Threshold read",
          "detail": "The pass-market TWAP must strictly beat the configured threshold over the fail-market TWAP. A late-window pressure watch describes the retained observation series — margin against threshold, contested crossings, and closing-stretch moves. A flip-cost scenario states the floor on moving a conditional print at disclosed depth. Live math remains provisional until finalization."
        },
        "handoff": {
          "title": "Defense watch",
          "detail": "Market state travels beside forensic context without standing in for missing wallet history, volume, or execution evidence."
        }
      },
      "boundaries": [
        "The Blue Team may not invent forensics: live rows keep attack indicators dark until an indexer exists.",
        "Provisional live math is never presented as a final outcome.",
        "A pressure watch is a market observation over retained TWAP reads; it never becomes an attack-vector indicator or classification.",
        "A flip-cost figure is a lower bound under stated assumptions; it is never a safety rating."
      ]
    },
    {
      "id": "yellow",
      "version": "1.1.0",
      "name": "Yellow Team",
      "role": "Playbooks",
      "discipline": "playbook building",
      "heading": "Codify the research.",
      "summary": "Turns published source investigations into transparent, versioned checks the team can rerun.",
      "mission": "The Yellow Team turns published investigations into reusable definitions. The mechanism gets a stable name, version, scope note, indicators, and case provenance; the incident never becomes the detector.",
      "accent": "#a67b30",
      "contract": {
        "inputs": {
          "title": "Published intelligence",
          "detail": "Cited proposal records, market math, wallet forensics, and explicit observations from the cited source research."
        },
        "outputs": {
          "title": "Runnable definition",
          "detail": "A versioned mechanism with ordered indicators and a scope boundary that can be assessed independently, and covenant checks versioned against published launch terms."
        },
        "handoff": {
          "title": "Standing check",
          "detail": "The Red Team receives a reusable playbook; published cases remain provenance beneath it rather than hard-coded classifications."
        }
      },
      "boundaries": [
        "The incident never becomes the detector’s name.",
        "A playbook ships only with a stable id, a semver version, ordered indicators, methodology sources, and a scope note."
      ]
    },
    {
      "id": "purple",
      "version": "1.0.0",
      "name": "Purple Team",
      "role": "Learning",
      "discipline": "learning loop",
      "heading": "Close the loop.",
      "summary": "Carries attack findings into the defensive watch so the next proposal inherits the lesson.",
      "mission": "The Purple Team links what the Red Team learned in published cases with what the Blue Team should watch next. It carries the check forward, not the old case’s conclusion.",
      "accent": "#746293",
      "contract": {
        "inputs": {
          "title": "Closed cases",
          "detail": "Published incidents with their evidence, market outcome, and vector result preserved together as cited replays."
        },
        "outputs": {
          "title": "Standing checks",
          "detail": "Reusable, versioned checks extracted from incidents and returned to the active watch for future proposals."
        },
        "handoff": {
          "title": "Refreshed watch",
          "detail": "The Blue Team and Red Team receive the updated check; the old case keeps its citation and stays a replay."
        }
      },
      "boundaries": [
        "The check moves forward; the old case’s conclusion does not.",
        "An uncited lesson does not enter the loop — every replay keeps its source."
      ]
    },
    {
      "id": "white",
      "version": "1.1.0",
      "name": "White Team",
      "role": "Claims",
      "discipline": "claim control",
      "heading": "Keep claims honest.",
      "summary": "Withholds incomplete work and enforces the rule that a vector no-match is never a safety rating.",
      "mission": "The White Team checks the boundary around every published conclusion: what was measured, which vector it belongs to, whether evidence was complete, and what the result cannot establish.",
      "accent": "#7d838a",
      "contract": {
        "inputs": {
          "title": "Draft findings",
          "detail": "Every team’s finding with its evidence state, vector scope, and data vintage attached."
        },
        "outputs": {
          "title": "Publishable claims",
          "detail": "Claims trimmed to what the evidence establishes, with withheld states left explicit rather than rounded to safe."
        },
        "handoff": {
          "title": "Published record",
          "detail": "Only scoped, cited claims reach the page; anything broader goes back to the team that made it."
        }
      },
      "boundaries": [
        "Complete evidence with 0–1 matched indicators is NO-MATCH, never LOW. NO-MATCH means this vector did not match; it does not mean the proposal is safe.",
        "A classification never leaves its vector’s scope; market outcome and forensic match stay separate.",
        "A covenant review is never a proposal classification: unknown covenant terms stay unknown, and a disclosed covenant is not a safety rating."
      ]
    }
  ]
}
