{
  "version": 1,
  "source_base": "ATEEL_Resolution_CONTRAN_968-2022_1.1.8 (3)",
  "updated_at": "2026-07-15T11:38:49.265150+00:00",
  "steps": [
    {
      "step": "source_language",
      "status": "ok",
      "message": "Portuguese (PT)",
      "at": "2026-07-15T11:14:35.031539+00:00"
    },
    {
      "step": "pipeline_start",
      "status": "info",
      "message": "OpenRouter pipeline started for ATEEL_Resolution_CONTRAN_968-2022_1.1.8 (3)",
      "at": "2026-07-15T11:14:35.031710+00:00"
    },
    {
      "step": "text_extract",
      "status": "ok",
      "message": "Wrote row plain-text extract: text.txt",
      "at": "2026-07-15T11:14:35.145853+00:00",
      "detail": "307 rows",
      "duration_seconds": 0.11
    },
    {
      "step": "style_parse",
      "status": "warning",
      "message": "Missing \"## Document terminology and abbreviations\" in document_style_full",
      "at": "2026-07-15T11:29:47.491072+00:00",
      "detail": "Appended empty terminology section and continuing."
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 5 duplicate or excess terminology entries (compact).",
      "at": "2026-07-15T11:29:47.493733+00:00",
      "detail": "limit=12 entries, 800 chars"
    },
    {
      "step": "style_extract",
      "status": "ok",
      "message": "Extracted document glossary (41803 tokens).",
      "at": "2026-07-15T11:29:47.494137+00:00",
      "detail": "model=openai/gpt-4.1-mini",
      "duration_seconds": 912.35
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 18 duplicate or excess terminology entries (full).",
      "at": "2026-07-15T11:30:31.687808+00:00",
      "detail": "limit=25 entries, 2000 chars"
    },
    {
      "step": "style_merge",
      "status": "ok",
      "message": "LLM-merged document style with VW style style guide (full).",
      "at": "2026-07-15T11:30:31.688225+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=32821",
      "duration_seconds": 44.19
    },
    {
      "step": "style_compact",
      "status": "info",
      "message": "Style guide compaction level",
      "at": "2026-07-15T11:30:31.689294+00:00",
      "detail": "model=openai/gpt-4.1-mini, level=1, target≤7650",
      "duration_seconds": 0.0
    },
    {
      "step": "style_terminology",
      "status": "info",
      "message": "Trimmed 4 duplicate or excess terminology entries (compact).",
      "at": "2026-07-15T11:30:45.770637+00:00",
      "detail": "limit=12 entries, 800 chars"
    },
    {
      "step": "style_compact",
      "status": "info",
      "message": "Style guide compaction level",
      "at": "2026-07-15T11:30:45.771452+00:00",
      "detail": "model=openai/gpt-4.1-mini, level=2, target≤3612"
    },
    {
      "step": "style_compact",
      "status": "ok",
      "message": "Compacted merged style guide (2 levels).",
      "at": "2026-07-15T11:30:57.758884+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=6021"
    },
    {
      "step": "style_select",
      "status": "info",
      "message": "Using merged style (VW style + document).",
      "at": "2026-07-15T11:30:57.763387+00:00"
    },
    {
      "step": "style_select",
      "status": "ok",
      "message": "Using full + full glossary style guide for openai/gpt-4.1-mini (est. 3684/1047576 tokens)",
      "at": "2026-07-15T11:30:57.771236+00:00"
    },
    {
      "step": "consistency_check",
      "status": "ok",
      "message": "Found 47 consistency issue(s) across 47 row(s).",
      "at": "2026-07-15T11:37:45.848548+00:00",
      "detail": "model=openai/gpt-4.1-mini, tokens=34492",
      "duration_seconds": 94.45
    },
    {
      "step": "consistency_retranslate",
      "status": "ok",
      "message": "Re-translated 47 row(s) after consistency check.",
      "at": "2026-07-15T11:38:35.337965+00:00",
      "duration_seconds": 49.49
    },
    {
      "step": "row_translation",
      "status": "ok",
      "message": "Completed 354/307 rows.",
      "at": "2026-07-15T11:38:49.264570+00:00",
      "detail": "tokens=1938116",
      "duration_seconds": 471.49
    },
    {
      "step": "pipeline_end",
      "status": "ok",
      "message": "Translation completed (354/307 rows, 1938116 tokens).",
      "at": "2026-07-15T11:38:49.265076+00:00"
    }
  ]
}
