{"ok":true,"checkedAt":"2026-07-17T20:53:48.505Z","contractVersion":"moral-trade-production-readiness-v0.1-2026-06","purpose":"Fail-closed production-control contract for account security, backup recovery, deployment/configuration provenance, schema migrations, environment isolation, financial reconciliation, audit integrity, and data-security readiness before real-money, payout, public-metric, privacy-disclosing, release-promotion, or privileged-change paths.","validation":{"status":"pass","validatorName":"moral-trade-production-readiness-contract","validatorVersion":"moral-trade-production-readiness-validator-v0.1","contractVersion":"moral-trade-production-readiness-v0.1-2026-06","checks":[{"id":"first-class-record-tables","label":"Production controls publish first-class records","status":"pass","evidence":"moral_trade_account_security_policies, moral_trade_account_security_events, moral_trade_backup_recovery_policies, moral_trade_backup_recovery_checkpoints, moral_trade_deployment_release_records, moral_trade_configuration_snapshots, moral_trade_configuration_change_records, moral_trade_schema_migration_policies, moral_trade_schema_migration_runs, moral_trade_environment_data_isolation_policies, moral_trade_environment_data_isolation_records, moral_trade_financial_reconciliation_policies, moral_trade_financial_reconciliation_runs, moral_trade_audit_integrity_policies, moral_trade_audit_integrity_checkpoints, moral_trade_data_security_policies, moral_trade_key_version_records"},{"id":"policy-snapshot-subjects","label":"Production-control policies resolve to immutable policy snapshots","status":"pass","evidence":"account_security, backup_recovery, deployment_release, configuration_snapshot, schema_migration, environment_data_isolation, financial_reconciliation, audit_integrity, data_security"},{"id":"control-definitions","label":"Required production controls are defined","status":"pass","evidence":"account_security, backup_recovery, deployment_configuration, schema_migration, environment_data_isolation, financial_reconciliation, audit_integrity, data_security_key_management"},{"id":"gate-definitions","label":"High-risk gates bind to required controls","status":"pass","evidence":"sandbox_calculation_preview, real_money_capture, payout_release, round_close, public_money_metric_release, privacy_disclosure, release_gate_promotion, non_emergency_privileged_change"},{"id":"fail-closed-statuses","label":"Non-ready states fail closed","status":"pass","evidence":"missing, failed, stale, under_review, drift_detected, unverified, restore_failed, variance_unresolved, high_risk_event_open"},{"id":"sample-evaluations","label":"Sample evaluations show preview pass and payout block","status":"pass","evidence":"pass, blocked"},{"id":"contract-tests","label":"Contract test hooks cover fail-closed readiness","status":"pass","evidence":"production_readiness_contract_validator, production_readiness_missing_controls_fail_closed, production_readiness_stale_or_drifted_controls_block, production_readiness_policy_snapshots_must_be_immutable, production_readiness_route_health_spec_and_migration_wiring"}],"blockers":[]},"publicContract":{"failClosedRule":"Missing, stale, failed, drifted, unverified, restore-failed, variance-unresolved, high-risk-account, mutable-policy, invalid-hash, or wrong-table operational records block the affected transition until superseded by reviewed immutable evidence.","firstClassRecordTables":["moral_trade_account_security_policies","moral_trade_account_security_events","moral_trade_backup_recovery_policies","moral_trade_backup_recovery_checkpoints","moral_trade_deployment_release_records","moral_trade_configuration_snapshots","moral_trade_configuration_change_records","moral_trade_schema_migration_policies","moral_trade_schema_migration_runs","moral_trade_environment_data_isolation_policies","moral_trade_environment_data_isolation_records","moral_trade_financial_reconciliation_policies","moral_trade_financial_reconciliation_runs","moral_trade_audit_integrity_policies","moral_trade_audit_integrity_checkpoints","moral_trade_data_security_policies","moral_trade_key_version_records"],"policySnapshotSubjects":["account_security","backup_recovery","deployment_release","configuration_snapshot","schema_migration","environment_data_isolation","financial_reconciliation","audit_integrity","data_security"],"failClosedStatuses":["missing","failed","stale","under_review","drift_detected","unverified","restore_failed","variance_unresolved","high_risk_event_open"],"controls":[{"key":"account_security","firstClassRecordTables":["moral_trade_account_security_policies","moral_trade_account_security_events"],"blocks":["real_money_capture","payout_release","privacy_disclosure","non_emergency_privileged_change"]},{"key":"backup_recovery","firstClassRecordTables":["moral_trade_backup_recovery_policies","moral_trade_backup_recovery_checkpoints"],"blocks":["payout_release","round_close","public_money_metric_release","release_gate_promotion","non_emergency_privileged_change"]},{"key":"deployment_configuration","firstClassRecordTables":["moral_trade_deployment_release_records","moral_trade_configuration_snapshots","moral_trade_configuration_change_records"],"blocks":["real_money_capture","payout_release","round_close","public_money_metric_release","privacy_disclosure","release_gate_promotion","non_emergency_privileged_change"]},{"key":"schema_migration","firstClassRecordTables":["moral_trade_schema_migration_policies","moral_trade_schema_migration_runs"],"blocks":["real_money_capture","round_close","release_gate_promotion"]},{"key":"environment_data_isolation","firstClassRecordTables":["moral_trade_environment_data_isolation_policies","moral_trade_environment_data_isolation_records"],"blocks":["sandbox_calculation_preview","real_money_capture","round_close","public_money_metric_release","release_gate_promotion"]},{"key":"financial_reconciliation","firstClassRecordTables":["moral_trade_financial_reconciliation_policies","moral_trade_financial_reconciliation_runs"],"blocks":["payout_release","round_close","public_money_metric_release"]},{"key":"audit_integrity","firstClassRecordTables":["moral_trade_audit_integrity_policies","moral_trade_audit_integrity_checkpoints"],"blocks":["real_money_capture","payout_release","round_close","public_money_metric_release","privacy_disclosure","release_gate_promotion","non_emergency_privileged_change"]},{"key":"data_security_key_management","firstClassRecordTables":["moral_trade_data_security_policies","moral_trade_key_version_records"],"blocks":["real_money_capture","payout_release","privacy_disclosure","release_gate_promotion","non_emergency_privileged_change"]}],"gates":[{"key":"sandbox_calculation_preview","requiredControls":["environment_data_isolation"],"userFacingBlockerCategory":"Preview data separation needs review"},{"key":"real_money_capture","requiredControls":["account_security","deployment_configuration","schema_migration","environment_data_isolation","audit_integrity","data_security_key_management"],"userFacingBlockerCategory":"Money movement is paused for operational review"},{"key":"payout_release","requiredControls":["account_security","backup_recovery","deployment_configuration","financial_reconciliation","audit_integrity","data_security_key_management"],"userFacingBlockerCategory":"Payout release is paused for operational review"},{"key":"round_close","requiredControls":["backup_recovery","deployment_configuration","schema_migration","environment_data_isolation","financial_reconciliation","audit_integrity"],"userFacingBlockerCategory":"Round close needs operational verification"},{"key":"public_money_metric_release","requiredControls":["backup_recovery","deployment_configuration","environment_data_isolation","financial_reconciliation","audit_integrity"],"userFacingBlockerCategory":"Public money totals need verification"},{"key":"privacy_disclosure","requiredControls":["account_security","deployment_configuration","audit_integrity","data_security_key_management"],"userFacingBlockerCategory":"Private disclosure needs account and data-security review"},{"key":"release_gate_promotion","requiredControls":["backup_recovery","deployment_configuration","schema_migration","environment_data_isolation","audit_integrity","data_security_key_management"],"userFacingBlockerCategory":"Release promotion needs operational verification"},{"key":"non_emergency_privileged_change","requiredControls":["account_security","backup_recovery","deployment_configuration","audit_integrity","data_security_key_management"],"userFacingBlockerCategory":"Privileged change needs dual-control readiness"}],"productionReadinessSampleEvaluationStatuses":{"sandbox_calculation_preview":"pass","payout_release":"blocked"},"contractTests":["production_readiness_contract_validator","production_readiness_missing_controls_fail_closed","production_readiness_stale_or_drifted_controls_block","production_readiness_policy_snapshots_must_be_immutable","production_readiness_route_health_spec_and_migration_wiring"]},"blockers":[]}