{
  "generated_at": "2026-02-21T18:05:48.200896",
  "version": "1.0.0",
  "entities": {
    "councils": {
      "D": {
        "name": "Deterministic",
        "bias": [
          "clarity",
          "feasibility",
          "low_drift"
        ]
      },
      "P": {
        "name": "Probabilistic",
        "bias": [
          "novelty",
          "exploration",
          "reframing"
        ]
      }
    },
    "roles": [
      "arbiter",
      "free_thinker",
      "grounder",
      "writer"
    ],
    "meta_roles": [
      "meta_arbiter",
      "meta_writer"
    ]
  },
  "schemas": {
    "input_package": {
      "required": [
        "problem_statement",
        "success_definition",
        "constraints",
        "context",
        "timebox"
      ],
      "optional": [
        "stakeholders",
        "non_goals",
        "risk_tolerance",
        "glossary"
      ]
    },
    "idea_card": {
      "id": "string",
      "title": "string",
      "one_liner": "string",
      "mechanism": [
        "string"
      ],
      "assumptions": [
        "string"
      ],
      "constraints": [
        "string"
      ],
      "mve": {
        "steps": [
          "string"
        ],
        "success_metric": "string",
        "time_cost": "string",
        "resources": [
          "string"
        ]
      },
      "risks": [
        "string"
      ],
      "upside": "string",
      "tags": [
        "string"
      ]
    },
    "bridge_packet": {
      "top_ideas": [
        "idea_card"
      ],
      "fragile_assumptions": [
        "string"
      ],
      "key_questions": [
        "string"
      ],
      "themes": [
        "string"
      ],
      "do_not_do": [
        "string"
      ]
    },
    "score": {
      "novelty": "0-5",
      "feasibility": "0-5",
      "leverage": "0-5",
      "clarity": "0-5",
      "evidence_alignment": "0-5",
      "decision": [
        "advance",
        "hold",
        "drop"
      ]
    },
    "brief": {
      "version": "string",
      "summary": [
        "string"
      ],
      "shortlist": [
        {
          "idea_id": "string",
          "score": "score",
          "notes": "string"
        }
      ],
      "graph_delta": {
        "nodes_added": [
          "object"
        ],
        "edges_added": [
          "object"
        ],
        "nodes_updated": [
          "object"
        ],
        "edges_updated": [
          "object"
        ]
      },
      "open_questions": [
        "string"
      ],
      "next_actions": [
        "string"
      ]
    },
    "final_pack": {
      "primary_bets": [
        "idea_card"
      ],
      "secondary_bets": [
        "idea_card"
      ],
      "experiments": [
        "object"
      ],
      "assumptions_to_validate": [
        "string"
      ],
      "decision_log": [
        "string"
      ],
      "kill_criteria": [
        "string"
      ],
      "next_data": [
        "string"
      ]
    }
  },
  "workflow": [
    {
      "phase": 0,
      "name": "setup",
      "artifacts_out": [
        "context_snapshot_v0"
      ]
    },
    {
      "phase": 1,
      "name": "independent_ideation",
      "artifacts_out": [
        "D_brief_v1",
        "P_brief_v1"
      ]
    },
    {
      "phase": 2,
      "name": "bridge",
      "routes": [
        "D.arbiter<->P.arbiter"
      ],
      "artifacts_out": [
        "bridge_D_to_P",
        "bridge_P_to_D"
      ]
    },
    {
      "phase": 3,
      "name": "second_pass",
      "artifacts_out": [
        "D_brief_v2",
        "P_brief_v2"
      ]
    },
    {
      "phase": 4,
      "name": "meta_merge",
      "artifacts_out": [
        "final_idea_brief_pack"
      ]
    }
  ],
  "prompts": {
    "D": {
      "arbiter": "You are the Arbiter for the Deterministic Council. Manage phases, request Idea Cards, score with rubric, select and stop on convergence. Minimal speculation. Do not generate more than 2 original ideas yourself.",
      "free_thinker": "Generate 10–15 feasible Idea Cards bounded by constraints. Include mechanisms. Keep each card short.",
      "grounder": "Expand selected Idea Cards with Preconditions (X/Y/Z), dependencies, and MVEs with success metrics. Do not veto; propose cheap proxy tests if needed.",
      "writer": "Maintain ideation graph and versioned briefs. No new ideas. Track deltas and tensions."
    },
    "P": {
      "arbiter": "You are the Arbiter for the Probabilistic Council. Protect divergence early, enforce Idea Cards, require uncertainty labels, then request grounding and testability. Avoid premature convergence.",
      "free_thinker": "Generate 15–25 novel Idea Cards with plausible mechanisms. Mark [SPECULATIVE] vs [GROUNDED]. Expand top 5.",
      "grounder": "Preserve weirdness; extract kernel; define cheap MVEs with clear success metrics. Do not kill ideas.",
      "writer": "Maintain ideation graph and versioned briefs. No new ideas. Track deltas and tensions."
    },
    "meta_arbiter": "Ingest D Brief v2 and P Brief v2. Apply rubric consistently. Select 1–3 primary bets and 2–4 secondary bets with MVEs and kill criteria. Produce rationale and decision log."
  },
  "graph_model": {
    "node_types": [
      "idea",
      "assumption",
      "constraint",
      "experiment",
      "evidence"
    ],
    "edge_types": [
      "supports",
      "depends_on",
      "risks",
      "tests",
      "contradicts"
    ]
  },
  "protocol": {
    "allowed_routes": [
      "D.arbiter<->D.free_thinker",
      "D.arbiter<->D.grounder",
      "D.arbiter<->D.writer",
      "P.arbiter<->P.free_thinker",
      "P.arbiter<->P.grounder",
      "P.arbiter<->P.writer",
      "D.arbiter<->P.arbiter (bridge only)",
      "meta_arbiter reads D_brief_v2 and P_brief_v2"
    ],
    "hard_rules": [
      "No cross-council messages except Bridge Packets.",
      "Writers do not invent new ideas.",
      "Grounders do not veto; they concretize.",
      "Arbiters stop on convergence or diminishing novelty."
    ]
  }
}