{
  "step": "C372",
  "status": "completed",
  "date": "2026-09-24",
  "title": "Primitive integer grammar of the paired P/J repair",
  "previous_certificate_sha256": "1aed0acc05732814bd83132f6f85ab3744667216790fe68ae99d718944ce0bd5",
  "bindings": {
    "step": "STEP.json",
    "source_manifest": "SOURCE_MANIFEST.json",
    "report": "490d_C372_Primitive_Integer_P_J_Grammar_and_529_20260924.md",
    "checkpoint": "490d_Mirror_Checkpoint_After_C372_20260924.md",
    "data": "evidence/DATA.json",
    "results": "evidence/RESULTS.json",
    "calculation": "evidence/CALCULATION.py",
    "verifier": "evidence/check.py",
    "next_step_decision": "NEXT_STEP_DECISION.json",
    "replay": "REPLAY.json",
    "control_integrity": "CONTROL_INTEGRITY.json",
    "readme": "README.md"
  },
  "step_sha256": "5eae88ddfa791ddaffdc69c8a7334c3d831c04c82e01a3006234332921907104",
  "source_manifest_sha256": "c070472a23f1079964f58fda1ecf94eceb14a5c49bf0b0d7e02654e6e8ec71af",
  "report_sha256": "fac6a29b472a16376e45f2908469313d36e153a9d3d7f43a25ee2b5cd2f04ead",
  "checkpoint_sha256": "0142df377514c254795e118a72bd611906951999e90c46292d456031e2a95a84",
  "data_sha256": "5fd84e37f63e70ad8d50054996b238d334a6adb937b840283b23da826b455a99",
  "results_sha256": "f93c2acd8b5a483a352472afca63397354d7bb8086ef4341022bf802c9884c95",
  "calculation_sha256": "850f55172df231346a67694556ef01a80c6ff82aa30d96f02392bacc06f41bc1",
  "verifier_sha256": "9f175670abb70f7819dd7f6d997ff0bef2e58df8dffd763b433f6c6cd62e332d",
  "next_step_decision_sha256": "fccfb51eee9c0691a23aebc6228723d9b62bf7d33c1648b1d82360b1528b3cb7",
  "replay_sha256": "ee58272dfa78ccbfd535ac3882527ee1471ee5ee972f81d7a1a318f46c6f25f7",
  "control_integrity_sha256": "9810807cb07b02f43f568f68bb82cb41a6eeff6799902254b4932e5c350ac838",
  "readme_sha256": "8a75ff59a076e8e9da62a5a031337648c8ce7dfab913a53795b408856ef59579",
  "assertions_passed": 26,
  "source_checks_passed": 19,
  "main_result": "Equal integer P/J gains have family69m→70m and299m→300m, pivot separation230m. When the first sourced segment equals the separation, the side is529m. Actual source separation460 fixesm2 and recovers138→140,598→600 and2K1058 with458+600 repair. Integer inputs alone do not suffice; companion controls fail equal gain.",
  "limits": "This is a conditional arithmetic explanation, not a new source prescription, independent witness, date anchor or global operator. The separate source first-segment condition is essential for the529 side.",
  "canonical_or_graph_edits": false,
  "new_independent_agent_review": false,
  "review_provenance": "Root-agent analysis and deterministic replay; no new independent-agent review",
  "next_proposed_step": "Consolidate C364–C372 into C373; verify the principal results with a separately written root-agent calculation, replay the ten sealed packets, and publish the synthesis, checkpoint and recovery packages. Leave C374 unexecuted.",
  "next_step_executed": false
}
