{
  "date": "2026-02-24",
  "timestamp": "2026-02-24_00-31-57",
  "decision": "GO_WITH_CAUTION",
  "variant": "full",
  "duration_s": 1939.66152,
  "summary": {
    "pass": 14,
    "warn": 4,
    "fail": 7,
    "skip": 3
  },
  "health": {
    "api-backend": {
      "status": 200,
      "time_ms": 488.541
    },
    "authentication-service": {
      "status": 200,
      "time_ms": 472.634
    },
    "billing-service": {
      "status": 200,
      "time_ms": 504.929
    },
    "react-frontend": {
      "status": 200,
      "time_ms": 190.67100000000002
    },
    "litellm-health": {
      "status": 401,
      "time_ms": 478.158,
      "note": "Behind Cloudflare Access"
    },
    "litellm-models": {
      "status": 401,
      "time_ms": 490.574,
      "note": "Behind Cloudflare Access"
    },
    "api-backend-ready": {
      "status": 404,
      "time_ms": 505.20799999999997,
      "note": "No /ready endpoint implemented"
    },
    "authentication-service-ready": {
      "status": 200,
      "time_ms": 580.253
    },
    "billing-smoke": {
      "status": 404,
      "time_ms": 459.19100000000003
    }
  },
  "pytest": {
    "status": "FAIL",
    "total_repos": 13,
    "passed_repos": 6,
    "failed_repos": 7,
    "skipped_repos": 0,
    "repos": {
      "api-backend": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/api-backend/actions/runs/22331160742",
        "note": ""
      },
      "authentication-service": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/authentication-service/actions/runs/22331160695",
        "note": ""
      },
      "parser-router": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/parser-router/actions/runs/22331160807",
        "note": ""
      },
      "parser-sequential": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/parser-sequential/actions/runs/22331160725",
        "note": ""
      },
      "parser-gate": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/parser-gate/actions/runs/22331160800",
        "note": ""
      },
      "workflow-functional": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/workflow-functional/actions/runs/22331179594",
        "note": ""
      },
      "workflow-generative-sequential": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/workflow-generative-sequential/actions/runs/22331193078",
        "note": ""
      },
      "workflow-generative-langroid": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/workflow-generative-langroid/actions/runs/22331196372",
        "note": ""
      },
      "workflow-data-analysis": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/workflow-data-analysis/actions/runs/22331200251",
        "note": ""
      },
      "enrichment-biomarkers": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/enrichment-biomarkers/actions/runs/22331207528",
        "note": ""
      },
      "phoenix-platform": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/phoenix-platform/actions/runs/22331214566",
        "note": ""
      },
      "data-validation-service": {
        "conclusion": "success",
        "status": "PASS",
        "run_url": "https://github.com/n1healthcare/data-validation-service/actions/runs/22331218338",
        "note": ""
      },
      "billing-service": {
        "conclusion": "failure",
        "status": "FAIL",
        "run_url": "https://github.com/n1healthcare/billing-service/actions/runs/22331234644",
        "note": ""
      }
    }
  },
  "forge": {
    "status": "PASS",
    "test_conclusion": "success",
    "runners_conclusion": "skipped",
    "test_run_url": "https://github.com/n1healthcare/forge-sentinel/actions/runs/22331358778",
    "runners_run_url": "",
    "note": ""
  },
  "evals": {
    "status": "PASS",
    "conclusion": "success",
    "run_url": "https://github.com/n1healthcare/pipeline-evals/actions/runs/22331599717",
    "note": "",
    "eval_reports": [
      "grouper_eval_report_2026-02-10_20-14-55.html",
      "grouper_eval_report_2026-02-11_01-11-25.html"
    ]
  },
  "playwright": {
    "staging": {
      "status": "SKIP",
      "note": "Missing staging credentials"
    },
    "production": {
      "status": "SKIP",
      "note": "Missing production credentials"
    }
  },
  "signoz": {
    "total_errors": 0,
    "total_fatals": 0,
    "status": "SKIP",
    "per_service": {}
  },
  "release_review": {
    "total_repos": 36,
    "repos_with_changes": 28,
    "repos": {
      "api-backend": {
        "status": "READY",
        "ahead_by": 8,
        "changed_files": 12,
        "recent_prs": [
          "#516 Add workflow_dispatch trigger to test workflow",
          "#510 feat: Add error handling for queue submission failures",
          "#508 Fix all statuses to processing",
          "#503 fix: move /reports/count to /users/{user_id}/reports/count",
          "#502 add claude sdk integration"
        ]
      },
      "authentication-service": {
        "status": "READY",
        "ahead_by": 10,
        "changed_files": 9,
        "recent_prs": [
          "#62 fix: lowercase status param in report count query",
          "#48 Compute show_feedback_survey flag server-side",
          "#47 Fix CI test suite and Python version config",
          "#44 Add feedback_survey_completed flag and endpoint",
          "#43 Apply black, ruff and isort formatting"
        ]
      },
      "parser-gate": {
        "status": "READY",
        "ahead_by": 1,
        "changed_files": 1,
        "recent_prs": [
          "#3 Add test workflow with workflow_dispatch",
          "#2 Rename to n1r-parser-gate and add publish workflow"
        ]
      },
      "parser-router": {
        "status": "READY",
        "ahead_by": 5,
        "changed_files": 4,
        "recent_prs": [
          "#103 Add test workflow with workflow_dispatch",
          "#100 Fix to make singleton api-key aware",
          "#98 Fix static vars",
          "#94 Feat/markdown upload",
          "#92 Fix missing images in batched PDF processing"
        ]
      },
      "parser-sequential": {
        "status": "READY",
        "ahead_by": 1,
        "changed_files": 1,
        "recent_prs": [
          "#265 Re-enable test workflow with workflow_dispatch",
          "#255 Add logic to skip ECG/EEG pages in biomarker extraction processing",
          "#251 Fix scientific notation conversion in result_numeric",
          "#249 Fix no chunks in streaming response issue",
          "#248 Move doc summaries to user prompt"
        ]
      },
      "enrichment-biomarkers": {
        "status": "READY",
        "ahead_by": 11,
        "changed_files": 24,
        "recent_prs": [
          "#147 Re-enable test workflow with workflow_dispatch",
          "#143 Add flag for orphans",
          "#142 Progress update fix",
          "#140 Unit normalization",
          "#137 Cu 86c7rbya4 classify retryable and silent errors for grouper aniruddha deshpande"
        ]
      },
      "phoenix-platform": {
        "status": "READY",
        "ahead_by": 1,
        "changed_files": 1,
        "recent_prs": [
          "#17 Add workflow_dispatch trigger to CI workflow",
          "#7 Bump version and swap order",
          "#5 refactor: consolidate package publish workflow with branch-based tagging",
          "#3 Refresh message claim along with lock ttl during heartbeat",
          "#2 v4.0.0 - decorators architrecture"
        ]
      },
      "react-frontend": {
        "status": "LARGE_DIFF",
        "ahead_by": 60,
        "changed_files": 79,
        "recent_prs": [
          "#761 fix: default DEMOS_ENABLED and BETA to true",
          "#760 feat: disable demos page on production",
          "#758 Refine vitals cards and add linked vitals to note cards",
          "#753 Fix dashboard biomarker count to match biomarkers page",
          "#750 Replace User Identifier to Doctor ID"
        ]
      },
      "easy-chr": {
        "status": "STALE",
        "ahead_by": 21,
        "changed_files": 50,
        "recent_prs": [
          "#123 intermediate file write",
          "#122 Remove user-prompt",
          "#121 Fix report header branding and rename to Executive Health Intelligence Report",
          "#119 Fix/output quality 03",
          "#118 expand data analysis coverage"
        ]
      },
      "forge-sentinel": {
        "status": "LARGE_DIFF",
        "ahead_by": 49,
        "changed_files": 300,
        "recent_prs": [
          "#91 Add workflow_dispatch trigger to test workflow",
          "#88 feat(chr-frontend): add Langfuse lifecycle to run_service()",
          "#87 feat(chr-data): integrate UserAttributes for CHR workflows",
          "#86 feat: pass LANGFUSE_ENABLED to all spawned CHR jobs",
          "#85 feat(chr-data, chr-document-manager): auto-save source data snapshot & auto-upload data files"
        ]
      },
      "workflow-functional": {
        "status": "LARGE_DIFF",
        "ahead_by": 34,
        "changed_files": 138,
        "recent_prs": [
          "#317 Add test workflow with workflow_dispatch",
          "#316 actions: bump astral-sh/setup-uv from 4 to 7",
          "#315 actions: bump docker/build-push-action from 5 to 6",
          "#314 actions: bump aws-actions/configure-aws-credentials from 4 to 6",
          "#313 Upload HTML report to S3 alongside PDF"
        ]
      },
      "workflow-generative-sequential": {
        "status": "READY",
        "ahead_by": 5,
        "changed_files": 18,
        "recent_prs": [
          "#255 Add workflow_dispatch trigger to test workflow",
          "#252 Follow-up: refine sequential cover typography and high-res thumbnail",
          "#251 Align canonical n1.care branding and switch LaTeX model in workflow-generative-sequential",
          "#248 Bump n1-api-client to 0.1.23",
          "#247 Align Gemini image prompts with clinical quality standards"
        ]
      },
      "workflow-data-analysis": {
        "status": "STALE",
        "ahead_by": 36,
        "changed_files": 30,
        "recent_prs": [
          "#354 Add test workflow with workflow_dispatch",
          "#353 feat: ensure all abnormal biomarkers are mentioned in SBAR summary",
          "#350 fix: comprehensive report improvements from clinical review",
          "#348 feat: add chart loss visibility with reconciliation summaries",
          "#347 fix: filter charts without configs before counting in HTML report"
        ]
      },
      "workflow-generative-langroid": {
        "status": "LARGE_DIFF",
        "ahead_by": 80,
        "changed_files": 107,
        "recent_prs": [
          "#514 Re-enable test workflow with workflow_dispatch",
          "#513 ci: align ruff workflow Python to 3.14",
          "#512 pip: bump opentelemetry-exporter-otlp-proto-grpc from 1.38.0 to 1.39.1",
          "#509 pip: bump opentelemetry-api from 1.38.0 to 1.39.1",
          "#508 actions: bump docker/build-push-action from 5 to 6"
        ]
      },
      "workflow-claude-code": {
        "status": "READY",
        "ahead_by": 10,
        "changed_files": 43,
        "recent_prs": [
          "#90 Fix report logo rendering by embedding LOGO_SRC placeholder",
          "#87 refactor: MODEL_REGISTRY as single source of truth for model config",
          "#83 perf(report-generator): progressive disclosure optimization + visual consistency fixes",
          "#78 Align canonical n1.care branding across workflow-claude-code",
          "#76 PII & patient confidentiality hardening + n1-api-client 0.1.23"
        ]
      },
      "workflow-health-summary": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "pipeline-evals": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "automated-testing": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "data-validation-service": {
        "status": "READY",
        "ahead_by": 3,
        "changed_files": 14,
        "recent_prs": [
          "#54 Add test workflow with workflow_dispatch",
          "#52 Add ungrouped biomarker validation check",
          "#50 Fix/implausible sample source false positives",
          "#47 Document LLM vs deterministic validation check types in README",
          "#44 Main to develop"
        ]
      },
      "chr_evaluator": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "report-evaluation-service": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "n1-infrastructure": {
        "status": "READY",
        "ahead_by": 2,
        "changed_files": 2,
        "recent_prs": [
          "#29 Initial argocd related roles, policies",
          "#28 Phoenix pipeline",
          "#27 Arun/litellm dlq processor",
          "#25 Using larger more power instances while running less number of nodes",
          "#22 Billing and CHR infra"
        ]
      },
      "n1-helm-charts": {
        "status": "LARGE_DIFF",
        "ahead_by": 22,
        "changed_files": 96,
        "recent_prs": [
          "#82 feat: add langfuse.enabled to forge-sentinel chart",
          "#81 feat: add DEMOS_ENABLED feature flag to react-frontend chart",
          "#80 CHange default and prod visual model for parser to flash",
          "#79 add claude sdk",
          "#78 Wire Postmark API key to api-backend ExternalSecret"
        ]
      },
      "n1-signoz": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "cloudflare-tunnel": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "local-development-env": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "gorules": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      },
      "integration-tests": {
        "status": "ERROR",
        "ahead_by": 0,
        "changed_files": 0,
        "recent_prs": []
      }
    }
  }
}