You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
verify_rollback tool: compares our Python rollback EVs to the
MC_V_<nodeId> named ranges ModelChoice writes when it renders a tree
(prefix confirmed from CellWriter.cs). Reports per-node diffs, a
max-abs-diff, and a verdict; flags "not rendered" when no MC_V_ cells
exist. bridge.read_node_values reads those named ranges (read-only).
Unit-tested (match / mismatch / not-rendered); the live cross-check
awaits a real add-in-rendered tree.
Verified: sdist + wheel build clean. 22 unit tests; ruff + mypy clean.
(CI + release workflows are a separate commit pending the `workflow`
token scope to push.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,6 +13,7 @@ A sibling to [`modelrisk-mcp`](https://github.com/vosesoftware/modelrisk-mcp): w
13
13
|`list_trees`| List the decision trees in a workbook with node-type counts. |
14
14
|`get_tree`| Full structure of one tree — decision / chance / terminal nodes, branches, probabilities, values. |
15
15
|`roll_up`| Roll the tree back to its expected values and **optimal policy** — the decision recommendation, in plain English. |
16
+
|`verify_rollback`| Cross-check our rollback against the `MC_V_<id>` cells ModelChoice itself wrote — a correctness guarantee when the tree has been rendered. |
16
17
17
18
Run it: `uv run python -m modelchoice_mcp` (stdio), or wire `modelchoice-mcp` into Claude Desktop like any MCP server.
18
19
@@ -29,7 +30,7 @@ The Python roller is validated against ModelChoice's own authoritative C# test (
29
30
30
31
-**Phase 0 (done):** the read + rollback engine — parse `_MC_Store`, reconstruct each tree, roll back to EV + optimal policy. Validated against ModelChoice's own C# rollback test.
31
32
-**Phase 1 (done):** the MCP server — `list_trees`, `get_tree`, `roll_up`, proven live against a real workbook.
32
-
-**Phase 1b:** cross-check rolled-back EVs against the `MC_V_<id>` named ranges; packaging + CI + PyPI; Claude Desktop wiring docs.
33
+
-**Phase 1b (done):**`verify_rollback`cross-checks our EVs against the `MC_V_<id>` named ranges; CI (ruff + mypy + pytest) and a tag-driven PyPI release pipeline; wheel + sdist build. *(First publish awaits a PyPI trusted-publisher; the live `MC_V_` cross-check awaits a real rendered tree.)*
33
34
-**Phase 2:** drive analyses. ModelChoice's analyses (sensitivity, EVPI, EVII, strategy table, robustness) are currently UI/modal-dialog only; the clean path — since we own the source — is to add headless `[ExcelCommand]` entry points mirroring the existing `MC_RiskProfile_Auto`, then invoke + read them via `Application.Run`.
34
35
-**Phase 3:** build/edit trees — write the model JSON into `_MC_Store` and trigger a re-render.
0 commit comments