{
  "schema_version": 1,
  "module_id": "commercial",
  "name": "Assessment & Offers",
  "case_module": "support",
  "kind": "embedded",
  "root_profile": "support.root",
  "memory_root": "commercial",
  "profiles": [
    {
      "key": "support.root",
      "execution_kind": "llm",
      "owns": []
    },
    {
      "key": "support.communicator",
      "execution_kind": "llm",
      "owns": []
    },
    {
      "key": "commercial.coordinator",
      "execution_kind": "llm",
      "owns": [
        "commercial"
      ]
    },
    {
      "key": "commercial.assessor",
      "execution_kind": "llm",
      "owns": []
    },
    {
      "key": "commercial.offer_preparer",
      "execution_kind": "llm",
      "owns": []
    }
  ],
  "entry_stage": "O1",
  "stages": [
    {
      "id": "O1",
      "profile": "commercial.assessor",
      "consumes": [
        "paper:brief",
        "route-packet"
      ],
      "produces": [
        "paper:report"
      ],
      "gates": [],
      "done": "Clarify the request inside the assessment task — restate the understood outcome, ask for what is missing and agree the scope and acceptance examples — then investigate the required effort through evidence and domain consults and return the complete assessment.",
      "clarification": true
    },
    {
      "id": "O2",
      "profile": "commercial.offer_preparer",
      "consumes": [
        "paper:brief",
        "paper:report"
      ],
      "produces": [
        "paper:packet"
      ],
      "gates": [
        {
          "kind": "H3",
          "when": "result_ready"
        }
      ],
      "done": "Prepare a versioned offer from assessed work and owner-provided terms. Missing terms block a complete offer."
    },
    {
      "id": "O3",
      "profile": "commercial.coordinator",
      "consumes": [
        "paper:packet"
      ],
      "produces": [
        "paper:report"
      ],
      "gates": [
        {
          "kind": "CG-11",
          "when": "result_ready"
        }
      ],
      "done": "Customer approves or rejects the exact offer revision; acceptance is commercial only and issues no implementation grant."
    },
    {
      "id": "O4",
      "profile": "support.communicator",
      "consumes": [
        "paper:packet",
        "paper:report"
      ],
      "produces": [
        "paper:report"
      ],
      "gates": [
        {
          "kind": "H5-send",
          "when": "before_execution"
        }
      ],
      "done": "Communicate the decision and accepted terms to the customer and named owner; return scoped proof to Support closure.",
      "precipitates": true
    }
  ],
  "edges": [
    {
      "from": "O1",
      "to": "O2",
      "on": "required evidence ready",
      "kind": "dependency"
    },
    {
      "from": "O2",
      "to": "O3",
      "on": "required evidence ready",
      "kind": "dependency"
    },
    {
      "from": "O3",
      "to": "O4",
      "on": "customer accepts or rejects the exact offer revision",
      "kind": "dependency"
    },
    {
      "from": "O3",
      "to": "O2",
      "on": "customer requests changed terms",
      "kind": "rework"
    },
    {
      "from": "O2",
      "to": "O1",
      "on": "scope changes effort assumptions",
      "kind": "rework"
    }
  ],
  "eval_sets": [
    "commercial.scope",
    "commercial.assessment",
    "commercial.offer",
    "commercial.acceptance"
  ]
}
