{
  "version": "1.0.0",
  "publishedOn": "2026-08-25",
  "totalWeight": 31,
  "thresholds": {
    "buyMax": -30,
    "buildMin": 30,
    "boundaryMargin": 7,
    "minimumKnownWeightShare": 0.75
  },
  "criteria": [
    {
      "id": "strategic_differentiation",
      "order": 1,
      "label": "Strategic differentiation",
      "question": "How much of the agent's behavior creates a durable product or operating advantage?",
      "whyItMatters": "Commodity capability is expensive to recreate. Differentiating decision logic can be risky to surrender to a vendor roadmap.",
      "weight": 3,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Useful but commodity", "value": -1, "blocks": [], "interpretation": "The workflow is available from several credible products and is not central to competitive advantage.", "evidencePrompt": "Name the available products and the exact capability each already covers." },
        { "id": "hybrid", "label": "Some differentiated logic", "value": 0, "blocks": [], "interpretation": "The shell is common, but domain rules or user experience contain differentiated work.", "evidencePrompt": "Separate commodity platform functions from logic that must remain yours." },
        { "id": "build", "label": "Core proprietary capability", "value": 1, "blocks": [], "interpretation": "The agent's behavior, feedback loop or workflow is part of the product moat.", "evidencePrompt": "Describe what a competitor could not reproduce by buying the same platform." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "The strategic role has not been agreed.", "evidencePrompt": "Get a product-owner decision before treating the score as ready." }
      ]
    },
    {
      "id": "workflow_uniqueness",
      "order": 2,
      "label": "Workflow and policy uniqueness",
      "question": "Are the agent's rules, tools and exception paths standard or organization-specific?",
      "whyItMatters": "A standard workflow favors configuration. Deep policy logic and unusual exceptions increase the value of owned orchestration.",
      "weight": 3,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Standard workflow", "value": -1, "blocks": [], "interpretation": "The process follows common product patterns with limited exceptions.", "evidencePrompt": "List the required steps and map them to available vendor features." },
        { "id": "hybrid", "label": "Standard core, custom edges", "value": 0, "blocks": [], "interpretation": "Most steps are standard while a few rules or actions need owned extensions.", "evidencePrompt": "Mark each step as configure, extend or own." },
        { "id": "build", "label": "Proprietary policy engine", "value": 1, "blocks": [], "interpretation": "The process depends on organization-specific rules, exceptions or sequencing.", "evidencePrompt": "Document the exceptions that generic products cannot express safely." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "The real workflow has not been mapped.", "evidencePrompt": "Run a workflow discovery session with operators and control owners." }
      ]
    },
    {
      "id": "data_control",
      "order": 3,
      "label": "Data control and residency",
      "question": "Can an approved vendor path meet data location, retention, deletion and training-use constraints?",
      "whyItMatters": "A mandatory control that the shortlist cannot meet disqualifies a pure buy decision regardless of feature fit.",
      "weight": 3,
      "gateCritical": true,
      "options": [
        { "id": "buy", "label": "Approved vendor path exists", "value": -1, "blocks": [], "interpretation": "A shortlisted vendor can meet documented handling and residency requirements.", "evidencePrompt": "Attach the approved data-flow, retention terms and deletion test." },
        { "id": "hybrid", "label": "Sensitive boundary can be isolated", "value": 0, "blocks": [], "interpretation": "Commodity services are acceptable outside a controlled data and policy boundary.", "evidencePrompt": "Draw the trust boundary and identify which fields may cross it." },
        { "id": "build", "label": "Controlled custom path required", "value": 1, "blocks": ["BUY"], "interpretation": "No approved vendor route currently meets a mandatory data-control constraint.", "evidencePrompt": "Cite the binding policy, regulation or security decision and the failed vendor requirement." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "Data classification or vendor handling is unresolved.", "evidencePrompt": "Complete data classification and a vendor data-flow review." }
      ]
    },
    {
      "id": "integration_depth",
      "order": 4,
      "label": "Integration depth",
      "question": "How deeply must the agent interact with systems, permissions and failure recovery?",
      "whyItMatters": "Connector count alone is weak evidence. Permission fidelity, write actions and recovery semantics drive integration ownership.",
      "weight": 3,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Standard connectors and reads", "value": -1, "blocks": [], "interpretation": "The use case relies on supported connectors and limited read-oriented access.", "evidencePrompt": "Verify the exact objects, permissions and rate limits in the vendor connector." },
        { "id": "hybrid", "label": "Mixed connector depth", "value": 0, "blocks": [], "interpretation": "Common systems are covered, but one or more integrations require owned adapters.", "evidencePrompt": "Identify the crown-jewel integrations and keep their contracts portable." },
        { "id": "build", "label": "Deep custom transaction paths", "value": 1, "blocks": [], "interpretation": "The agent needs legacy access, custom APIs, transactional writes or organization-specific recovery.", "evidencePrompt": "Map identity, authorization, idempotency, rollback and reconciliation for each action." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "The integration inventory is incomplete.", "evidencePrompt": "Inventory systems, actions, permissions, error modes and data owners." }
      ]
    },
    {
      "id": "time_to_value",
      "order": 5,
      "label": "Time to validated value",
      "question": "How soon must a production-like workflow produce measurable evidence?",
      "whyItMatters": "Urgency favors a configurable baseline, while a longer decision window can support owned architecture and repeated evaluation.",
      "weight": 3,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Evidence needed immediately", "value": -1, "blocks": [], "interpretation": "The business needs a production-like baseline before a custom platform could be staffed and built.", "evidencePrompt": "Name the decision deadline and the KPI that must be measured by then." },
        { "id": "hybrid", "label": "Phased evidence window", "value": 0, "blocks": [], "interpretation": "A vendor or open component can establish a baseline while custom boundaries are validated.", "evidencePrompt": "Define the first reversible slice and the later migration gate." },
        { "id": "build", "label": "Longer validation horizon", "value": 1, "blocks": [], "interpretation": "The roadmap can absorb iterative architecture, evaluation and operating-model work.", "evidencePrompt": "Confirm staffing dates, release gates and the cost of delayed learning." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "No decision deadline or measurable outcome is agreed.", "evidencePrompt": "Set a business deadline and a production-like validation target." }
      ]
    },
    {
      "id": "team_capability",
      "order": 6,
      "label": "Engineering and product capability",
      "question": "Can a named internal team design, test and evolve the agent beyond a prototype?",
      "whyItMatters": "Build capacity includes product ownership, data engineering, security and evaluation, not only prompt or application code.",
      "weight": 3,
      "gateCritical": true,
      "options": [
        { "id": "buy", "label": "No dedicated build team", "value": -1, "blocks": ["BUILD"], "interpretation": "The organization cannot assign a durable cross-functional owner team.", "evidencePrompt": "Record the unfilled roles and the opportunity cost of reallocating staff." },
        { "id": "hybrid", "label": "Strong software team, selective gaps", "value": 0, "blocks": [], "interpretation": "Internal engineers can own integration and domain logic while buying missing platform capability.", "evidencePrompt": "Assign owners for product, platform, data, security and evaluation." },
        { "id": "build", "label": "Experienced agent delivery team", "value": 1, "blocks": [], "interpretation": "A durable team has relevant delivery and operating experience.", "evidencePrompt": "Name the people, allocation, prior systems and on-call plan." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "Staffing is hypothetical.", "evidencePrompt": "Replace role names with named owners and committed capacity." }
      ]
    },
    {
      "id": "lifecycle_capacity",
      "order": 7,
      "label": "Lifecycle ownership",
      "question": "Who will operate evaluation, monitoring, incidents and model or vendor changes?",
      "whyItMatters": "The sourcing choice changes the work, but it never removes responsibility for outcomes and controls.",
      "weight": 3,
      "gateCritical": true,
      "options": [
        { "id": "buy", "label": "Need managed lifecycle coverage", "value": -1, "blocks": ["BUILD"], "interpretation": "The organization needs a vendor to carry much of the platform lifecycle.", "evidencePrompt": "Confirm what the vendor operates and what remains your responsibility." },
        { "id": "hybrid", "label": "Shared operating model", "value": 0, "blocks": [], "interpretation": "The vendor runs commodity layers while the organization owns domain quality and incidents.", "evidencePrompt": "Create a RACI for monitoring, changes, incidents, data and access." },
        { "id": "build", "label": "Full internal lifecycle team", "value": 1, "blocks": [], "interpretation": "The organization can own releases, regressions, infrastructure and incident response.", "evidencePrompt": "Attach the evaluation cadence, on-call rota, rollback path and change policy." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "No operating owner has accepted responsibility.", "evidencePrompt": "Assign durable owners before approving a build." }
      ]
    },
    {
      "id": "capital_shape",
      "order": 8,
      "label": "Budget and capital shape",
      "question": "Does the organization prefer lower initial commitment or controlled long-term investment?",
      "whyItMatters": "The same nominal budget can produce different decisions depending on cash timing and approved headcount.",
      "weight": 2,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Lower initial commitment", "value": -1, "blocks": [], "interpretation": "Subscription or usage spend is easier to approve than a larger internal build.", "evidencePrompt": "Record approved setup spend, recurring spend and procurement limits." },
        { "id": "hybrid", "label": "Balanced spend profile", "value": 0, "blocks": [], "interpretation": "The budget can fund a platform and a bounded custom layer.", "evidencePrompt": "Separate vendor, integration, internal labor and contingency budgets." },
        { "id": "build", "label": "Front-loaded investment is approved", "value": 1, "blocks": [], "interpretation": "The organization can fund discovery, engineering and operating capability before benefits stabilize.", "evidencePrompt": "Verify capital, headcount and contingency approvals." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "Budget shape is not approved.", "evidencePrompt": "Get separate approval ranges for one-time and recurring spend." }
      ]
    },
    {
      "id": "scale_economics",
      "order": 9,
      "label": "Scale and unit economics",
      "question": "Are demand, workload units and marginal costs measurable enough to compare paths?",
      "whyItMatters": "A low pilot price says little about per-user, per-task or per-action economics at production scale.",
      "weight": 2,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Demand is uncertain or modest", "value": -1, "blocks": [], "interpretation": "The organization benefits from avoiding fixed platform investment while demand is unproven.", "evidencePrompt": "Define the unit of work and a bounded adoption range." },
        { "id": "hybrid", "label": "Scale is measurable, crossover unclear", "value": 0, "blocks": [], "interpretation": "Usage can be measured, but the economic crossover requires a live baseline.", "evidencePrompt": "Track cost per successful task, active user, action and exception." },
        { "id": "build", "label": "High predictable scale", "value": 1, "blocks": [], "interpretation": "Stable high volume can justify owned cost controls and reusable platform work.", "evidencePrompt": "Show demand, peak shape, growth assumptions and cost per successful outcome." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "No unit or demand model exists.", "evidencePrompt": "Define a measurable unit and collect a baseline." }
      ]
    },
    {
      "id": "portability_tolerance",
      "order": 10,
      "label": "Portability and vendor dependency",
      "question": "What must remain movable if the model, platform or commercial terms change?",
      "whyItMatters": "Code ownership is incomplete when prompts, evals, state, logs or deployment cannot leave the vendor runtime.",
      "weight": 2,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Contractual dependency is acceptable", "value": -1, "blocks": [], "interpretation": "The organization accepts a managed platform dependency with bounded exit terms.", "evidencePrompt": "Record renewal, export, termination assistance and deletion terms." },
        { "id": "hybrid", "label": "Portable core, managed shell", "value": 0, "blocks": [], "interpretation": "Domain logic, data and evals remain portable while replaceable services are bought.", "evidencePrompt": "Run an export and redeploy test for the assets that must remain yours." },
        { "id": "build", "label": "High portability requirement", "value": 1, "blocks": [], "interpretation": "The organization needs control over runtime boundaries and migration paths.", "evidencePrompt": "List every asset needed to operate after vendor account termination." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "Exit requirements are undefined.", "evidencePrompt": "Write an exit scenario before vendor selection or platform build." }
      ]
    },
    {
      "id": "evaluation_control",
      "order": 11,
      "label": "Evaluation and observability control",
      "question": "Can a bought product expose the evidence needed to test domain quality and actions?",
      "whyItMatters": "A system cannot be governed from a demo score. Teams need test sets, traces, failure labels and release gates tied to their own workflow.",
      "weight": 2,
      "gateCritical": false,
      "options": [
        { "id": "buy", "label": "Vendor evidence is sufficient", "value": -1, "blocks": [], "interpretation": "The platform exposes the required traces, eval hooks, exports and release controls.", "evidencePrompt": "Verify each required artifact in a production-like trial." },
        { "id": "hybrid", "label": "Own evals around a bought runtime", "value": 0, "blocks": [], "interpretation": "The platform can be wrapped by an organization-owned test and observability layer.", "evidencePrompt": "Keep test data, metrics and release criteria outside the vendor-only surface." },
        { "id": "build", "label": "Domain-specific evidence is central", "value": 1, "blocks": [], "interpretation": "The use case needs custom evaluation, traces or action-level controls unavailable from products.", "evidencePrompt": "Name the failure taxonomy, test set, trace fields and stop conditions." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "The evidence contract is not defined.", "evidencePrompt": "Define what must be observable before comparing vendors or architectures." }
      ]
    },
    {
      "id": "compliance_path",
      "order": 12,
      "label": "Compliance and third-party path",
      "question": "Which sourcing path can produce the required approvals, records and accountability?",
      "whyItMatters": "A vendor certification does not transfer accountability. A custom build also creates documentation and control obligations.",
      "weight": 2,
      "gateCritical": true,
      "options": [
        { "id": "buy", "label": "Approved vendor controls fit", "value": -1, "blocks": [], "interpretation": "A vendor route can satisfy documented procurement, security and compliance gates.", "evidencePrompt": "Attach the approved control matrix, contracts and residual-risk owner." },
        { "id": "hybrid", "label": "Control boundary must be shared", "value": 0, "blocks": [], "interpretation": "The path needs vendor evidence plus organization-owned controls and records.", "evidencePrompt": "Map each obligation to the vendor, internal owner or shared process." },
        { "id": "build", "label": "Custom controlled path required", "value": 1, "blocks": ["BUY"], "interpretation": "A mandatory approval or control cannot be met by the current vendor shortlist.", "evidencePrompt": "Cite the failed gate and the evidence a controlled build must produce." },
        { "id": "unknown", "label": "Unknown", "value": null, "blocks": [], "interpretation": "The applicable obligations or approval route are unresolved.", "evidencePrompt": "Get legal, security and risk owners to classify the use case." }
      ]
    }
  ]
}
