FALSEWORK scanned 3,216 Python files of the CAIN-42 ecosystem for code that fakes a result, after excluding the files and reviewed findings listed at the end of this section: random numbers presented as measurements, success messages written in rather than computed, verdicts returned without a check, errors silently swallowed, leftover placeholders.
| FALSEWORK grade | files | share |
|---|---|---|
| REAL — no findings | 3,216 | 100.0% |
| PARTIAL — a MEDIUM or HIGH finding | 0 | 0.0% |
| STUB — a CRITICAL finding | 0 | 0.0% |
0 findings, by kind:
| check | findings |
|---|
KEYSTONE so far: 19 file(s) run through the full loop (FALSEWORK finds → Claude fixes → sandboxed tests must fail on the original and pass on the fix → Ed25519-signed record): 0 fix(es) proved on the current standard, 5 legacy VERIFIED_FIX record(s) from before the independent-test rule (not counted as current), 14 not proved, 0 nothing to fix, 12 not run (the Claude API was unavailable; retried automatically). 0 flagged file(s) still to go; this section updates as the campaign continues.
| # | file | finding | verdict | reasons / applied |
|---|---|---|---|---|
| 0 | scripts/legacy/clean_routes.py | unparseable_source | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 1 | scripts/cluster7/cain_trust_fabric_7_engine.py | unconditional_verdict | NOT_VERIFIED | the model's answer was cut off (max_tokens) |
| 2 | cain/interop/benchmark.py | hardcoded_success_claim | NOT_VERIFIED | the model's answer was cut off (max_tokens) |
| 3 | scripts/cain42_bft/clean_room_verifier.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 4 | cain/substrate/cain_mcp_discovery.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 5 | cain/substrate/cain_capability.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect; Claude's test does not fully pass on the fixed code |
| 6 | cain/substrate/cain_drift.py | placeholder_marker | NOT_VERIFIED | the model's answer was cut off (max_tokens) |
| 7 | cain/substrate/demo_refresh.py | bare_except_pass | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 8 | scripts/legacy/clean_routes.py | unparseable_source | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 9 | scripts/cluster7/cain_trust_fabric_7_engine.py | unconditional_verdict | VERIFIED_FIX (legacy, no independent test) | applied in 1342208f: self-audit derives its verdict from the phases actually run |
| 10 | cain/interop/benchmark.py | hardcoded_success_claim | VERIFIED_FIX (legacy, no independent test) | applied in 1342208f; the honest SC-12 result exposed a real gap, closed in the same commit |
| 11 | scripts/cain42_bft/clean_room_verifier.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect; Claude's test does not fully pass on the fixed code |
| 12 | cain/substrate/cain_mcp_discovery.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 13 | cain/substrate/cain_capability.py | placeholder_marker | VERIFIED_FIX (legacy, no independent test) | applied in 1342208f: unfinished OAuth adapters refuse instead of passing raw credentials; 31/31 tests |
| 14 | cain/substrate/cain_drift.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 15 | cain/substrate/demo_refresh.py | bare_except_pass | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 16 | platform-gateway/demo_refresh.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 17 | scripts/cain42_site/check_links.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 18 | scripts/review_package/publish_live.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 19 | scripts/architecture_reality_map.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 20 | scripts/cain42_bft/multi_region_bench.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 21 | scripts/cain42_evolution/bench_reality.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 22 | scripts/ironclad/prompt8/sign_manifest.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 23 | scripts/cluster13/cain_enforcement_path_validator_13.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 24 | scripts/bft_verifiable_run.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 25 | scripts/bench_clawx23.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 26 | cain/runtime/runtime.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 27 | scripts/cain42_bft/pbft_ab_bench.py | bare_except_pass | NOT_VERIFIED | Claude API error 400: Error code: 400 - {'type': 'error', 'error': {'type': 'invalid_request_error', 'message': 'Your credit balance is too low to access the An |
| 28 | cain/substrate/cain_mcp_discovery.py | placeholder_marker | NOT_VERIFIED | Claude's test also passes on the original, so it does not show the defect |
| 29 | cain/substrate/cain_mcp_discovery.py | placeholder_marker | VERIFIED_FIX (legacy, no independent test) | applied in 0dfd6f1e (both copies): MCP discovery no longer invents a server identity; MCP invariants pass |
| 30 | cain/substrate/cain_drift.py | placeholder_marker | VERIFIED_FIX (legacy, no independent test) | applied in a17a0b06: behaviour-drift reads real trajectories, no all-tenants wildcard; 8/8 tests |
Found by applying a proved fix: Applying KEYSTONE's benchmark fix replaced a hard-coded 'blocked' verdict with the real outcome and exposed a real security gap: the interop bridge accepted an authorization signed under a different policy version. It is now refused (POLICY_VERSION_MISMATCH), commit 1342208f.
What we excluded, and why: 0 files of FALSEWORK’s own test material (scripts/falsework/sample_project (a deliberately fake demo) and benchmark/corpus (planted and copied defects used to measure FALSEWORK) are excluded from the count), and 30 finding(s) reviewed by hand as a false alarm: platform-gateway/academy_exam.py:225 (rng_fabrication); platform-gateway/academy_exam.py:226 (rng_fabrication); platform-gateway/academy_exam.py:227 (rng_fabrication); platform-gateway/academy_exam.py:229 (rng_fabrication); platform-gateway/academy_exam.py:275 (rng_fabrication); platform-gateway/academy_exam.py:275 (rng_fabrication); platform-gateway/academy_exam.py:276 (rng_fabrication); platform-gateway/academy_exam.py:276 (rng_fabrication); scripts/math_gates/blind_2026_11_02.py:119 (rng_fabrication); scripts/math_gates/blind_2026_11_02.py:119 (rng_fabrication); scripts/math_gates/blind_2026_11_02.py:120 (rng_fabrication); scripts/math_gates/blind_2026_11_02.py:120 (rng_fabrication); platform-gateway/mission3_range.py:117 (check_cannot_fail); cain/govfederation/lab.py:278 (secret_compare_not_constant_time); platform-gateway/academy_exam.py:179 (rng_fabrication); platform-gateway/academy_exam.py:193 (rng_fabrication); platform-gateway/academy_exam.py:198 (rng_fabrication); platform-gateway/academy_exam.py:212 (rng_fabrication); platform-gateway/academy_exam.py:212 (rng_fabrication); platform-gateway/academy_exam.py:215 (rng_fabrication); platform-gateway/academy_exam.py:244 (rng_fabrication); platform-gateway/academy_exam.py:245 (rng_fabrication); platform-gateway/academy_exam.py:246 (rng_fabrication); platform-gateway/academy_exam.py:255 (rng_fabrication); platform-gateway/academy_exam.py:287 (rng_fabrication); platform-gateway/academy_exam.py:289 (rng_fabrication); platform-gateway/academy_exam.py:294 (rng_fabrication); platform-gateway/academy_exam.py:302 (rng_fabrication); platform-gateway/academy_exam.py:303 (rng_fabrication); platform-gateway/academy_exam.py:316 (rng_fabrication).
What this scan cannot see: FALSEWORK looks for fabricated results, swallowed errors, placeholder markers and unconditional verdicts. It does not find security, performance or design defects.
The 42-second self-check, on the record: 39,997 checks since 2026-10-15T20:45:48Z, each one a line in ticks.jsonl that carries the SHA-256 of the line before it, so a skipped or edited check breaks the chain. A check re-scans with FALSEWORK the files that changed; it does not re-run KEYSTONE.
Check it yourself: the signed evidence bundle and its verify_bundle.py (no CAIN code) recompute every number above.
| file | line | check | severity |
|---|