{
  "schema_version": 1,
  "generated_at": "2026-11-01T22:13:24.172Z",
  "window": {
    "from": 1792123159959,
    "to": 1793571182967,
    "runs": 479
  },
  "status": "warning",
  "findings": [
    {
      "key": "review-stuck",
      "id": "review-stuck",
      "category": "Review",
      "title": "PRs not approved after several reviews",
      "severity": "warning",
      "status": "active",
      "first_seen": 1792191698577,
      "last_seen": 1792431951034,
      "clean_since": null,
      "fact": "13 PR(s) have their last 3+ verdicts without an APPROVE: #218 (3), #219 (3), #220 (3), #221 (3), #222 (3), #225 (3), #226 (5), #227 (3), #231 (3), #234 (3), #235 (4), #241 (11), #242 (14).",
      "hypothesis": null,
      "impact": "61 review run(s) without converging",
      "frequency": "13 PR(s)",
      "evidence": [
        {
          "run_id": "38979116693-1",
          "ts": 1792191752800,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 218,
          "url": null
        },
        {
          "run_id": "38982767337-1",
          "ts": 1792194157190,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 218,
          "url": null
        },
        {
          "run_id": "38985736790-1",
          "ts": 1792196351660,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 219,
          "url": null
        },
        {
          "run_id": "38985775751-1",
          "ts": 1792196425303,
          "event": "review.verdict",
          "summary": "verdict=REQUEST_CHANGES",
          "pr": 219,
          "url": null
        },
        {
          "run_id": "38987589546-1",
          "ts": 1792197801993,
          "event": "review.verdict",
          "summary": "verdict=REQUEST_CHANGES",
          "pr": 219,
          "url": null
        },
        {
          "run_id": "38990364970-1",
          "ts": 1792200042242,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 220,
          "url": null
        },
        {
          "run_id": "38990406522-1",
          "ts": 1792200165003,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 220,
          "url": null
        },
        {
          "run_id": "38992537605-1",
          "ts": 1792201888758,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 220,
          "url": null
        },
        {
          "run_id": "38995413070-1",
          "ts": 1792204482822,
          "event": "review.verdict",
          "summary": "verdict=REQUEST_CHANGES",
          "pr": 221,
          "url": null
        },
        {
          "run_id": "38996052770-1",
          "ts": 1792205087121,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 221,
          "url": null
        },
        {
          "run_id": "38996292639-1",
          "ts": 1792205320482,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 221,
          "url": null
        },
        {
          "run_id": "38996318417-1",
          "ts": 1792205358066,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 222,
          "url": null
        },
        {
          "run_id": "38996353300-1",
          "ts": 1792205430575,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 222,
          "url": null
        },
        {
          "run_id": "39039318413-1",
          "ts": 1792246034648,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 222,
          "url": null
        },
        {
          "run_id": "39194824561-1",
          "ts": 1792380556234,
          "event": "review.verdict",
          "summary": "verdict=REQUEST_CHANGES",
          "pr": 225,
          "url": null
        },
        {
          "run_id": "39196061218-1",
          "ts": 1792381489457,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 225,
          "url": null
        },
        {
          "run_id": "39197996406-1",
          "ts": 1792382976725,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 225,
          "url": null
        },
        {
          "run_id": "39201050992-1",
          "ts": 1792385170950,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 226,
          "url": null
        },
        {
          "run_id": "39247627963-1",
          "ts": 1792410732168,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 226,
          "url": null
        },
        {
          "run_id": "39248382282-1",
          "ts": 1792411106572,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 226,
          "url": null
        },
        {
          "run_id": "39265779193-1",
          "ts": 1792418784905,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 227,
          "url": null
        },
        {
          "run_id": "39265836758-1",
          "ts": 1792418858516,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 227,
          "url": null
        },
        {
          "run_id": "39272705384-1",
          "ts": 1792421555091,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 227,
          "url": null
        },
        {
          "run_id": "39296748777-1",
          "ts": 1792431951034,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 231,
          "url": null
        },
        {
          "run_id": "38979056167-1",
          "ts": 1792191698577,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 218,
          "url": null
        }
      ],
      "lever": null
    },
    {
      "key": "codegen-blocked",
      "id": "codegen-blocked",
      "category": "Code generation",
      "title": "Code generation is mostly blocked",
      "severity": "warning",
      "status": "active",
      "first_seen": 1792379296435,
      "last_seen": 1793409979240,
      "clean_since": null,
      "fact": "17 of 18 generation run(s) produced no patch (source: model 12, unspecified 2, denylist 3); 1 completed. Blocked by design (protected or withheld targets): 5; anomaly: 12 (the model blocked the issue, or the rejection is not a design rule).",
      "hypothesis": "A model-sourced block usually means the files to change were withheld from its context (size or protected paths); the escalation comment on the issue says which.",
      "impact": "17 issue(s) escalated instead of getting a PR",
      "frequency": "17 run(s)",
      "evidence": [
        {
          "run_id": "41155321170-1",
          "ts": 1793409987925,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41154713645-1",
          "ts": 1793409542492,
          "event": "code_gen.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path · error=AI response changes[0] target_path \"scripts/audit-branches.js\" is in a protected path (scripts/)",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41154652610-1",
          "ts": 1793409503196,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41112867211-1",
          "ts": 1793387384873,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41108652433-1",
          "ts": 1793385553757,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41073850373-1",
          "ts": 1793371319677,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40755480973-1",
          "ts": 1793216087097,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40754964443-1",
          "ts": 1793215888936,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40754918718-1",
          "ts": 1793215859369,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40753415508-1",
          "ts": 1793215264972,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39542338480-1",
          "ts": 1792555704560,
          "event": "code_gen.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path · error=AI response changes[0] target_path \"docs/evals-review-anthropic-comparison.md\" is in a protected path (docs/)",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39354513597-1",
          "ts": 1792460308152,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193378100-1",
          "ts": 1792379428498,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193267771-1",
          "ts": 1792379344773,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193237010-1",
          "ts": 1792379323309,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193225895-1",
          "ts": 1792379315343,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193212668-1",
          "ts": 1792379304272,
          "event": "code_gen.skipped",
          "summary": "reason=blocked",
          "pr": null,
          "url": null
        }
      ],
      "lever": {
        "stage": "generation",
        "summary": "Code generation is blocked before it proposes a patch",
        "targets": [
          {
            "kind": "config",
            "ref": "config/models.yaml#generation_max_input_tokens",
            "gate": null,
            "requires": "no-eval-gate"
          },
          {
            "kind": "prompt",
            "ref": "prompts/generation-system.md",
            "gate": null,
            "requires": "no-eval-gate"
          },
          {
            "kind": "prompt",
            "ref": "prompts/validation-system.md",
            "gate": "validation",
            "requires": "evals"
          }
        ],
        "adr": [
          "0029"
        ],
        "requires": [
          "no-eval-gate",
          "evals",
          "docs-and-tests"
        ],
        "verified": false
      }
    },
    {
      "key": "llm-fallbacks",
      "id": "llm-fallbacks",
      "category": "LLM provider",
      "title": "Frequent provider fallbacks",
      "severity": "warning",
      "status": "active",
      "first_seen": 1792123159959,
      "last_seen": 1793409979240,
      "clean_since": null,
      "fact": "18 fallback(s) for 354 LLM call(s): groq → anthropic (UNKNOWN) ×11, groq → anthropic (rate_limit_exceeded) ×5, groq → anthropic (json_validate_failed) ×1, groq → anthropic (TRANSIENT) ×1. 11 of them carry no classified error type: their cause is not recorded.",
      "hypothesis": null,
      "impact": "Answers come from the fallback model, at its price",
      "frequency": "18 fallback(s)",
      "evidence": [
        {
          "run_id": "41155321170-1",
          "ts": 1793409979691,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41154652610-1",
          "ts": 1793409496213,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41112867211-1",
          "ts": 1793387377190,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41108652433-1",
          "ts": 1793385542806,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "41073850373-1",
          "ts": 1793371311696,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40754964443-1",
          "ts": 1793215881469,
          "event": "llm_fallback",
          "summary": "error_type=json_validate_failed · status=400",
          "pr": null,
          "url": null
        },
        {
          "run_id": "40753415508-1",
          "ts": 1793215256209,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39465136002-1",
          "ts": 1792516862434,
          "event": "llm_fallback",
          "summary": "error_type=rate_limit_exceeded · status=429",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39464169942-1",
          "ts": 1792516481462,
          "event": "llm_fallback",
          "summary": "error_type=rate_limit_exceeded · status=429",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39463376417-1",
          "ts": 1792516143686,
          "event": "llm_fallback",
          "summary": "error_type=rate_limit_exceeded · status=429",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39362880138-1",
          "ts": 1792465901076,
          "event": "llm_fallback",
          "summary": "error_type=rate_limit_exceeded · status=429",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39360679664-1",
          "ts": 1792464445623,
          "event": "llm_fallback",
          "summary": "error_type=rate_limit_exceeded · status=429",
          "pr": 240,
          "url": null
        },
        {
          "run_id": "39355091245-1",
          "ts": 1792460680486,
          "event": "llm_fallback",
          "summary": "error_type=UNKNOWN",
          "pr": 238,
          "url": null
        },
        {
          "run_id": "39193378100-1",
          "ts": 1792379421191,
          "event": "llm_fallback",
          "summary": "error=groq: generation prompt is ~3532 estimated input tokens, over generation_max_input_tokens (3500) in config/models.yaml: Groq would reject it with 413 (one request > 8K TPM). Shorten the input or raise… · error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193237010-1",
          "ts": 1792379315607,
          "event": "llm_fallback",
          "summary": "error=groq: generation prompt is ~7488 estimated input tokens, over generation_max_input_tokens (3500) in config/models.yaml: Groq would reject it with 413 (one request > 8K TPM). Shorten the input or raise… · error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193225895-1",
          "ts": 1792379306658,
          "event": "llm_fallback",
          "summary": "error=groq: generation prompt is ~5590 estimated input tokens, over generation_max_input_tokens (3500) in config/models.yaml: Groq would reject it with 413 (one request > 8K TPM). Shorten the input or raise… · error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193212668-1",
          "ts": 1792379296481,
          "event": "llm_fallback",
          "summary": "error=groq: generation prompt is ~6593 estimated input tokens, over generation_max_input_tokens (3500) in config/models.yaml: Groq would reject it with 413 (one request > 8K TPM). Shorten the input or raise… · error_type=UNKNOWN",
          "pr": null,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123669415,
          "event": "llm_fallback",
          "summary": "error=groq: Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (T… · error_type=TRANSIENT",
          "pr": 217,
          "url": null
        }
      ],
      "lever": {
        "stage": "provider",
        "summary": "The primary provider fails often enough that the fallback answers",
        "targets": [
          {
            "kind": "variable",
            "ref": "AI_PROVIDER_<STAGE>",
            "gate": null,
            "requires": "no-eval-gate"
          },
          {
            "kind": "policy",
            "ref": "retry policy (ADR-0022)",
            "gate": null,
            "requires": "no-eval-gate"
          },
          {
            "kind": "external",
            "ref": "provider tier",
            "gate": null,
            "requires": "no-eval-gate"
          }
        ],
        "adr": [
          "0022",
          "0025"
        ],
        "requires": [
          "no-eval-gate",
          "docs-and-tests"
        ],
        "verified": false
      }
    },
    {
      "key": "review-withheld",
      "id": "review-withheld",
      "category": "Review",
      "title": "Reviews withhold their verdict — resolved since 2026-10-23",
      "severity": "info",
      "status": "resolved",
      "first_seen": 1792191692951,
      "last_seen": 1792766197592,
      "clean_since": 1792766292775,
      "fact": "67 of 271 verdicts are WITHHELD (25 %); 66 of them had code files not reviewed, 56 would have been APPROVE (withheld_from). They cover 53 PR head(s) on 19 PR(s). Guardrail: 61 (code cut, ADR-0038: 61; CI evidence, ADR-0026: 0); anomaly: 6 (REQUEST_CHANGES on unseen code: 0; adversarial protocol not met, ADR-0049: 1; unknown cause: 0; fallback answered a prompt cut to the primary's budget: 5). Answered by: groq 61, anthropic (fallback) 5, anthropic 1; input budget 6300 tokens.",
      "hypothesis": "The guardrail worked as designed: approval is withheld on code the review did not see (ADR-0038). The lever is the provider or its input budget (review_max_input_tokens, ADR-0025), not the review rule.",
      "impact": "67 review(s) ended without a usable verdict; a person has to review",
      "frequency": "67 verdict(s) on 53 head(s) of 19 PR(s)",
      "evidence": [
        {
          "run_id": "39970922373-1",
          "ts": 1792766208688,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 282,
          "url": null
        },
        {
          "run_id": "39465136002-1",
          "ts": 1792516873852,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39464169942-1",
          "ts": 1792516492110,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39463376417-1",
          "ts": 1792516154470,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39462591400-1",
          "ts": 1792515779518,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39461426672-1",
          "ts": 1792515295359,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39460097943-1",
          "ts": 1792514744059,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39459145806-1",
          "ts": 1792514342396,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39458198456-1",
          "ts": 1792513974670,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39457410857-1",
          "ts": 1792513644099,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39456552143-1",
          "ts": 1792513293053,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39455474898-1",
          "ts": 1792512849251,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39451632457-1",
          "ts": 1792511311877,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39432222887-1",
          "ts": 1792503667344,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39432164291-1",
          "ts": 1792503586996,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39415443047-1",
          "ts": 1792495886794,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39414840580-1",
          "ts": 1792495595018,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39413913587-1",
          "ts": 1792495137423,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39413251169-1",
          "ts": 1792494786111,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39412599427-1",
          "ts": 1792494456941,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39411739301-1",
          "ts": 1792494006849,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39410929604-1",
          "ts": 1792493587556,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39410173183-1",
          "ts": 1792493181575,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39409528303-1",
          "ts": 1792492858652,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "38979056167-1",
          "ts": 1792191698577,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 218,
          "url": null
        }
      ],
      "lever": null
    },
    {
      "key": "review-duplicates",
      "id": "review-duplicates",
      "category": "Review",
      "title": "Same PR head reviewed more than once — resolved since 2026-10-23",
      "severity": "info",
      "status": "resolved",
      "first_seen": 1792191692951,
      "last_seen": 1792766292775,
      "clean_since": 1792780095043,
      "fact": "16 PR head(s) got 16 extra review run(s) (triggers: pull_request, push); 2 of them got different verdicts on the same code. Guardrail: 16 (after a WITHHELD verdict, ADR-0028: 16; manual re-run: 0); anomaly: 0 (two runs on one head, none skipped by the marker).",
      "hypothesis": null,
      "impact": "16 redundant review run(s) and their LLM calls",
      "frequency": "16 head(s)",
      "evidence": [
        {
          "run_id": "39970922373-1",
          "ts": 1792766208688,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 282,
          "url": null
        },
        {
          "run_id": "39970949395-1",
          "ts": 1792766306188,
          "event": "review.verdict",
          "summary": "verdict=APPROVE",
          "pr": 282,
          "url": null
        },
        {
          "run_id": "39432164291-1",
          "ts": 1792503586996,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39432222887-1",
          "ts": 1792503667344,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 242,
          "url": null
        },
        {
          "run_id": "39362802426-1",
          "ts": 1792465832847,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39362880138-1",
          "ts": 1792465911327,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 241,
          "url": null
        },
        {
          "run_id": "39360606464-1",
          "ts": 1792464378955,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 240,
          "url": null
        },
        {
          "run_id": "39360679664-1",
          "ts": 1792464456354,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 240,
          "url": null
        },
        {
          "run_id": "39355352614-1",
          "ts": 1792460900021,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 239,
          "url": null
        },
        {
          "run_id": "39355384135-1",
          "ts": 1792460966726,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 239,
          "url": null
        },
        {
          "run_id": "39352232883-1",
          "ts": 1792458873787,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 235,
          "url": null
        },
        {
          "run_id": "39352275774-1",
          "ts": 1792458950882,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 235,
          "url": null
        },
        {
          "run_id": "39343217446-1",
          "ts": 1792453422961,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 234,
          "url": null
        },
        {
          "run_id": "39343261506-1",
          "ts": 1792453503705,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 234,
          "url": null
        },
        {
          "run_id": "39340743028-1",
          "ts": 1792451979703,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 233,
          "url": null
        },
        {
          "run_id": "39340808744-1",
          "ts": 1792452052062,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 233,
          "url": null
        },
        {
          "run_id": "39296748777-1",
          "ts": 1792431951034,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 231,
          "url": null
        },
        {
          "run_id": "39296827272-1",
          "ts": 1792432023325,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 231,
          "url": null
        },
        {
          "run_id": "39276335482-1",
          "ts": 1792423011553,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 228,
          "url": null
        },
        {
          "run_id": "39276410959-1",
          "ts": 1792423084667,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 228,
          "url": null
        },
        {
          "run_id": "39265779193-1",
          "ts": 1792418784905,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 227,
          "url": null
        },
        {
          "run_id": "39265836758-1",
          "ts": 1792418858516,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 227,
          "url": null
        },
        {
          "run_id": "39200119948-1",
          "ts": 1792384499160,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 226,
          "url": null
        },
        {
          "run_id": "39200139344-1",
          "ts": 1792384565806,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 226,
          "url": null
        },
        {
          "run_id": "38979056167-1",
          "ts": 1792191698577,
          "event": "review.verdict",
          "summary": "verdict=WITHHELD",
          "pr": 218,
          "url": null
        }
      ],
      "lever": null
    },
    {
      "key": "external-review-churn",
      "id": "external-review-churn",
      "category": "Review",
      "title": "PRs needed several external review rounds — resolved since 2026-10-26",
      "severity": "info",
      "status": "resolved",
      "first_seen": 1792935348545,
      "last_seen": 1792935348545,
      "clean_since": 1792974746283,
      "fact": "1 of 34 PR(s) with a recorded external review had 3+ rounds (#296: 9 rounds, 13 threads, 0 P0/P1); they hold 13 of the 40 external threads recorded. Counts are a lower bound: the reviewer answers a head after the run that recorded them.",
      "hypothesis": "Each round may find a neighbour of the previous fix (same defect class), which a fix that sweeps the class would remove; the records hold counts, not the findings, so this is not verified.",
      "impact": "9 external review round(s) on 1 PR(s)",
      "frequency": "1 PR(s)",
      "evidence": [
        {
          "run_id": "40198235010-1",
          "ts": 1792935366628,
          "event": "review.external",
          "summary": "",
          "pr": 296,
          "url": null
        }
      ],
      "lever": null
    },
    {
      "key": "autofix-ineffective",
      "id": "autofix-ineffective",
      "category": "Auto-fix",
      "title": "Auto-fix blocked by design (ADR-0021, ADR-0029)",
      "severity": "info",
      "status": "active",
      "first_seen": 1792196440708,
      "last_seen": 1793386735794,
      "clean_since": null,
      "fact": "2 delivered push(es) for 21 attempt(s); skip reasons: no_changes 14, self_modification 1, guardrail_rejected 4. Blocked by design: 18 (files withheld by budget 14, protected or unshown target 4); anomaly: 1.",
      "hypothesis": "The guardrails worked as designed: the attempts stopped on a protected or unshown target, or on files the budget withheld from the prompt. The lever is the input budget (autofix_max_input_tokens, ADR-0017) or a human fix, not the guardrail.",
      "impact": "19 attempt(s) ended without a change, usually escalated to a human",
      "frequency": "19 of 21 attempt(s)",
      "evidence": [
        {
          "run_id": "41111383676-1",
          "ts": 1793386742434,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 322,
          "url": null
        },
        {
          "run_id": "40755215086-1",
          "ts": 1793215981547,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 322,
          "url": null
        },
        {
          "run_id": "40563001144-1",
          "ts": 1793126887294,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 312,
          "url": null
        },
        {
          "run_id": "40350544084-1",
          "ts": 1793028962865,
          "event": "autofix.skipped",
          "summary": "reason=self_modification",
          "pr": 311,
          "url": "https://github.com/koydas/autonomous-dev-loop/pull/311#issuecomment-6420125931"
        },
        {
          "run_id": "40251235102-1",
          "ts": 1792975925250,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 307,
          "url": null
        },
        {
          "run_id": "40194269858-1",
          "ts": 1792932149136,
          "event": "autofix.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path",
          "pr": 297,
          "url": null
        },
        {
          "run_id": "40159225402-1",
          "ts": 1792899885470,
          "event": "autofix.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path",
          "pr": 297,
          "url": null
        },
        {
          "run_id": "39842401383-1",
          "ts": 1792698159642,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 267,
          "url": null
        },
        {
          "run_id": "39841571957-1",
          "ts": 1792697818823,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 267,
          "url": null
        },
        {
          "run_id": "39540372924-1",
          "ts": 1792554388074,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 256,
          "url": null
        },
        {
          "run_id": "39536847321-1",
          "ts": 1792552082316,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 254,
          "url": null
        },
        {
          "run_id": "39536378113-1",
          "ts": 1792551789434,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 254,
          "url": null
        },
        {
          "run_id": "39533424594-1",
          "ts": 1792549873727,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 253,
          "url": null
        },
        {
          "run_id": "39514964984-1",
          "ts": 1792538776556,
          "event": "autofix.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path",
          "pr": 246,
          "url": null
        },
        {
          "run_id": "39514660585-1",
          "ts": 1792538614648,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 246,
          "url": null
        },
        {
          "run_id": "39194915673-1",
          "ts": 1792380635781,
          "event": "autofix.skipped",
          "summary": "reason=guardrail_rejected · rules=protected_path",
          "pr": 225,
          "url": null
        },
        {
          "run_id": "38995470592-1",
          "ts": 1792204507318,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 221,
          "url": null
        },
        {
          "run_id": "38987671334-1",
          "ts": 1792197824416,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 219,
          "url": null
        },
        {
          "run_id": "38985909027-1",
          "ts": 1792196445448,
          "event": "autofix.skipped",
          "summary": "reason=no_changes",
          "pr": 219,
          "url": null
        }
      ],
      "lever": null
    },
    {
      "key": "rate-limit-waits",
      "id": "rate-limit-waits",
      "category": "LLM provider",
      "title": "Time lost waiting on rate limits — resolved since 2026-10-19",
      "severity": "info",
      "status": "resolved",
      "first_seen": 1792123159959,
      "last_seen": 1792379293277,
      "clean_since": 1792379296435,
      "fact": "28 retry wait(s) on HTTP 429, totalling 12.3 min across 6 run(s).",
      "hypothesis": null,
      "impact": "12.3 min of run time spent waiting",
      "frequency": "28 wait(s)",
      "evidence": [
        {
          "run_id": "39193218816-1",
          "ts": 1792379293779,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193218816-1",
          "ts": 1792379319583,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193218816-1",
          "ts": 1792379348945,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193218816-1",
          "ts": 1792379368977,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193212735-1",
          "ts": 1792379286934,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193212735-1",
          "ts": 1792379289366,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193208871-1",
          "ts": 1792379286551,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379285310,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379287400,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379291234,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379313296,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379337885,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379341262,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "39193204024-1",
          "ts": 1792379357470,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": null,
          "url": null
        },
        {
          "run_id": "38996318417-1",
          "ts": 1792205322451,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 222,
          "url": null
        },
        {
          "run_id": "38996318417-1",
          "ts": 1792205352123,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 222,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123211190,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123260684,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123306734,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123355211,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123397206,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123445345,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123474369,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123508248,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        },
        {
          "run_id": "38848182099-1",
          "ts": 1792123160905,
          "event": "retry.wait",
          "summary": "error=Groq API HTTP error 429: {\"error\":{\"message\":\"Rate limit reached for model `openai/gpt-oss-120b` in organization `org_01kp6a0j2bfzercy319x9ygzf5` service tier `on_demand` on tokens per minute (TPM): L… · status=429",
          "pr": 217,
          "url": null
        }
      ],
      "lever": null
    }
  ],
  "gaps": [
    {
      "id": "merge-not-journaled",
      "title": "Merge is journaled only from item-closed.yml on",
      "detail": "A merge or a closing is recorded (item.closed) only for items closed after item-closed.yml existed, and only in this repository; the Pipelines page asks GitHub for merged_at in the browser for the rest."
    },
    {
      "id": "closure-before-journal",
      "title": "Closings before the closing journal are not recorded",
      "detail": "Only items closed or merged after item-closed.yml was merged have an item.closed event. An item closed before it that last escalated still reads as escalated: the dashboard does not infer a closing from GitHub or from silence. The Pipelines page re-checks pull requests live."
    },
    {
      "id": "running-not-observable",
      "title": "Running state is not observable",
      "detail": "A record is written when its run completes, so a run in progress never appears; the latest state of an item can be older than GitHub."
    },
    {
      "id": "untraced",
      "title": "Runs outside any work-item trace",
      "detail": "23 run(s) have no trace index: they appear in Investigation but not in Pipelines."
    },
    {
      "id": "estimated-tokens",
      "title": "Token counts are estimates",
      "detail": "85 of 354 LLM call(s) carry chars/4 estimates, not provider-measured usage: their cost excludes thinking and prompt cache."
    },
    {
      "id": "duration-thin",
      "title": "Duration trend not computable",
      "detail": "Fewer than 3 runs in one of the two latest 7-day periods for: pr_prepare. No degradation is reported for them — that is not the same as no degradation."
    }
  ]
}
