OKF-DWP

Independent experimental publication. Not an official DWP service, benefits advice or an entitlement calculator.

View this version’s Markdown source

On this page

Public household Reader verification

The full combined Reader passed a real public Chrome journey on 20 September 2026 at 23:54 BST, using fixed DWP source 3ef0e786e9a18e76fa17c7d925ff509d6d6c9f84.

Open this exact household source in Explorer. The link freezes the bundle version; the Explorer application can receive later updates. This receipt binds the application bytes actually checked at the time.

Independent experimental publication. This is evidence of public navigation and bounded context assembly, not official guidance, legal completeness or an individual benefits decision. No compact-service or MCP call was made.

What worked

DMG means Decision makers’ guide. SDA can mean Severe Disablement Allowance or shorthand for a severe-disability additional amount. A context package contains selected evidence and the reasons for including it. Truncation means its limits left some material outside the package.

Public package Records Relationships Compact JSON bytes Result
Care home 64 118 481,453 Insufficient; truncated
SDA 64 99 477,761 Insufficient; truncated

Both used limits of 64 records, 128 relationships, depth six and 524,288 bytes. The complete JSON retains missing evidence, ambiguities and omissions. The care-home selection still omits some statutory housing-cost units. Preserving a heading does not make the overall question answerable. The text check inspects the opened whole passage; the saved screenshot captures its beginning, with the no-partner heading further down the passage. Scroll to that heading during the demonstration.

The earlier local three-browser checks used local fixture URLs. An exact comparison found just three differing fields in each public package: the manifest URL, the derived byte count and the context ID. The public URL adds 69 bytes; the selected evidence, relationships and every other field match. See the retained comparison.

Identity, timing and limits

Chrome version: 153.0.8010.52. The application manifest SHA-256 was a551e1601d7722cea6edfe4e613a4fcc44191d8dfc74a0368b67b6a33f8d6f0c; the 21-file application tree was c0666ae2659d3cf3eba8a19c41c5d9873adefb5514134823f54549fcabc0a0d2. SHA-256 is a fingerprint of exact bytes; it helps detect a changed file.

All 21 application files were fetched and checked, and 14 actual browser-loaded application responses were checked too. The journey observed 294 corpus responses covering 270 unique files: 36,913,216 response-body bytes, including repeated responses. Each was compared with the named immutable Git commit. These are observed response sizes, not a hard network-transfer limit. There were no console or network errors, intercepted responses or retries within the passing run.

Phase reached Elapsed from start
Application files verified 2.5 seconds
Initial Reader ready 3.0 seconds
Concept facet ready 3.8 seconds
Statutory facet and timeline checked 11.4 seconds
Statutory literal checked 12.5 seconds
Statutory graph checked 12.8 seconds
Care-home package ready 14.9 seconds
SDA package ready 16.6 seconds

These are one observed public-network journey's cumulative timings, not a controlled performance benchmark. The first attempt is retained separately: it used an incorrect toolbar assertion after Reset view and timed out after 60 seconds. The screenshot showed the correct full-corpus state. The harness was corrected; no application or corpus change was needed.

This public run inspected one statutory body. The separate local observations checked all 20 and three browser engines. It did not repeat those exhaustive checks, run a human screen reader, test a physical phone, inspect current law or use an AI to answer either question.

Evidence and reproduction

The evidence inventory links screenshots, both exact executed harnesses, the failed attempt, complete packages and response hashes. The offline checker verifies all 16 execution files, exact Git source bindings and the disclosed local/public differences. It rejects symbolic links in files and parent directories, limits manifests to 128 KiB and individual retained files to 10 MiB, and limits the execution inventory to 64 files and 32 MiB. Immutable Git blobs are size-checked before a capped 8 MiB capture. Seven synthetic negative controls exercise altered, missing, oversized and unsafe inputs. These checks make no new browser request.

From the DWP repository, use an isolated Explorer checkout with the existing Playwright dependencies and a new output directory:

OKF_EXPLORER_CHECKOUT=/path/to/isolated/okf-explorer \
OKF_PUBLIC_HOUSEHOLD_COMMIT=3ef0e786e9a18e76fa17c7d925ff509d6d6c9f84 \
OKF_PUBLIC_HOUSEHOLD_APP_SHA256=a551e1601d7722cea6edfe4e613a4fcc44191d8dfc74a0368b67b6a33f8d6f0c \
OKF_PUBLIC_HOUSEHOLD_OUTPUT=/tmp/new-public-household-observation \
node scripts/check_public_household_reader.mjs

The installed Chrome browser must be available. The harness rejects an existing output directory, file or symbolic link before browser launch. It allows 60 seconds per interaction and an eight-minute overall journey. A changed public application fingerprint must fail rather than silently becoming the old result.

For offline checks, with no browser or network requests:

node --test scripts/test_public_household_reader.mjs
uv run --locked python scripts/check_public_household_observations.py
uv run --locked python -m unittest discover -s scripts -p test_public_household_observations.py