[
 {
  "id": "C01",
  "http_status": 200,
  "recorded_at": "2026-11-03T23:27:42+00:00",
  "ms": 0,
  "reply": {
   "slug": "taloscode-migrate",
   "title": "Migrate a COBOL snippet to Python",
   "status": "ok",
   "input": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
   "total_ms": 85,
   "steps": [
    {
     "call": "POST /v1/migrate",
     "request": {
      "source": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
      "from_lang": "cobol",
      "to_lang": "python"
     },
     "status": 200,
     "ms": 67,
     "reply": {
      "transformed_source": "#!/usr/bin/env python3\n\"\"\"Migrated from COBOL — 2026-11-03\nWARNING: Auto-migration — manual review required for business logic.\n\"\"\"\nimport sys\nfrom decimal import Decimal\n\n# ── IDENTIFICATION DIVISION ──\nPROGRAM_ID = 'PAYROLL'\n\n# ── DATA DIVISION ──\n# Working storage variables:\nws_hours: int = 0  # level 01, was: WS-HOURS\nws_rate: Decimal = Decimal('0')  # level 01, was: WS-RATE\nws_pay: Decimal = Decimal('0')  # level 01, was: WS-PAY\n\n\ndef main() -> None:\n    \"\"\"Main procedure — migrated from COBOL PROCEDURE DIVISION.\"\"\"\n    ws_pay = ws_hours * ws_rate\n    print(WS-PAY)\n    sys.exit(0)\n\n\nif __name__ == '__main__':\n    main()",
      "original_source": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
      "changes": [
       {
        "line": 1,
        "original": "IDENTIFICATION DIVISION",
        "replacement": "# IDENTIFICATION DIVISION",
        "type": "DIVISION",
        "description": "Division header converted to comment"
       },
       {
        "line": 2,
        "original": "PROGRAM-ID. PAYROLL",
        "replacement": "PROGRAM_ID = 'PAYROLL'",
        "type": "PROGRAM_ID",
        "description": "PROGRAM-ID → module constant"
       },
       {
        "line": 5,
        "original": "01 WS-HOURS PIC 9(3) VALUE 40",
        "replacement": "ws_hours: int = 0",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 6,
        "original": "01 WS-RATE PIC 9(3)V99 VALUE 25.50",
        "replacement": "ws_rate: Decimal = Decimal('0')",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 7,
        "original": "01 WS-PAY PIC 9(5)V99",
        "replacement": "ws_pay: Decimal = Decimal('0')",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 8,
        "original": "PROCEDURE DIVISION",
        "replacement": "def main() -> None:",
        "type": "PROC_DIVISION",
        "description": "PROCEDURE DIVISION → Python function"
       },
       {
        "line": 9,
        "original": "COMPUTE WS-PAY = WS-HOURS * WS-RATE",
        "replacement": "ws_pay = ws_hours * ws_rate",
        "type": "COMPUTE",
        "description": "COMPUTE → assignment"
       },
       {
        "line": 10,
        "original": "DISPLAY WS-PAY",
        "replacement": "print(WS-PAY)",
        "type": "DISPLAY",
        "description": "DISPLAY → print()"
       },
       {
        "line": 11,
        "original": "STOP RUN",
        "replacement": "sys.exit(0)",
        "type": "STOP_RUN",
        "description": "STOP RUN → sys.exit(0)"
       }
      ],
      "change_count": 9,
      "warnings": [
       "File I/O (READ/WRITE/OPEN/CLOSE) requires manual Python implementation.",
       "COBOL COMPUTE with ROUNDED/ON SIZE ERROR needs manual handling.",
       "PERFORM UNTIL/VARYING loops need manual verification.",
       "All numeric types use Python int/Decimal — verify precision requirements.",
       "Business rule logic must be manually verified against COBOL specifications."
      ],
      "diff": "--- a/file+++ b/file@@ -1,11 +1,26 @@-       IDENTIFICATION DIVISION.\n-       PROGRAM-ID. PAYROLL.\n-       DATA DIVISION.\n-       WORKING-STORAGE SECTION.\n-       01 WS-HOURS PIC 9(3) VALUE 40.\n-       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n-       01 WS-PAY PIC 9(5)V99.\n-       PROCEDURE DIVISION.\n-           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n-           DISPLAY WS-PAY.\n-           STOP RUN.\n+#!/usr/bin/env python3\n+\"\"\"Migrated from COBOL — 2026-11-03\n+WARNING: Auto-migration — manual review required for business logic.\n+\"\"\"\n+import sys\n+from decimal import Decimal\n+\n+# ── IDENTIFICATION DIVISION ──\n+PROGRAM_ID = 'PAYROLL'\n+\n+# ── DATA DIVISION ──\n+# Working storage variables:\n+ws_hours: int = 0  # level 01, was: WS-HOURS\n+ws_rate: Decimal = Decimal('0')  # level 01, was: WS-RATE\n+ws_pay: Decimal = Decimal('0')  # level 01, was: WS-PAY\n+\n+\n+def main() -> None:\n+    \"\"\"Main procedure — migrated from COBOL PROCEDURE DIVISION.\"\"\"\n+    ws_pay = ws_hours * ws_rate\n+    print(WS-PAY)\n+    sys.exit(0)\n+\n+\n+if __name__ == '__main__':\n+    main()",
      "stats": {
       "original_lines": 11,
       "migrated_lines": 26
      },
      "from_language": "COBOL",
      "to_language": "Python 3.12",
      "confidence": 60
     }
    }
   ],
   "note": "Real calls to the running service with the public demo identity; replies are unedited."
  }
 },
 {
  "id": "C02",
  "http_status": 200,
  "recorded_at": "2026-11-03T23:27:43+00:00",
  "ms": 0,
  "reply": {
   "slug": "taloscode-migrate",
   "title": "Migrate a COBOL snippet to Python",
   "status": "ok",
   "input": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
   "total_ms": 85,
   "steps": [
    {
     "call": "POST /v1/migrate",
     "request": {
      "source": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
      "from_lang": "cobol",
      "to_lang": "python"
     },
     "status": 200,
     "ms": 67,
     "reply": {
      "transformed_source": "#!/usr/bin/env python3\n\"\"\"Migrated from COBOL — 2026-11-03\nWARNING: Auto-migration — manual review required for business logic.\n\"\"\"\nimport sys\nfrom decimal import Decimal\n\n# ── IDENTIFICATION DIVISION ──\nPROGRAM_ID = 'PAYROLL'\n\n# ── DATA DIVISION ──\n# Working storage variables:\nws_hours: int = 0  # level 01, was: WS-HOURS\nws_rate: Decimal = Decimal('0')  # level 01, was: WS-RATE\nws_pay: Decimal = Decimal('0')  # level 01, was: WS-PAY\n\n\ndef main() -> None:\n    \"\"\"Main procedure — migrated from COBOL PROCEDURE DIVISION.\"\"\"\n    ws_pay = ws_hours * ws_rate\n    print(WS-PAY)\n    sys.exit(0)\n\n\nif __name__ == '__main__':\n    main()",
      "original_source": "       IDENTIFICATION DIVISION.\n       PROGRAM-ID. PAYROLL.\n       DATA DIVISION.\n       WORKING-STORAGE SECTION.\n       01 WS-HOURS PIC 9(3) VALUE 40.\n       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n       01 WS-PAY PIC 9(5)V99.\n       PROCEDURE DIVISION.\n           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n           DISPLAY WS-PAY.\n           STOP RUN.\n",
      "changes": [
       {
        "line": 1,
        "original": "IDENTIFICATION DIVISION",
        "replacement": "# IDENTIFICATION DIVISION",
        "type": "DIVISION",
        "description": "Division header converted to comment"
       },
       {
        "line": 2,
        "original": "PROGRAM-ID. PAYROLL",
        "replacement": "PROGRAM_ID = 'PAYROLL'",
        "type": "PROGRAM_ID",
        "description": "PROGRAM-ID → module constant"
       },
       {
        "line": 5,
        "original": "01 WS-HOURS PIC 9(3) VALUE 40",
        "replacement": "ws_hours: int = 0",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 6,
        "original": "01 WS-RATE PIC 9(3)V99 VALUE 25.50",
        "replacement": "ws_rate: Decimal = Decimal('0')",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 7,
        "original": "01 WS-PAY PIC 9(5)V99",
        "replacement": "ws_pay: Decimal = Decimal('0')",
        "type": "VARIABLE",
        "description": "PIC clause → Python typed variable"
       },
       {
        "line": 8,
        "original": "PROCEDURE DIVISION",
        "replacement": "def main() -> None:",
        "type": "PROC_DIVISION",
        "description": "PROCEDURE DIVISION → Python function"
       },
       {
        "line": 9,
        "original": "COMPUTE WS-PAY = WS-HOURS * WS-RATE",
        "replacement": "ws_pay = ws_hours * ws_rate",
        "type": "COMPUTE",
        "description": "COMPUTE → assignment"
       },
       {
        "line": 10,
        "original": "DISPLAY WS-PAY",
        "replacement": "print(WS-PAY)",
        "type": "DISPLAY",
        "description": "DISPLAY → print()"
       },
       {
        "line": 11,
        "original": "STOP RUN",
        "replacement": "sys.exit(0)",
        "type": "STOP_RUN",
        "description": "STOP RUN → sys.exit(0)"
       }
      ],
      "change_count": 9,
      "warnings": [
       "File I/O (READ/WRITE/OPEN/CLOSE) requires manual Python implementation.",
       "COBOL COMPUTE with ROUNDED/ON SIZE ERROR needs manual handling.",
       "PERFORM UNTIL/VARYING loops need manual verification.",
       "All numeric types use Python int/Decimal — verify precision requirements.",
       "Business rule logic must be manually verified against COBOL specifications."
      ],
      "diff": "--- a/file+++ b/file@@ -1,11 +1,26 @@-       IDENTIFICATION DIVISION.\n-       PROGRAM-ID. PAYROLL.\n-       DATA DIVISION.\n-       WORKING-STORAGE SECTION.\n-       01 WS-HOURS PIC 9(3) VALUE 40.\n-       01 WS-RATE PIC 9(3)V99 VALUE 25.50.\n-       01 WS-PAY PIC 9(5)V99.\n-       PROCEDURE DIVISION.\n-           COMPUTE WS-PAY = WS-HOURS * WS-RATE.\n-           DISPLAY WS-PAY.\n-           STOP RUN.\n+#!/usr/bin/env python3\n+\"\"\"Migrated from COBOL — 2026-11-03\n+WARNING: Auto-migration — manual review required for business logic.\n+\"\"\"\n+import sys\n+from decimal import Decimal\n+\n+# ── IDENTIFICATION DIVISION ──\n+PROGRAM_ID = 'PAYROLL'\n+\n+# ── DATA DIVISION ──\n+# Working storage variables:\n+ws_hours: int = 0  # level 01, was: WS-HOURS\n+ws_rate: Decimal = Decimal('0')  # level 01, was: WS-RATE\n+ws_pay: Decimal = Decimal('0')  # level 01, was: WS-PAY\n+\n+\n+def main() -> None:\n+    \"\"\"Main procedure — migrated from COBOL PROCEDURE DIVISION.\"\"\"\n+    ws_pay = ws_hours * ws_rate\n+    print(WS-PAY)\n+    sys.exit(0)\n+\n+\n+if __name__ == '__main__':\n+    main()",
      "stats": {
       "original_lines": 11,
       "migrated_lines": 26
      },
      "from_language": "COBOL",
      "to_language": "Python 3.12",
      "confidence": 60
     }
    }
   ],
   "note": "Real calls to the running service with the public demo identity; replies are unedited."
  }
 }
]