Skip to main content
Glama

score_portfolio

Read-onlyIdempotent

Scores several AI initiatives as one BVF portfolio and returns Accelerate/Fix/Stop counts, aggregate EUR value, mean decision score, top-value and top-risk initiatives, plus individual results.

Instructions

Score several AI initiatives as one AI BVF v1.0 portfolio and return the board-level position: counts of Accelerate / Fix / Stop, aggregate modelled EUR value range, mean decision score, the highest-value initiative, the highest-risk initiative, and every individual result. CALL THIS when the user has a portfolio document and needs to know what it contains before deciding funding or order, instead of looping score_initiative one initiative at a time. The single readiness value applies across every initiative: it changes capture rates and the pace-layer drag, so measure it with infer_readiness first when process data exists. The portfolio must carry organization.revenue_eur for EUR values; initiatives with missing revenue or invalid taxonomy are reported as skipped, never silently counted. Run validate_portfolio first only when the document shape is uncertain, then call sequence_portfolio when the verdicts need turning into a 90-day order. Deterministic calculation with no authentication. Anonymous usage telemetry may be sent; set AIBVF_TELEMETRY_DISABLE=1 to opt out.

Input Schema

NameRequiredDescriptionDefault
portfolioYesAI BVF v1.0 portfolio with organization and initiatives. Each initiative carries id, name, function, ai_tier and four scores, supplied as numbers or { value, confidence } objects. Retain each initiative's work_architecture, pillar_basis and optional signal_completeness. pillar_basis marks given or estimated values; estimated pillars are recalculated for the current context and retain an input-quality reduction. Supplied values without provenance are caller-provided, with no claim of evidence verification. Accelerate requires the pillar thresholds and all four work-architecture checks. Missing work-design evidence returns Fix for an otherwise green case. organization.revenue_eur is required for benefit modelling. Validate unfamiliar documents first.
readinessYesOrganisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. The portfolio schema does not carry per-initiative readiness; this single value sets the capture rate for the whole portfolio and, paired with the ai_tier of each initiative, its pace-layer drag — lower readiness against a higher tier discounts the modelled EUR value.

Output Schema

