v0.6.0 — signal_completeness on score_initiative
0.6.0 (aibvf-mcp) / 0.3.4 (@aibvf/core), 30 June 2026
Added: an optional signal_completeness (0–1) input on score_initiative, and a matching caveat output field. This answers the most substantive piece of external feedback on the framework — the "metadata burden" critique that the scoring is only as good as the change-readiness and risk metadata an organisation feeds it, so soft inputs produce a falsely confident verdict. score_initiative now mirrors what diagnose_process already does with its own signal_completeness: when the four pillar scores are estimated rather than measured, the caller sets signal_completeness below 1, decision confidence is haircut proportionally (confidence = base × (0.5 + 0.5 × signal_completeness)), and a caveat is attached telling the reader the verdict rests on soft inputs and should be re-run with measured scores before committing budget. "Garbage in" now yields "low-confidence, stated honestly" instead of "confident garbage out".
Backward compatible by construction: signal_completeness defaults to 1 (treated as measured), at which the multiplier is exactly 1.0 and confidence is byte-identical to the pre-0.3.4 formula. Existing callers, the worked examples, and the smoke-test fixture (manufacturing GenAI predictive maintenance, confidence 62) are unaffected. recommend_improvements keeps the plain input schema and is unchanged; only score_initiative exposes the new field. score() clamps the value to [0,1] and never lets it change the classification — only the confidence and the caveat.
Added: packages/js/src/score.test.ts covering the default-unchanged property, the monotonic haircut, clamping, classification-invariance, and the caveat threshold (0.7).
Bumped: @aibvf/core 0.3.3 → 0.3.4 (new optional input + output field on score), aibvf-mcp 0.5.1 → 0.6.0 (new tool capability), and the MCP dependency range to ^0.3.4. Version synced across the Server({ version }) handshake, startup banner, packages/mcp/package.json, and server.json.