io.github.Bahamas1717/aibvf-mcp
NPM · AIBVF-MCP · 2 COMPONENTS · SCANNED AUG 3
AI BVF: score AI portfolios Stop/Fix/Accelerate with decision confidence and pace-layer drag.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree.Partial
- No install/post-install scripts declared.Pass
- Only part of the dependency tree could be resolved (95 of 99), so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency71
- Repository check failed: the declared repository URL redirects; it must resolve directly. See how to fix → View diagnostics → Fail
- Cryptographically verified build provenance (signed, bound to Bahamas1717/ai-bvf). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 1 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability18
- AI-judged instruction clarity (poor).Fail
- Context-footprint check failed: tool/resource definitions use about 5893 tokens (~491/item across 12 items; 12 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage99
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 96% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
npm · aibvf-mcp
claude mcp add bahamas1717-aibvf-mcp -- npx -y aibvf-mcp
codex mcp add bahamas1717-aibvf-mcp -- npx -y aibvf-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"bahamas1717-aibvf-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"aibvf-mcp"
],
"enabled": true
}
}
} openclaw mcp add bahamas1717-aibvf-mcp --command npx --arg -y --arg aibvf-mcp
mcp_servers:
bahamas1717-aibvf-mcp:
command: "npx"
args: ["-y", "aibvf-mcp"] {
"mcpServers": {
"bahamas1717-aibvf-mcp": {
"command": "npx",
"args": [
"-y",
"aibvf-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 3 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 2 Aug 26 +51
- Known CVEs: unverified → partial ▲ security
- Provenance: unverified → pass ▲ security
- Install scripts: unverified → pass ▲ security
- Malware scan: unverified → pass ▲ security
- The attested source repository moved: Bahamas1717/ai-bvf security
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- License: unverified → pass ▲ functional
- Dependency health: unverified → partial ▲ functional
- Maintenance: unverified → pass ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → poor ▲ functional
- Stability: unverified → 0.23 ▲ functional
- Licence: MIT functional
- 1 Aug 26 +11
- Tool coverage: unverified → 100 ▲ functional
- 31 Jul 26 −18
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 30 Jul 26 −16
- Tool coverage: 100 → unverified ▼ functional
- Security disclosure: fail → unverified ▼ functional
- First check of Schema quality: unverified functional
- 27 Jul 26 34
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 3 Aug 2026 · Analysed npm/[email protected]
Provenance verified
Ecosystem: npm · Outcome: verified
Reason: verified
- Source repo:
- Bahamas1717/ai-bvf
- Certificate issuer:
- https://token.actions.githubusercontent.com
- Certificate SAN:
- https://github.com/Bahamas1717/ai-bvf/.github/workflows/publish-mcp-registry.yml@refs/heads/main
- Rekor log index:
- 2117422823
- Predicate type:
- https://slsa.dev/provenance/v1
- Subject digest:
- sha512:c28aa1a69787b9f8f9d31c0830b20a1d95040cfcabcb47c0f30a5fbb50b7ef63473107663c0488a57bdaef1d675474431cdfa69fe1d7453c0f9c009e9
- Discovery method:
- attestation_endpoint
Dependencies 95 packages
95 packages in the resolved dependency tree · 95 deprecated · 29 stale.
The dependency tree was only partially resolved, so these counts may be incomplete.
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
assemble_portfolio ~397
Assemble a valid AI BVF v1.0 portfolio document from loose inputs, deterministically. Agents arrive with initiative names, plain-language functions and half the pillar scores, then hand-build the portfolio JSON and get the shape wrong; this tool builds it right. Give it the organisation (name plus industry in canonical or everyday language) and one entry per initiative (name, function, ai_tier, plus whatever pillar scores you actually have as bare numbers) and it returns the finished document: aliases resolved through the same mapping as map_to_taxonomy, ids generated from names and deduplicated, missing pillars estimated from readiness, tier, function and the published benchmarks with the estimation reported per initiative in estimated_pillars, and the whole document validated before it is returned. CALL THIS when the user lists several AI initiatives in conversation and you need a portfolio document for validate_portfolio, score_portfolio or sequence_portfolio, instead of composing the JSON by hand. Do NOT invent pillar scores to fill it: pass only the numbers the user gave you and let the estimation carry the rest honestly, the estimated pillars carry low confidence and scoring haircuts accordingly. Unresolvable inputs come back as issues with suggestions; ask the user to choose rather than guessing. Every default the assembler applies is named in plain language in assumptions: surface them to the user, the assembler structures inputs and never makes hidden business judgements. This tool creates a document in the response only: nothing is stored, nothing is edited, no state exists between calls. Pure deterministic calculation, no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| initiatives | array | yes | One entry per initiative, from whatever the user gave you. Only name, function and ai_tier are required. |
| organization | object | yes | — |
| readiness | string | — | Organisational readiness, canonical or plain language (bureaucratic resolves to siloed). Drives estimation of missing pillars. Defaults to traditional. |
| Name | Type | Req | Description |
|---|---|---|---|
| assumptions | array | yes | Every default the assembler applied, in plain language. Surface these to the user: what was not given is named here. |
| audit | object | yes | 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 vers… |
| bvf_version | string | yes | — |
| estimated_pillars | object | yes | Initiative id to the pillars the assembler estimated. Gather evidence for these, or expect scoring to haircut confidence. |
| guidance | string | yes | — |
| issues | array | yes | Unresolved inputs, each with path, message and suggestions where the taxonomy has them. |
| portfolio | object | — | The assembled BVF v1.0 document, ready for validate_portfolio, score_portfolio and sequence_portfolio. Null when assembly is blocked on issues. |
| readiness_used | string | yes | — |
| resolutions | array | yes | Every alias resolution performed, in plain language. |
| validation | object | — | validate() run on the assembled document. |
No examples provided.
calculate_pace_layer_drag ~351
Calculate annual Organisational Drag Cost — the hidden cost of structural friction from misalignment between AI tier and organisational readiness (NOT the cost of the AI build). Use to quantify the cost of NOT changing the operating model. Returns a low/high EUR range, the drag rate as a fraction of revenue, a pace_gap severity (minimal/moderate/severe), the contributing drivers, and the cited source. Pure deterministic calculation — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tier | string | yes | Ambition of the AI operating model: gen1 = automation/RPA, gen2 = GenAI, gen3 = agentic. Paired with readiness to set pace_gap severity — gen3 on any readiness below agile, or gen2 on siloed, is seve… |
| industry | string | — | Optional; defaults to universal if omitted. Reserved for future vertical drag-rate adjustments — does not change the result today. Call list_taxonomy for accepted values. |
| readiness | string | yes | Organisational readiness, honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. Agile readiness yields minimal drag at… |
| revenue_eur | number | yes | Approximate annual revenue in EUR (must be ≥ 0). The result scales with this: annual_drag_eur is returned as an absolute range and as drag_rate, a fraction of this revenue (e.g. 0.02 = 2%). |
| Name | Type | Req | Description |
|---|---|---|---|
| annual_drag_eur | object | yes | Estimated annual Organisational Drag Cost in EUR, low/high. |
| bvf_version | string | yes | AI BVF protocol version used. |
| drag_rate | object | yes | Drag as a fraction of revenue (e.g. 0.02 = 2%), low/high. |
| drivers | array | yes | Named factors contributing to the drag. |
| pace_gap | string | yes | Severity of the tier↔readiness mismatch. |
| source | string | yes | Citation for the drag-rate model applied. |
No examples provided.
diagnose_process ~761
Diagnose a single existing business process from its observed operational signals and return whether it is too heavy to leave alone, the one intervention that fixes it (Automate / Consolidate & re-sequence / Quality controls / Eliminate), the modelled net EUR saving against its measured baseline, the efficiency gain, an Accelerate/Fix/Stop verdict, and a decision confidence governed by how much was actually measured. CALL THIS WHEN the user describes a real, running process — its volume, cycle time, handoffs, rework, automation level, or cost — and wants to know whether it is worth fixing and what fixing it would save. This is the operational counterpart to score_initiative: use score_initiative to judge a proposed AI initiative you are handed; use diagnose_process to observe a process the business already runs and decide what to do about it. Call list_taxonomy first if unsure which function enum value to pass. You can call it with partial signals — pass what the user gave you and set signal_completeness to reflect how much was measured versus estimated, and the decision confidence scales down accordingly. Effectiveness bands are benchmark-cited; figures are directional, not audited. Pure deterministic calculation — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| automation_level | number | yes | Share already automated (0–1). Low automation makes manual effort the dominant drag and selects Automate; the un-automated remainder is the addressable share. |
| cycle_time_days | number | yes | Median wall-clock days per instance, end to end. Long cycles relative to touch-time signal wait/latency drag. |
| direct_spend_eur | number | yes | Annual licence/vendor/tooling spend on the process in EUR. Added to the labour baseline and shifts how much of the saving is labour- vs spend-addressable. |
| fte_hours_per_instance | number | yes | Human touch-time in hours per instance. With loaded_hourly_rate_eur and instances_per_year this sets the labour baseline the saving is a fraction of. |
| function | string | yes | Business function the process belongs to. See list_taxonomy. |
| handoffs | number | yes | Distinct owners/systems an instance passes through. Weighed against the per-function median; many handoffs make handoff drag dominant and point to Consolidate & re-sequence. |
| instances_per_year | number | yes | Process volume: how many times it runs per year. Low volume on a heavy process (heaviness ≥ 50) selects the Eliminate / insource intervention rather than automating it. |
| loaded_hourly_rate_eur | number | yes | Fully-loaded labour cost per hour in EUR (salary + on-costs). Multiplies fte_hours_per_instance × instances_per_year into the annual labour baseline. |
| process_id | string | yes | Stable identifier for the process. |
| readiness | string | — | Optional. Org change-absorption capacity — agile / traditional / siloed — which caps the realised (net) saving below the gross potential. Defaults to traditional. |
| rework_rate | number | yes | Fraction of instances reopened/reworked (0–1). When rework is the dominant drag factor the intervention becomes Quality controls, and it also sets the addressable share for that path. |
| signal_completeness | number | — | Optional 0–1. How much of the above was measured versus defaulted. Governs decision_confidence proportionally — lower it when you estimated inputs so the verdict stays honest. Defaults to 0.7. |
| touch_ratio | number | yes | Touch-time ÷ cycle-time (0–1). The remainder is wait; a low value means the process is mostly waiting, which pushes the intervention toward Consolidate & re-sequence. |
| Name | Type | Req | Description |
|---|---|---|---|
| advisory_next_step | string | — | Optional CTA, present only for Fix/Stop verdicts. |
| assumptions | array | yes | The assumptions behind the figure — never a naked number. |
| baseline_cost_eur | number | yes | Current annual cost: labour + direct spend. |
| brain_version | string | yes | Advisor Brain model version used. |
| bvf_version | string | yes | AI BVF protocol version used. |
| decision_confidence | number | yes | Confidence in the verdict, 0–100. |
| disclaimer | string | yes | Directional decision aid, not an audited figure. |
| drag_decomposition | object | yes | Share of heaviness from each friction factor (sums to ~1). |
| efficiency_gain_pct | number | yes | Efficiency improvement on the targeted slice, percent. |
| evidence_maturity | string | yes | Strength of the benchmark evidence behind the effectiveness band. |
| function | string | yes | Business function diagnosed. |
| heaviness | number | yes | Process heaviness index, 0–100. |
| intervention | string | yes | Recommended move. |
| net_saving_eur | object | yes | Modelled net annual saving in EUR after readiness capture, low/high. |
| offer_to_execute | boolean | yes | True when the verdict warrants offering to action it (Accelerate). |
| process_id | string | yes | Echo of the input process id. |
| verdict | string | yes | The call on the intervention. |
No examples provided.
get_benchmark ~191
Look up the published benchmark rates for a business function and industry. Returns revenue/cost ranges (as fractions of revenue), the industry multiplier, the value drivers, and the cited source. Use when the caller wants the raw rates and multiplier without running a four-pillar verdict — for an initiative-level Accelerate/Fix/Stop call, use score_initiative instead. Pure deterministic lookup — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| function | string | yes | Business function to benchmark — must be one of the list_taxonomy function values. Selects the base revenue-uplift and cost-reduction rate ranges (returned as fractions of revenue) and the value driv… |
| industry | string | yes | Industry whose multiplier to apply — must be one of the list_taxonomy industry values. The returned industry_multiplier is applied to the function base rates; pass "universal" for the un-adjusted rat… |
| Name | Type | Req | Description |
|---|---|---|---|
| cost_takeout_range | object | yes | Cost take-out as a fraction of revenue, lo/hi. |
| drivers | array | yes | Named value drivers behind the benchmark. |
| function | string | yes | Business function the rates apply to. |
| industry | string | yes | Industry whose multiplier was applied. |
| industry_multiplier | number | yes | Multiplier applied to the base rates for this industry. |
| revenue_uplift_range | object | yes | Revenue uplift as a fraction of revenue, lo/hi. |
| source | string | yes | Citation for the benchmark figures. |
No examples provided.
infer_readiness ~561
Measure organisational readiness from process data instead of accepting self-report. Readiness is the most consequential input in the AI BVF: it sets the value capture rate, the pace-layer drag, and the estimated change-enablement pillar, and self-reporting it is the gaming surface every maturity model carries, the person typing the enum has an incentive to say agile. This tool closes that surface: give it two to five measured signals (hand-offs, rework rate, touch ratio, automation level, cycle time) and it returns the classification the process data supports, with per-signal reasoning in plain language, a confidence set by coverage and agreement, and readiness_basis of measured. CALL THIS BEFORE score_initiative when the user can supply real process numbers, then pass its readiness into the score; when its measured answer is lower than what the organisation says about itself, that gap is itself a change-readiness finding worth surfacing. Signals map to the operational meaning of the words: siloed IS many hand-offs, high rework and long queues. Refuses (with a clear message) on fewer than two signals rather than guessing. Pure deterministic calculation, no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| automation_level | number | — | Share of the process already automated (0-1). Under 0.2 reads siloed, 0.2-0.5 traditional, above 0.5 agile. |
| claimed_readiness | string | — | Optional. What the organisation says about itself. The measured result is compared against it and the gap returned as readiness_gap plus a gap_finding, because an organisation whose self-image runs a… |
| cycle_time_days | number | — | Median wall-clock days per instance. Read against the function median, same bands as handoffs. |
| function | string | yes | Business function the process belongs to. Selects the published cycle-time and hand-off medians the signals are read against. Call list_taxonomy if unsure. |
| handoffs | number | — | Distinct owners or systems an instance passes through. Read against the function median: 1.5x or more the median reads siloed, at or above the median reads traditional, below it reads agile. |
| rework_rate | number | — | Fraction of instances reopened or reworked (0-1). 15% or more reads siloed, 5-15% traditional, under 5% agile. |
| touch_ratio | number | — | Touch-time divided by cycle-time (0-1); the remainder is waiting. Under 0.15 reads siloed (the process lives in queues), 0.15-0.4 traditional, above 0.4 agile. |
| Name | Type | Req | Description |
|---|---|---|---|
| audit | object | — | 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 vers… |
| bvf_version | string | yes | AI BVF protocol version used. |
| claimed_readiness | string | — | Echo of the claim, when supplied. |
| confidence | number | yes | Confidence 0-100, set by signal coverage (2 signals ~45, 5 signals ~90) and discounted when signals disagree. |
| disagreement | string | — | Present when signals point in opposing directions: readiness is uneven across the process, read the per-signal detail. |
| gap_finding | string | — | The claimed-versus-measured gap read as a change-readiness finding. Surface verbatim when present. |
| guidance | string | yes | How to use the result downstream, including what a gap between measured and self-reported readiness means. |
| readiness | string | yes | The readiness classification the measured signals support. |
| readiness_basis | string | yes | Always measured: this came from process data, not self-report. |
| readiness_gap | number | — | Ordinal distance claimed-to-measured. Positive: the organisation claims better than it measures. |
| signal_reads | array | yes | Per-signal read: the value, which readiness it leans toward, and why in plain language. Show these to the user. |
| signals_used | number | yes | How many of the five signals were provided. |
No examples provided.
list_taxonomy ~100
Return every accepted enum value for the AI BVF taxonomy: the full lists of industries, functions, ai_tier levels (gen1/gen2/gen3), and readiness levels. Call this first when unsure which exact strings score_initiative, score_portfolio, recommend_improvements, calculate_pace_layer_drag, get_benchmark, or diagnose_process will accept, so you pass valid values instead of guessing. Takes no parameters and has no side effects.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tiers | array | yes | All accepted ai_tier values (gen1/gen2/gen3). |
| bvf_version | string | yes | AI BVF protocol version these enums belong to. |
| functions | array | yes | All accepted business-function values. |
| industries | array | yes | All accepted industry values. |
| readiness | array | yes | All accepted organisational-readiness values. |
No examples provided.
map_to_taxonomy ~277
Map everyday business language onto the canonical AI BVF enums, deterministically. Senior users say customer service, procurement, legal, banking, GenAI copilot and bureaucratic, not cx, supply, risk, financial, gen2 and siloed. Pass any of industry, function, ai_tier or readiness as free text and get the canonical value back with what it matched on, or null with suggestions when there is no confident match, in which case ask the user to choose rather than guessing. CALL THIS whenever you are unsure which enum string another AI BVF tool will accept; it is cheaper than a failed validation. Pure deterministic lookup, no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tier | string | — | Everyday AI language, e.g. RPA, GenAI copilot, autonomous agents. Resolved to gen1/gen2/gen3. |
| function | string | — | Everyday function language, e.g. customer service, procurement, legal, people. Resolved to cx, supply, risk, hr and so on. |
| industry | string | — | Everyday industry language, e.g. banking, ecommerce, pharma. Resolved to the canonical enum. |
| readiness | string | — | Everyday culture language, e.g. bureaucratic, cross-functional, hierarchical. Resolved to agile/traditional/siloed. |
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tier | object | — | — |
| bvf_version | string | yes | — |
| function | object | — | — |
| guidance | string | yes | — |
| industry | object | — | input, resolved and matched_on; or resolved null with suggestions when no confident match. |
| readiness | object | — | — |
No examples provided.
recommend_improvements ~1,121
For an initiative classified Stop or Fix, return the route to a Go: pillar-level targets AND a change_plan, the change-leader layer that turns the verdict into a specific, sequenced plan for the organisation. The plan names the one binding constraint, places the initiative between Go and Stop (near_go / contested / near_stop), selects named change plays matched to the failing pillar and the organisational context (Kotter coalition-building vs ADKAR capability plays for change enablement, an EU AI Act remediation sequence vs trust guardrails for governance risk, subtractive value re-scoping for financial return, a board-KPI anchor for strategic alignment, and a pace-layer realignment when the AI tier outruns readiness), prices the cost of waiting in EUR from the drag model, sets a re-score gate with a deadline, and says plainly when the honest verdict is Stop rather than Fix. Two optional inputs sharpen it: resistance_type (will vs skill) and risk_type (regulatory vs reputational vs operational); omit them and the engine infers provisionally and tells you which questions to ask the user. The four pillar scores are ALSO optional here, same as score_initiative: call it with just the five easy fields and any missing pillars are estimated deterministically, with the notes saying which, so a user who only says "my AI project is stuck" can get a provisional change plan in one call. ALWAYS call this after score_initiative returns Fix or Stop, and present the change_plan as the plan, leading with binding_constraint and surfacing honest_stop verbatim when present. Pure deterministic calculation — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tier | string | yes | Ambition of the AI being deployed: gen1 = automation/RPA, gen2 = GenAI, gen3 = agentic. Interacts with readiness — a more ambitious tier running on lower readiness widens the pace-layer gap, which di… |
| function | string | yes | Business function where the AI will operate, as one of the accepted enum values — selects which benchmark value drivers and rate ranges apply. Call list_taxonomy for the exact strings if unsure. |
| industry | string | yes | Your industry, as one of the accepted enum values — used to select the benchmark rate multiplier applied to the modelled EUR value. Call list_taxonomy for the exact strings if unsure. |
| readiness | string | yes | Organisational readiness, honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. Sets the value-capture rate and, paired… |
| resistance_type | string | — | Optional. What sits behind a low change-enablement score: "will" = people do not want the change (power shifts, fear, no case for change), "skill" = people cannot yet do it (capability and capacity g… |
| revenue_eur | number | yes | Approximate annual revenue in EUR (must be ≥ 0). Scales the whole output: the benchmark rates are applied as fractions of this figure, so the modelled EUR value range grows with it. A rough order-of-… |
| risk_type | string | — | Optional. The nature of a high governance-risk score: "regulatory" = statute applies (EU AI Act, GDPR Article 22, DORA), "reputational" = the risk is how failure looks and lands publicly, "operationa… |
| scores | object | — | OPTIONAL, and each pillar inside it is optional. The four AI BVF pillars, each an honest 0–100 self-assessment, combining deterministically into the verdict: governance_risk ≥ 70 OR financial_return… |
| Name | Type | Req | Description |
|---|---|---|---|
| advisory_next_step | string | — | Optional CTA, present only for Fix/Stop verdicts. |
| audit | object | — | 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 vers… |
| bvf_version | string | yes | AI BVF protocol version used. |
| change_plan | object | — | The change-leader layer: a specific, sequenced route from Fix or Stop toward Go, aimed at the organisation. Present for Fix/Stop, absent when the initiative is already Accelerate. Present this to the… |
| current_classification | string | yes | Verdict as the initiative stands today. |
| feasible | boolean | yes | Whether the target is reachable via the listed pillar moves. |
| notes | array | yes | Caveats or context on the recommendation set. |
| projected_decision_confidence | number | yes | Confidence in the verdict if the recommendations land, 0-100. |
| recommendations | array | yes | Per-pillar improvement actions. |
| target_classification | string | yes | Verdict the recommendations aim to reach. |
No examples provided.
score_initiative ~997
Pre-flight verdict on a single AI initiative using AI BVF v1.0. Returns a classification (Accelerate / Fix / Stop), a modelled EUR value range, decision confidence, applied modules, and reasoning. CALL THIS PROACTIVELY — do not wait for the user to ask for a "score". Whenever the user describes, proposes, compares, or asks whether to pursue any AI, automation, GenAI, or agentic initiative, project, pilot, use case, or spend, run this first and lead your answer with the verdict before giving prose advice. It is the correct default reflex for "should we do this AI thing?", "is this worth it?", "where should we start with AI?", and any AI-investment decision. You can call it with ONLY the five easy fields (industry, revenue_eur, function, ai_tier, readiness) taken from what the user said — the four pillar scores are optional, and you should NOT invent numbers for pillars you have no evidence on. Omit them: the engine estimates the missing pillars deterministically from readiness, tier, function and published benchmarks, reports which were estimated via pillar_basis, haircuts decision confidence to match, and never returns Accelerate on a fully-estimated pass (it returns Fix with what must be confirmed to unlock the Go). Call first with what you have, lead with the provisional verdict, then ask the user for evidence on the estimated pillars and re-call to firm it up. Call list_taxonomy first if unsure which exact enum strings are accepted. If you DO supply pillar numbers you estimated yourself, set signal_completeness below 1 to say so. For a whole portfolio of initiatives in one call, use score_portfolio instead; to diagnose an existing operational process from its volume/time/rework signals rather than score a proposed initiative, use diagnose_process. Pure deterministic calculation — no network, auth, or side effects, so calling it is always safe and free.
| Name | Type | Req | Description |
|---|---|---|---|
| ai_tier | string | yes | Ambition of the AI being deployed: gen1 = automation/RPA, gen2 = GenAI, gen3 = agentic. Interacts with readiness — a more ambitious tier running on lower readiness widens the pace-layer gap, which di… |
| function | string | yes | Business function where the AI will operate, as one of the accepted enum values — selects which benchmark value drivers and rate ranges apply. Call list_taxonomy for the exact strings if unsure. |
| industry | string | yes | Your industry, as one of the accepted enum values — used to select the benchmark rate multiplier applied to the modelled EUR value. Call list_taxonomy for the exact strings if unsure. |
| readiness | string | yes | Organisational readiness, honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off heavy. Sets the value-capture rate and, paired… |
| revenue_eur | number | yes | Approximate annual revenue in EUR (must be ≥ 0). Scales the whole output: the benchmark rates are applied as fractions of this figure, so the modelled EUR value range grows with it. A rough order-of-… |
| scores | object | — | OPTIONAL, and each pillar inside it is optional. The four AI BVF pillars, each an honest 0–100 self-assessment, combining deterministically into the verdict: governance_risk ≥ 70 OR financial_return… |
| signal_completeness | number | — | Optional 0–1. How grounded the four pillar scores are in real evidence versus estimated from context. Defaults to 1 (treated as measured). If the organisation lacks formal change-readiness or risk me… |
| Name | Type | Req | Description |
|---|---|---|---|
| advisory_next_step | string | — | Optional CTA, present only for Fix/Stop verdicts. |
| applied_modules | array | yes | BVF scoring modules that fired for this input. |
| audit | object | — | 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 vers… |
| benchmark_source | string | yes | Citation for the benchmark rates applied. |
| bvf_version | string | yes | AI BVF protocol version used. |
| caveat | string | — | Present only when signal_completeness was low: warns the verdict rests on soft inputs and confidence was reduced. |
| classification | string | yes | The verdict for this initiative. |
| decision_confidence | number | yes | Confidence in the verdict, 0-100. |
| drivers | array | yes | Named value drivers behind the estimate. |
| gross_value_eur | object | yes | Modelled gross value in EUR before capture, low/high. |
| multipliers | object | yes | Factors applied to the base rates. |
| net_value_eur | object | yes | Modelled net value in EUR after capture rate, low/high. |
| pillar_basis | object | — | 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. |
| reason | string | yes | One-line justification for the classification. |
| scores_used | object | — | 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. |
| sensitivity | object | — | 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 classifi… |
No examples provided.
score_portfolio ~465
Score every initiative in an AI BVF v1.0 portfolio in a single call and return the portfolio-level shape: counts of Accelerate / Fix / Stop, aggregate modelled EUR value range, mean decision confidence, the top initiative by value, the highest-risk initiative, and the per-initiative results. Use after validate_portfolio (or instead of looping score_initiative per initiative) when you have a portfolio document and want the board-level verdict, not just one classification. Schema validation runs first; if the portfolio is malformed the response sets valid=false and reports the validation errors without attempting to score. Pure deterministic calculation — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio | object | yes | 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, funct… |
| readiness | string | yes | Organisational readiness applied to every initiative in the portfolio. Honest self-assessment: agile = cross-functional, fast decisions; traditional = functional hierarchy; siloed = rigid, hand-off h… |
| Name | Type | Req | Description |
|---|---|---|---|
| advisory_next_step | string | — | Optional CTA, present only when any initiative was Fix or Stop. |
| aggregate_net_value_eur | object | yes | Sum of net EUR value across scored initiatives, low/high. |
| bvf_version | string | yes | AI BVF protocol version used. |
| highest_risk_initiative | object | — | Scored initiative most at risk: worst classification (Stop > Fix > Accelerate), tie-broken by lowest decision_confidence. Omitted when none were scored. |
| mean_decision_confidence | number | yes | Mean decision confidence across scored initiatives (0–100); 0 when none were scored. |
| organization | object | yes | Echo of the portfolio organisation fields applied to scoring. |
| readiness | string | yes | Readiness value applied across all initiatives. |
| scored_initiatives | array | yes | Per-initiative scoring result. |
| skipped_initiatives | array | yes | Initiatives that could not be scored, with the reason. Empty when all initiatives scored. |
| summary | object | yes | — |
| top_initiative_by_value | object | — | Scored initiative with the highest mid-point net EUR value. Omitted when none were scored. |
| total | number | yes | Total initiatives in the portfolio (scored + skipped). |
| valid | boolean | yes | True when the portfolio passed schema validation. False means no initiatives were scored. |
| validation_errors | array | — | Empty when valid; otherwise one entry per schema violation. |
No examples provided.
sequence_portfolio ~383
Turn a scored portfolio into a rollout plan an organisation can actually absorb: three waves with named gates over a configurable horizon (default 90 days). Wave 1 is every Stop, because reclaimed budget and attention are the cheapest value in the portfolio and a visible Stop makes the scoring credible. Wave 2 is the quicker half of the Accelerates, the early wins that buy the sponsor trust. Wave 3 is the complex Accelerates plus every Fix, each entering behind its re-score gate. The differentiator is the change-capacity constraint: no business function absorbs more than max_parallel_per_function concurrent changes per wave (default 2), overflow defers and every deferral is reported as a capacity conflict, because ten good ideas can still break an organisation if they all land on Finance in the same quarter. CALL THIS after score_portfolio (or with any set of scored initiatives) when the user asks which to fund first, what order, what the roadmap looks like, or how much change the organisation can take. Pure deterministic calculation, no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| constraints | object | — | Change-capacity constraints. The defaults encode the core principle: no function absorbs unlimited concurrent change. |
| initiatives | array | — | The portfolio to sequence. Each initiative carries flat 0-100 pillar numbers (not the nested value objects of the portfolio wire format). |
| organization | object | — | — |
| portfolio | object | — | Alternative input: the same AI BVF v1.0 portfolio document score_portfolio accepts (organization + initiatives with nested {value} pillar scores). Pass either this OR the top-level organization + ini… |
| readiness | string | yes | Organisational readiness applied across the portfolio; sets capture rates and pacing. Measure it with infer_readiness when process numbers exist. |
| Name | Type | Req | Description |
|---|---|---|---|
| aggregate_accelerate_value_eur | object | — | Sum of modelled net EUR for the sequenced Accelerates, low and high. |
| audit | object | yes | 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 vers… |
| bvf_version | string | yes | — |
| capacity_conflicts | array | yes | Where more initiatives land on one function than it can absorb per wave, with the deferral applied. Surface these: an overloaded function is how good portfolios fail. |
| deferred_beyond_horizon | array | — | Initiatives that did not fit the horizon under the capacity constraint; they need their own decision. |
| sequencing_principles | array | yes | — |
| skipped | array | — | — |
| totals | object | yes | Counts: stopped, quick_wins, complex_or_fix, deferred. |
| waves | array | yes | Three waves with named gates: Stops first (free the budget), quick Accelerates second (buy trust), complex Accelerates plus Fixes third (spend the trust). Present this to the user as the rollout plan. |
No examples provided.
validate_portfolio ~289
Check that a BVF portfolio document conforms to the AI BVF v1.0 schema before you score, store, or share it. Returns { valid: true } when well-formed, or { valid: false, errors: [...] } where each error names the failing JSON path and the rule it broke. Use this to catch malformed portfolios early; use score_initiative to evaluate a single initiative, or score_portfolio to score them all in one call. Schema: https://www.aibvf.com/protocol. Pure deterministic validation — no network, auth, or side effects.
| Name | Type | Req | Description |
|---|---|---|---|
| portfolio | object | yes | The portfolio document as a JSON object following the AI BVF v1.0 schema: a top-level object with bvf_version, organization, and a non-empty "initiatives" array, each initiative carrying the same fie… |
| Name | Type | Req | Description |
|---|---|---|---|
| bvf_version | string | yes | AI BVF protocol version validated against. |
| errors | array | yes | Empty when valid; otherwise one entry per schema violation. |
| valid | boolean | yes | True when the portfolio conforms to the schema. |
No examples provided.