NameRequiredDescriptionDefault
totalYesTotal initiatives in the portfolio (scored + skipped).
validYesTrue when the portfolio passed schema validation. False means no initiatives were scored.
summaryYes
feedbackNoOptional three-question feedback route, present only when any initiative was Fix or Stop. The page records the response anonymously only when the user chooses an answer; no assessment data is attached.
readinessYesReadiness value applied across all initiatives.
bvf_versionYesAI BVF protocol version used.
organizationYesEcho of the portfolio organisation fields applied to scoring.
interpretationNoMeaning and limits of compatibility fields. Present these labels when explaining the result.
validation_errorsNoEmpty when valid; otherwise one entry per schema violation.
advisory_next_stepNoOptional CTA, present only when any initiative was Fix or Stop.
scored_initiativesYesPer-initiative scoring result.
skipped_initiativesYesInitiatives that could not be scored, with the reason. Empty when all initiatives scored.
aggregate_net_value_eurYesArithmetic sum of benefit hypotheses. Reconcile overlapping scope, double counting and project costs before using this as a portfolio business case.
highest_risk_initiativeNoScored initiative most at risk: worst classification (Stop > Fix > Accelerate), tie-broken by lowest decision_confidence. Omitted when none were scored.
top_initiative_by_valueNoScored initiative with the highest mid-point readiness-adjusted EUR benefit. Omitted when none were scored.
mean_decision_confidenceYesMean decision score across scored initiatives (0–100); 0 when none were scored.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changedv0.14.14
    • changedInput schema / properties / portfolio / description
      Previous value: -"A portfolio document conforming to the AI BVF v1.0 schema: bvf_version, organization (name, industry, optional revenue_eur), and a non-empty initiatives array. Each initiative carries id, name, function, ai_tier, and a scores object whose four pillars each carry a numeric value (0–100). organization.revenue_eur is required to model EUR value; initiatives that cannot be scored (missing revenue, unknown function/ai_tier) appear in skipped_initiatives rather than scored_initiatives. Schema: https://www.aibvf.com/protocol."New value: +"AI BVF v1.0 portfolio with organization and initiatives. Each initiative carries id, name, function, ai_tier and four scores, supplied as numbers or { value, confidence } objects. Retain each initiative's work_architecture, pillar_basis and optional signal_completeness. pillar_basis marks given or estimated values; estimated pillars are recalculated for the current context and retain an input-quality reduction. Supplied values without provenance are caller-provided, with no claim of evidence verification. Accelerate requires the pillar thresholds and all four work-architecture checks. Missing work-design evidence returns Fix for an otherwise green case. organization.revenue_eur is required for benefit modelling. Validate unfamiliar documents first."
    • changedInput schema / properties / readiness / description
      Previous value: -"Organisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. The portfolio schema does not carry per-initiative readiness; this single value sets the capture rate for the whole portfolio."New value: +"Organisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. The portfolio schema does not carry per-initiative readiness; this single value sets the capture rate for the whole portfolio and, paired with the ai_tier of each initiative, its pace-layer drag — lower readiness against a higher tier discounts the modelled EUR value."
    • changedOutput schema / properties / aggregate_net_value_eur / description
      Previous value: -"Sum of net EUR value across scored initiatives, low/high."New value: +"Arithmetic sum of benefit hypotheses. Reconcile overlapping scope, double counting and project costs before using this as a portfolio business case."
    • addedOutput schema / properties / feedback
      Added value: +{
      +  "description": "Optional three-question feedback route, present only when any initiative was Fix or Stop. The page records the response anonymously only when the user chooses an answer; no assessment data is attached.",
      +  "properties": {
      +    "question": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "format": "uri",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "question",
      +    "url"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / interpretation
      Added value: +{
      +  "additionalProperties": {
      +    "type": "string"
      +  },
      +  "description": "Meaning and limits of compatibility fields. Present these labels when explaining the result.",
      +  "type": "object"
      +}
    • changedOutput schema / properties / mean_decision_confidence / description
      Previous value: -"Mean decision confidence across scored initiatives (0–100); 0 when none were scored."New value: +"Mean decision score across scored initiatives (0–100); 0 when none were scored."
    • changedOutput schema / properties / scored_initiatives / items / properties / applied_modules / description
      Previous value: -"BVF scoring modules that fired for this initiative."New value: +"Scoring-rule and sector-context labels. Sector labels do not certify clinical validation or regulatory compliance."
    • addedOutput schema / properties / scored_initiatives / items / properties / audit
      Added value: +{
      +  "description": "Reproducibility record: engine version, the rules that fired, and the resolved inputs. Deterministic, no timestamps. If the verdict is challenged months later, the same inputs on the same engine version reproduce it exactly.",
      +  "properties": {
      +    "bvf_version": {
      +      "type": "string"
      +    },
      +    "engine": {
      +      "type": "string"
      +    },
      +    "engine_version": {
      +      "type": "string"
      +    },
      +    "inputs_used": {
      +      "description": "The resolved inputs the result was computed on, including estimated pillar values.",
      +      "type": "object"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "rules_fired": {
      +      "description": "The rules that actually fired, in order: estimation, gates, classification, value arithmetic.",
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / caveat
      Added value: +{
      +  "description": "Present only when signal_completeness was low: warns the verdict rests on soft inputs and confidence was reduced.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / scored_initiatives / items / properties / decision_confidence / description
      Previous value: -"Confidence in the verdict (0–100)."New value: +"Heuristic decision score, 0 to 100, adjusted for input quality. This score has no probability calibration."
    • changedOutput schema / properties / scored_initiatives / items / properties / net_value_eur / description
      Previous value: -"Modelled net EUR value, low/high."New value: +"Modelled readiness-adjusted EUR benefit, low/high."
    • addedOutput schema / properties / scored_initiatives / items / properties / pillar_basis
      Added value: +{
      +  "description": "Per pillar: \"given\" (caller supplied it) or \"estimated\" (deterministic prior). When any pillar is estimated, tell the user which, and ask for evidence on those to firm up the verdict.",
      +  "properties": {
      +    "change_enablement": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "financial_return": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "governance_risk": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    },
      +    "strategic_alignment": {
      +      "enum": [
      +        "given",
      +        "estimated"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / scores_used
      Added value: +{
      +  "description": "The four pillar values the verdict was actually computed on, whether given by the caller or estimated by the engine. Show these to the user when any pillar was estimated.",
      +  "properties": {
      +    "change_enablement": {
      +      "type": "number"
      +    },
      +    "financial_return": {
      +      "type": "number"
      +    },
      +    "governance_risk": {
      +      "type": "number"
      +    },
      +    "strategic_alignment": {
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / sensitivity
      Added value: +{
      +  "description": "What moves this verdict, computed deterministically: the value if readiness were one notch worse, the value at revenue minus 20 percent, and the nearest single-pillar movements that flip the classification. Boards trust ranges with visible assumptions over point estimates; show this.",
      +  "properties": {
      +    "readiness_one_notch_down": {
      +      "description": "Null when readiness is already siloed.",
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "revenue_minus_20pct": {
      +      "type": "object"
      +    },
      +    "verdict_flips": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / signal_completeness
      Added value: +{
      +  "description": "Input-quality factor after estimated provenance, pillar quality and any explicit factor are combined conservatively.",
      +  "maximum": 1,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • addedOutput schema / properties / scored_initiatives / items / properties / work_architecture
      Added value: +{
      +  "description": "The work architecture gate across workflow, roles, human decision rights and performance measures. A stated gap or missing evidence blocks Accelerate.",
      +  "properties": {
      +    "blocks_accelerate": {
      +      "type": "boolean"
      +    },
      +    "checks": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "gaps": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "gate": {
      +      "type": "string"
      +    },
      +    "next_question": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "enum": [
      +        "unknown",
      +        "partial",
      +        "gap",
      +        "ready"
      +      ],
      +      "type": "string"
      +    },
      +    "unknowns": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "blocks_accelerate",
      +    "checks",
      +    "gaps",
      +    "unknowns",
      +    "gate"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / top_initiative_by_value / description
      Previous value: -"Scored initiative with the highest mid-point net EUR value. Omitted when none were scored."New value: +"Scored initiative with the highest mid-point readiness-adjusted EUR benefit. Omitted when none were scored."
    • changedOutput schema / properties / top_initiative_by_value / properties / net_value_eur / description
      Previous value: -"Net EUR value range for the top initiative."New value: +"Readiness-adjusted EUR benefit range for the top initiative."
  2. Addedv0.5.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and idempotentHint=true already declaring safety, the description still adds meaningful behavior: readiness 'changes capture rates and the pace-layer drag,' missing revenue or invalid taxonomy are 'reported as skipped, never silently counted,' and anonymous telemetry can be disabled via AIBVF_TELEMETRY_DISABLE=1. It does not spell out the full Accelerate/Fix/Stop decision thresholds, but the underlying rubric is beyond reasonable description scope.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and the output set, then execution guidance, then caveats and telemetry. Mostly dense and every sentence carries operational weight, though the telemetry sentence is the least relevant to invoking the tool correctly and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a nested two-parameter portfolio tool with an output schema present and annotations covering safety, the description supplies the cross-cutting constraints an agent needs: pipeline ordering relative to infer_readiness/validate_portfolio/sequence_portfolio, the single readiness applying portfolio-wide, and what happens to bad data. An output schema exists so return values need not be explained. Only minor gaps (e.g., expected range or edge-case behavior of the skipped set) remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter entries already document both fields in depth, establishing a baseline of 3. The description goes beyond that by emphasizing what is easy to miss operationally: 'The single readiness value applies across every initiative' and that organization.revenue_eur is required for EUR values, warning that missing revenue yields skipped rather than silent counts.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Score several AI initiatives as one AI BVF v1.0 portfolio') and immediately enumerates the exact outputs (counts of Accelerate/Fix/Stop, EUR range, mean score, top-value and top-risk initiative, individual results). It explicitly distinguishes itself from the sibling score_initiative by telling the agent to use this instead of looping that tool one initiative at a time.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives an explicit when-to-use trigger ('when the user has a portfolio document and needs to know what it contains before deciding funding or order'), names the anti-pattern (looping score_initiative), and routes to the right adjacent tools: infer_readiness first when process data exists, validate_portfolio only when the document shape is uncertain, and sequence_portfolio when verdicts need a 90-day order.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.