Skip to content

Review sweep: site copy, paper comparisons vs latest publications, E2E-verified#35

Merged
vahid-ahmadi merged 1 commit into
mainfrom
review-sweep
Jul 17, 2026
Merged

Review sweep: site copy, paper comparisons vs latest publications, E2E-verified#35
vahid-ahmadi merged 1 commit into
mainfrom
review-sweep

Conversation

@vahid-ahmadi

Copy link
Copy Markdown
Contributor

Six-agent sweep:

Site — every page's copy shortened (index −18%, docs −16% words) and accuracy-aligned; fixed the homepage 'idea' section that still omitted FRB/US; nav label unified; all 18 internal links + 4 PDFs verified.

Papers — each gains comparisons vs the latest numbers and publications, plus a full referee pass:

  • obr-macro (35pp): vintage drift vs the March 2026 EFO; forecast vs ONS outturns through 2026Q1; multipliers vs OBR/IMF/Ramey; Budget 2025 costings benchmark. Fixed an unsupported number and a misstated income-gap range.
  • boe-svar (28pp): outturn table to 2026Q1 — RMSE 0.32pp, 14/14 in 68% bands; SWP 1,165 honestly assessed (methods paper, no RMSE tables); shock cross-checks vs MPR/Känzig/Cloyne–Hürtgen; Bank's Jan-2026 FER now lists the source model. Abstract reordered to lead with the production run.
  • psl-og (34pp): OBR WP 22's full scenario table reproduced and claims verified against the actual PDF; DEP-2019 fit stats; OG-USA published-simulation plausibility corridor. Fixed a factual error (WP 22 idiosyncratic risk).
  • frb-us (36pp): LINVER/Hebden/Kiley FEDS comparisons; cross-model IRF table (NY Fed DSGE, FAVAR, proxy-SVAR, ECB-BASE, CBO); new cost-push experiment (+1pp core-inflation shock: π +2.2pp, GDP −0.88%). Fixed the trp magnitude, a rounding error propagated through 6 places, and 3 table cells.

E2E test — all six areas pass: site, hosted MCP (10 tools, household math exact, £6.463bn score), local CLI, frbus package (10 tests, −0.55% reproduces), CI green on all four repos, papers build clean.

🤖 Generated with Claude Code

…fixes

Site: all pages shortened 16-18%, stale three-engine claim fixed, links verified.
Papers: obr-macro 35pp (Mar-2026 EFO vintage drift, ONS outturns, multiplier
literature), boe-svar 28pp (7-quarter outturn RMSE 0.32pp, 14/14 in 68% bands,
Bank FER cross-check), psl-og 34pp (full OBR WP22 scenario table, DEP fit stats,
OG-USA plausibility corridor), frb-us 36pp (LINVER/Hebden/Kiley, cross-model
table, new cost-push experiment). ~25 referee findings fixed incl. several
wrong numbers. E2E test: all six areas pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
macromod Ready Ready Preview, Comment Jul 17, 2026 9:51pm

Request Review

@vahid-ahmadi
vahid-ahmadi merged commit 70a1e12 into main Jul 17, 2026
2 checks passed
@vahid-ahmadi
vahid-ahmadi deleted the review-sweep branch July 17, 2026 21:51
vahid-ahmadi added a commit that referenced this pull request Jul 18, 2026
The previous commit was made from a stale checkout and unintentionally
reverted the workflow changes from #35. This restores all four workflow
files to their state on main, leaving this branch's diff scoped to the
reform-input validation in integration/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
vahid-ahmadi added a commit that referenced this pull request Jul 18, 2026
* Actionable reform-input validation for the MCP/CLI tools

Two defects found in live end-to-end testing of the hosted server:

1. Date-range reform keys ("2026-01-01.2029-12-31") surfaced a raw pydantic
   dump: "unconverted data remains: .2029-12-31". Root cause is upstream:
   policyengine's compile_reform parses each key with
   strptime(key, "%Y-%m-%d") and builds ParameterValue(end_date=None), so a
   reform value applies from its effective date and never expires. The
   reform-dict API has no way to express an end date, and silently dropping
   it would score a permanent reform when the caller asked for a temporary
   one. Ranges are therefore rejected up front with an explanation, the
   correct single-date form, and a per-year workaround -- not faked.

2. calculate_household returned a raw "2 validation errors ... Field
   required" dump when country/people were omitted. The MCP arguments are
   now optional at the schema level and validated in core, so callers get a
   sentence instead of a pydantic trace. country deliberately keeps NO
   default: uk and us are different tax-benefit models and guessing would
   silently score the wrong country.

Adds core.validate_reform() as the single validator behind every tool that
accepts a reform (household, household impact, population, score_reform, the
OG and OBR bridges). It accepts flat values and single-date keys, returns the
normalised dict, and raises ValueError naming the supported shapes with a
worked example. _og_build_policy now honours dated values too.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Restore .github/workflows to main

The previous commit was made from a stale checkout and unintentionally
reverted the workflow changes from #35. This restores all four workflow
files to their state on main, leaving this branch's diff scoped to the
reform-input validation in integration/.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant