Readiness position · Trial 1

NO-GO for live lender assignments. Stated by the platform, not about it.

Connecting the custom domain must not be read as the moment the system becomes live. Four prerequisites are unmet: MFA, malware scanning with a licensed engine, a rehearsed backup and restore drill, and database-level protection of the audit tables.

Build under review

The numbers the verdict rests on

Production-class records

0

no real lender file has ever run

Assignments

0

130 synthetic · 54 trial

Audit entries

0

linkage intact, 0 breaks

Automated tests

0

23 files · 7 explicitly outstanding

Unattended sweeps

0

scheduler HEALTHY

TypeScript errors

0

pnpm check

commit 756c429checkpoint a9432068platform 1.0.0-trial1rules v1model claude-haiku-4-5verdict NO-GO

Grading rules

Three rules stop this sheet degrading into a formality

UNKNOWN counts as RED

An unverified control is not a passing control. “The feature exists” is not evidence.

No self-certification

The person who built a control does not sign it off. Owner fields stay UNASSIGNED until a second party takes them.

No silent closure

A row moves to GREEN only with the stated evidence attached. Waivers are named, dated and reasoned in writing.

Gate console

Model the launch decision without touching the record

Launch gate console · projection only

Clear gates to see what the verdict would become. The record does not move.

NO-GO
0 / 10 gates cleared4 non-waivable open
NO-GO holds while B-1, B-2, B-3, B-4 remain open. These four are not waivable for real consumer debt files.

Blocking gates

All ten must be GREEN before the first live assignment

#GateVerdictEvidence required to turn GREENOwner
B-1MFA enforced for all internal staffREDScreenshot of enforced policy + one login refused without a second factorUNASSIGNED
B-2Backup and restore drill completedREDRestore into a separate environment + audit chain verifies clean against the restored copy + measured RPO/RTOUNASSIGNED
B-3Licensed AV engine behind the quarantine gateREDA known-malicious test file (EICAR) quarantined and blocked from certificationUNASSIGNED
B-4INSERT-only grants on audit tablesREDSHOW GRANTS output + a direct UPDATE attempt refused by the databaseUNASSIGNED
B-5Company controls all assetsREDHosting, repo, DB, domains, secrets, billing under company account, ≥2 adminsUNASSIGNED
B-6Off-platform backup existsREDDatabase + files export held outside the host platform, datedUNASSIGNED
B-7Tenant isolation with live accountsCONDITIONALTwo live authenticated non-admin accounts; cross-tenant access attempted and refused on the deployed siteUNASSIGNED
B-8Named owner receiving scheduler alertsREDMonitor wired to a paging destination + one test alert acknowledged by a personUNASSIGNED
B-9Baseline methodology agreedREDOperations sign-off on the baseline methodology proposalUNASSIGNED
B-10External adversarial reviewREDWritten findings from a reviewer who did not build the platformUNASSIGNED

Owner fields are deliberately unassigned. Filling them in from the build side would be the exact failure the no-self-certification rule prevents.

Gate matrix

Fifteen gates, graded in the environment they must work in

GREEN

0

Exercised in the environment where it must work, with reproducible evidence

CONDITIONAL

0

Implemented and tested, but bounded by a dependency or unexercised in production

RED

0

Missing, or not evidenceable without access this environment does not have

DEFERRED

0

Deliberately out of Trial 1 scope, prevented from becoming an accidental dependency

G-01CONDITIONALnon-waivable

Controlled state integrity

Single write path, 42 guards, optimistic concurrency and hash-chained audit pass 142 automated tests; never exercised against concurrent real users

G-02CONDITIONALnon-waivable

Scheduler durability

Persisted heartbeat, four states, external monitor and post-deploy probe are live and caught a real stall in production; the deploy-stall defect itself remains unresolved

G-03CONDITIONALnon-waivable

Stop-work propagation

Cancellation is a declared transition requiring a named human approver; cure, bankruptcy, recall and legal hold are not yet distinct gated events

G-04REDnon-waivable

External isolation

No two real external accounts exist to attack. Cross-tenant isolation is unproven, and unproven is RED

G-05REDP0

Authentication and privilege

MFA is not configured; step-up authentication for critical actions does not exist

G-06REDP0

Document safety and integrity

Quarantine gate and hashing exist, but no malware engine is wired in; the previous hardcoded CLEAN status was a defect found and fixed this cycle

G-07CONDITIONALP0

Audit immutability

Application layer verified clean by automated scan, 5,000+ entry chain verified unbroken; database-level INSERT-only grants not applied

G-08REDP0

Backup and restore

Procedure written; no restore has been performed and no RTO/RPO has been measured

G-09CONDITIONALnon-waivable

AI authority

L0–L4 ladder with L4 prohibited, confidence-never-expands-authority enforced by invariant, kill switch admin-only; no external adversarial review performed

G-10REDP0

Security readiness

No vulnerability scan or penetration test has been run against this build

G-11CONDITIONALP0

Trial observability

Scheduler health, incident module and audit integrity are observable; no alert routing to a named on-call human exists

G-12CONDITIONALwaivable

Baseline and cohort integrity

Four-way record classification and versioned metric envelope enforced in code; pre-Trial baseline not agreed with Operations

G-13REDP0

Operations readiness

No named users trained; no rehearsal of pause/resume with real staff

G-14REDP0

Ownership and recovery access

Single-operator dependency; no documented company-level recovery of code, DNS, secrets and observability

G-15GREENP0

Scope boundary

No money movement exists in code; finance is validation and routing only, and the AI decision recorder refuses any record claiming a protected-state change

Launch position: NO-GO. Four non-waivable gates are not GREEN and six P0 gates are RED.

Verified controls

What is genuinely done, with the evidence attached

V-1

Lifecycle kernel is the single write path

28 states, 38 transitions, 42 guards; illegal transitions refused with a named rule

V-2

Audit chain append-only and tamper-evident

9,204 entries, linkage intact, atomic chain-head allocation

V-3

AI cannot write state

Authority middleware; 15 tests including L4-prohibited and confidence-cannot-expand-authority

V-4

AI decision record on every AI execution

Written from the same function as the action log; 41 records

V-5

Compliance hard gates with immutable snapshots

Eligibility snapshots canonically hashed; 0 tampered

V-6

Stop-work gates enforced in the write path

7 named conditions; 11 tests; retention never blocked under legal hold

V-7

Durable scheduling monitored externally

119 unattended production sweeps; 503 on failure; post-deploy probe

V-8

Deadline provenance

Rule version, explicit UTC, pause history stamped at creation

V-9

Escalation requires verified delivery

A failed notification does not satisfy escalation; 6 tests

V-10

Measurement integrity

Every KPI carries numerator, denominator, n, cohort and a server-derived claim class

V-11

Synthetic vs real separation

130 synthetic / 54 trial / 0 production, stated on screen

V-12

RBAC and account deactivation

13 tests; revoked account refused on next request; history retained

V-13

Analytics suppressed on sensitive routes

8 route families; persisted global switch; 5 tests

V-14

Non-admin end-to-end workflow

7 steps, LENDER / OPERATIONS / VENDOR only, no admin

V-15

Structured error contract

Failed rule + current state + required action on every refusal

Accepted constraints

Documented, not hidden — each with the reason it is not being papered over

Redeploy stalls cron delivery

Why accepted

Host platform behaviour, not an application defect

Mitigation

Runbook remedy; Mission Control staleness banner; post-deploy probe

6 legacy audit entries content-unverifiable

Why accepted

Rewriting stored hashes to turn an indicator green is what the chain exists to detect

Mitigation

Documented permanently; linkage still intact; a test bounds the count so it can only shrink

437/438 timers lack deadline provenance

Why accepted

Backfilling would fabricate a rule version those deadlines never ran under

Mitigation

Resolves through natural turnover

5/12 AI contracts unexercised

Why accepted

Defined but not yet run against live models

Mitigation

Labelled “defined, not yet exercised” on screen

Cycle times not earned

Why accepted

Compressed sandbox clock

Mitigation

Labelled “not earned” by server-derived claim class

Ownership and recovery

Key-person risk is a governance finding, not a technical one

AssetCurrent controlRequired before live trial
Hosting accountIndividualCompany-owned account, ≥2 administrators
Source repositoryIndividual, in-sandbox gitCompany GitHub organisation
Production databaseVia hosting accountCompany-controlled credentials, documented rotation
DomainsIndividual accountCompany registrar account
Credentials and secretsEnvironment-injectedCompany secret store with named custodians
BackupsNone existCompany-held, off-platform, tested
LogsPlatform-managedRetention policy and named owner
BillingIndividualCompany payment instrument

Sign-off

No signature is valid while any blocking gate is RED

Engineering

name · date · signature

Operations

name · date · signature

Compliance

name · date · signature

Executive sponsor

name · date · signature

Waivers require a named approver, a dated written reason and a compensating control. There are currently none, and B-1 through B-4 should not be waived under any circumstances for real consumer debt files.