FALSEWORK scanned 2,948 Python files of the CAIN-42 ecosystem for code that fakes a result: 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 | 2,829 | 96.0% |
| PARTIAL — a MEDIUM or HIGH finding | 119 | 4.0% |
| STUB — a CRITICAL finding | 0 | 0.0% |
178 findings, by kind:
| check | findings |
|---|---|
| bare_except_pass | 168 |
| placeholder_marker | 7 |
| unparseable_source | 1 |
| hardcoded_success_claim | 1 |
| unconditional_verdict | 1 |
KEYSTONE so far: 16 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): 3 fix(es) proved, 13 not proved, 0 nothing to fix, 12 not run (the Claude API was unavailable; retried automatically). 111 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 | applied in 1342208f: self-audit derives its verdict from the phases actually run |
| 10 | cain/interop/benchmark.py | hardcoded_success_claim | VERIFIED_FIX | 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 | 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 |
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: 159 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); all 4 CRITICAL findings of the raw scan were there), and 1 finding reviewed by hand as a false alarm (a random fault-injection target in a soak test).
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: 68 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 |
|---|---|---|---|
cain/substrate/demo_refresh.py | 38 | bare_except_pass | MEDIUM |
platform-gateway/demo_refresh.py | 38 | bare_except_pass | MEDIUM |
scripts/cain42_site/check_links.py | 33 | bare_except_pass | MEDIUM |
scripts/review_package/publish_live.py | 34 | bare_except_pass | MEDIUM |
scripts/architecture_reality_map.py | 29 | bare_except_pass | MEDIUM |
scripts/legacy/clean_routes.py | 1 | unparseable_source | MEDIUM |
scripts/cain42_bft/multi_region_bench.py | 51 | bare_except_pass | MEDIUM |
scripts/cain42_evolution/bench_reality.py | 88 | bare_except_pass | MEDIUM |
scripts/ironclad/prompt8/sign_manifest.py | 49 | bare_except_pass | MEDIUM |
scripts/ironclad/prompt8/sign_manifest.py | 58 | bare_except_pass | MEDIUM |
scripts/cluster13/cain_enforcement_path_validator_13.py | 80 | bare_except_pass | MEDIUM |
scripts/bft_verifiable_run.py | 96 | bare_except_pass | MEDIUM |
scripts/bft_verifiable_run.py | 102 | bare_except_pass | MEDIUM |
scripts/bench_clawx23.py | 56 | bare_except_pass | MEDIUM |
cain/runtime/runtime.py | 88 | bare_except_pass | MEDIUM |
cain/runtime/runtime.py | 97 | bare_except_pass | MEDIUM |
scripts/cain42_bft/pbft_ab_bench.py | 82 | bare_except_pass | MEDIUM |
cain/substrate/tenant_budgets.py | 74 | bare_except_pass | MEDIUM |
platform-gateway/service_health.py | 106 | bare_except_pass | MEDIUM |
platform-gateway/cain_evolution_receipt_42.py | 135 | bare_except_pass | MEDIUM |
platform-gateway/cain_evolution_receipt_42.py | 151 | bare_except_pass | MEDIUM |
scripts/cain42_site/accept_external_reproduction.py | 159 | bare_except_pass | MEDIUM |
cain/config.py | 46 | bare_except_pass | MEDIUM |
cain/config.py | 60 | bare_except_pass | MEDIUM |
cain/config.py | 72 | bare_except_pass | MEDIUM |
cain/config.py | 74 | bare_except_pass | MEDIUM |
cain/config.py | 149 | bare_except_pass | MEDIUM |
cain/genesis/skill_reproduction.py | 122 | bare_except_pass | MEDIUM |
cain/genesis/skill_reproduction.py | 132 | bare_except_pass | MEDIUM |
cain/genesis/skill_reproduction.py | 142 | bare_except_pass | MEDIUM |
cain/genesis/skill_reproduction.py | 148 | bare_except_pass | MEDIUM |
cain/genesis/skill_reproduction.py | 166 | bare_except_pass | MEDIUM |
scripts/cluster12/standalone_verifier_12.py | 166 | bare_except_pass | MEDIUM |
scripts/cluster13/standalone_verifier_13.py | 168 | bare_except_pass | MEDIUM |
cain/e23/transport_tcp.py | 150 | bare_except_pass | MEDIUM |
scripts/cluster11/cain_hardware_attestation_11.py | 76 | bare_except_pass | MEDIUM |
scripts/cain42_bft/pbft_qc_evidence_run.py | 105 | bare_except_pass | MEDIUM |
scripts/cain42_bft/pbft_dag_cluster_run.py | 71 | bare_except_pass | MEDIUM |
scripts/cain42_bft/pbft_dag_cluster_run.py | 174 | bare_except_pass | MEDIUM |
scripts/cain42_reality_map_2026.py | 82 | bare_except_pass | MEDIUM |
cain/substrate/continuity_stage.py | 199 | bare_except_pass | MEDIUM |
cain/cain_heap_firewall.py | 224 | bare_except_pass | MEDIUM |
platform-gateway/cain_lab_public.py | 133 | bare_except_pass | MEDIUM |
scripts/cain42_bft/clean_room_verifier.py | 186 | placeholder_marker | MEDIUM |
scripts/cluster11/forensic_baseline_11.py | 96 | bare_except_pass | MEDIUM |
scripts/cluster11/standalone_verifier_11.py | 192 | bare_except_pass | MEDIUM |
scripts/cain42_bft/cain_mr_restore_drill.py | 84 | bare_except_pass | MEDIUM |
cain/formal/execution_identity.py | 171 | bare_except_pass | MEDIUM |
cain/formal/execution_identity.py | 182 | bare_except_pass | MEDIUM |
scripts/ops/disk_retention.py | 122 | bare_except_pass | MEDIUM |
scripts/cain42_bft/pbft_proof_package_run.py | 118 | bare_except_pass | MEDIUM |
scripts/cain42_mesh/build_mesh_evidence.py | 198 | bare_except_pass | MEDIUM |
cain/cain_adi_shield.py | 156 | bare_except_pass | MEDIUM |
platform-gateway/cain_adi_shield.py | 156 | bare_except_pass | MEDIUM |
scripts/cain42_bft/hourly_proof.py | 183 | bare_except_pass | MEDIUM |
cain/mcpgate_guard_stack_hosted.py | 162 | bare_except_pass | MEDIUM |
scripts/cain42_bft/multi_region_evidence_run.py | 77 | bare_except_pass | MEDIUM |
scripts/cain42_bft/multi_region_evidence_run.py | 87 | bare_except_pass | MEDIUM |
cain/cain_pqc_attestation.py | 128 | bare_except_pass | MEDIUM |
platform-gateway/cain_pqc_attestation.py | 128 | bare_except_pass | MEDIUM |
platform-gateway/cain_state_continuity_42.py | 168 | bare_except_pass | MEDIUM |
platform-gateway/cain42_epoch10_evidence_builder.py | 113 | bare_except_pass | MEDIUM |
cain/substrate/cain_cluster_security_properties.py | 240 | bare_except_pass | MEDIUM |
platform-gateway/cain_cluster_security_properties.py | 240 | bare_except_pass | MEDIUM |
scripts/cain42_bft/cain_mr_multi_loss_drill.py | 101 | bare_except_pass | MEDIUM |
scripts/cain42_bft/multi_region_ops_drill.py | 89 | bare_except_pass | MEDIUM |
scripts/cain42_bft/multi_region_ops_drill.py | 104 | bare_except_pass | MEDIUM |
scripts/build_review_core_bundle.py | 203 | bare_except_pass | MEDIUM |
scripts/cluster8/cain_constitution_cli.py | 81 | bare_except_pass | MEDIUM |
cain/substrate/events.py | 230 | bare_except_pass | MEDIUM |
cain/substrate/events.py | 235 | bare_except_pass | MEDIUM |
platform-gateway/events.py | 230 | bare_except_pass | MEDIUM |
platform-gateway/events.py | 235 | bare_except_pass | MEDIUM |
scripts/cluster5/forensic_baseline.py | 87 | bare_except_pass | MEDIUM |
cain/substrate/cain_frontier_api.py | 59 | bare_except_pass | MEDIUM |
platform-gateway/cain_frontier_api.py | 59 | bare_except_pass | MEDIUM |
cain/substrate/cain_identity_layer_42.py | 129 | bare_except_pass | MEDIUM |
platform-gateway/cain_identity_layer_42.py | 129 | bare_except_pass | MEDIUM |
scripts/cluster9/cain_autonomy_cli.py | 57 | bare_except_pass | MEDIUM |
cain/substrate/changelog_generator.py | 312 | bare_except_pass | MEDIUM |
platform-gateway/changelog_generator.py | 312 | bare_except_pass | MEDIUM |
platform-gateway/cain_action_proof_epoch6.py | 275 | bare_except_pass | MEDIUM |
scripts/cain42_evolution/soak_convergence.py | 57 | bare_except_pass | MEDIUM |
scripts/cain42_evolution/soak_convergence.py | 114 | bare_except_pass | MEDIUM |
scripts/cain42_evolution/soak_convergence.py | 170 | bare_except_pass | MEDIUM |
platform-gateway/cain_state_store_42.py | 78 | bare_except_pass | MEDIUM |
platform-gateway/cain_state_store_42.py | 192 | bare_except_pass | MEDIUM |
scripts/stress_test_top100_products.py | 244 | bare_except_pass | MEDIUM |
scripts/stress_test_top100_products.py | 248 | bare_except_pass | MEDIUM |
scripts/stress_test_top100_products.py | 340 | bare_except_pass | MEDIUM |
platform-gateway/cain_frontier_lab_api.py | 67 | bare_except_pass | MEDIUM |
scripts/ip/verify_all_cain42_inventions.py | 208 | bare_except_pass | MEDIUM |
scripts/epoch14_run.py | 52 | bare_except_pass | MEDIUM |
scripts/sovereign/evidence_pipeline_e8.py | 118 | bare_except_pass | MEDIUM |
cain/memory.py | 139 | bare_except_pass | MEDIUM |
scripts/cluster10/cain_sovereignty_cli.py | 68 | bare_except_pass | MEDIUM |
cain/cain_plugin_sentinel.py | 98 | bare_except_pass | MEDIUM |
cain/cain_plugin_sentinel.py | 230 | bare_except_pass | MEDIUM |
cain/cain_plugin_sentinel.py | 392 | bare_except_pass | MEDIUM |
cain/cain_plugin_sentinel.py | 402 | bare_except_pass | MEDIUM |
scripts/review_package/build_v2_core_bundle.py | 471 | bare_except_pass | MEDIUM |
scripts/sovereign/evidence_pipeline_e5.py | 65 | bare_except_pass | MEDIUM |
cain/customer_cli.py | 338 | bare_except_pass | MEDIUM |
cain/cain_swarm_quarantine.py | 294 | bare_except_pass | MEDIUM |
cain/cain_swarm_quarantine.py | 296 | bare_except_pass | MEDIUM |
cain/interop/benchmark.py | 112 | hardcoded_success_claim | MEDIUM |
scripts/sovereign/evidence_pipeline.py | 72 | bare_except_pass | MEDIUM |
scripts/sovereign/evidence_pipeline_e6.py | 66 | bare_except_pass | MEDIUM |
cain/substrate/cain_mcp_discovery.py | 159 | placeholder_marker | MEDIUM |
cain/substrate/cain_mcp_discovery.py | 198 | placeholder_marker | MEDIUM |
cain/substrate/cain_mcp_discovery.py | 237 | placeholder_marker | MEDIUM |
cain/substrate/cain_mcp_discovery.py | 306 | placeholder_marker | MEDIUM |
cain/substrate/cain_universal_wrapper.py | 228 | bare_except_pass | MEDIUM |
platform-gateway/cain_system_gateway.py | 367 | bare_except_pass | MEDIUM |
platform-gateway/bin/cain.py | 390 | bare_except_pass | MEDIUM |
scripts/cluster9/cain_trust_autonomy_9_engine.py | 136 | bare_except_pass | MEDIUM |
scripts/business/build_canonical_top100_registry.py | 180 | bare_except_pass | MEDIUM |
cain/substrate/cain_capability.py | 203 | placeholder_marker | MEDIUM |
scripts/ironclad/release_gate_engine.py | 167 | bare_except_pass | MEDIUM |
cain/cain_extension_hypervisor.py | 508 | bare_except_pass | MEDIUM |
cain/cain_extension_hypervisor.py | 658 | bare_except_pass | MEDIUM |
cain/cain_expert_chatbot.py | 287 | bare_except_pass | MEDIUM |
cain/substrate/cain_expert_chatbot.py | 287 | bare_except_pass | MEDIUM |
platform-gateway/cain_expert_chatbot.py | 287 | bare_except_pass | MEDIUM |
cain/insurance.py | 149 | bare_except_pass | MEDIUM |
cain/worm_export.py | 256 | bare_except_pass | MEDIUM |
scripts/cluster10/cain_trust_sovereignty_10_engine.py | 164 | bare_except_pass | MEDIUM |
scripts/cluster10/cain_trust_sovereignty_10_engine.py | 172 | bare_except_pass | MEDIUM |
scripts/cluster7/cain_trust_fabric_7_engine.py | 601 | unconditional_verdict | MEDIUM |
scripts/cluster5/cluster_evolution_engine.py | 460 | bare_except_pass | MEDIUM |
cain/substrate/agent_passport.py | 645 | bare_except_pass | MEDIUM |
platform-gateway/agent_passport.py | 645 | bare_except_pass | MEDIUM |
cain/quarantine.py | 569 | bare_except_pass | MEDIUM |
cain/quarantine.py | 886 | bare_except_pass | MEDIUM |
cain/quarantine.py | 992 | bare_except_pass | MEDIUM |
cain/substrate/cain_simulation.py | 496 | bare_except_pass | MEDIUM |
platform-gateway/cain_simulation.py | 496 | bare_except_pass | MEDIUM |
scripts/cluster6/cain_trust_fabric_6_engine.py | 498 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 527 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 755 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 820 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 885 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 946 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1007 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1227 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1235 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1243 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1251 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1259 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1267 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1275 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1283 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1291 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1299 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift_api.py | 1307 | bare_except_pass | MEDIUM |
cain/substrate/cluster_api.py | 103 | bare_except_pass | MEDIUM |
platform-gateway/cluster_api.py | 103 | bare_except_pass | MEDIUM |
cain/substrate/cain_planner.py | 572 | bare_except_pass | MEDIUM |
platform-gateway/cain_planner.py | 572 | bare_except_pass | MEDIUM |
cain/continuum/hosted_pipeline.py | 288 | bare_except_pass | MEDIUM |
cain/continuum/hosted_pipeline.py | 895 | bare_except_pass | MEDIUM |
cain/continuum/hosted_pipeline.py | 957 | bare_except_pass | MEDIUM |
cain/substrate/cain_sentinel.py | 943 | bare_except_pass | MEDIUM |
cain/substrate/onboarding.py | 1539 | bare_except_pass | MEDIUM |
cain/substrate/onboarding.py | 1633 | bare_except_pass | MEDIUM |
platform-gateway/onboarding.py | 1539 | bare_except_pass | MEDIUM |
platform-gateway/onboarding.py | 1633 | bare_except_pass | MEDIUM |
cain/substrate/security_integration.py | 1707 | bare_except_pass | MEDIUM |
cain/substrate/security_integration.py | 1731 | bare_except_pass | MEDIUM |
platform-gateway/security_integration.py | 1707 | bare_except_pass | MEDIUM |
platform-gateway/security_integration.py | 1731 | bare_except_pass | MEDIUM |
cain/substrate/cain_drift.py | 1091 | placeholder_marker | MEDIUM |
cain/substrate/cain_cluster.py | 167 | bare_except_pass | MEDIUM |
cain/substrate/cain_cluster.py | 183 | bare_except_pass | MEDIUM |
cain/substrate/cain_cluster.py | 199 | bare_except_pass | MEDIUM |
cain/substrate/cain_cluster.py | 1798 | bare_except_pass | MEDIUM |
cain/substrate/trust_graph.py | 1732 | bare_except_pass | MEDIUM |
platform-gateway/trust_graph.py | 1732 | bare_except_pass | MEDIUM |