mirror of
https://github.com/codeflash-ai/codeflash-agent.git
synced 2026-05-04 18:25:19 +00:00
Case study in .codeflash/krrt7/codeflash-ai/ci-audit/ with README, status, and raw data (fork activity, PRs merged). Interactive Dash report in reports/codeflash-ci-audit/ with two tabs: Executive Summary (hero metrics, cost impact charts, before/after) and Full Detail (fork breakdown, findings table, PR inventory, methodology). Key numbers: 71% fewer workflow runs, ~$12K/yr in Enterprise overage savings, 200+ forks disabled, 11 PRs merged across 2 repos.
96 lines
6.5 KiB
JSON
96 lines
6.5 KiB
JSON
{
|
|
"codeflash_base": "https://github.com/codeflash-ai/codeflash/pull",
|
|
"internal_base": "https://github.com/codeflash-ai/codeflash-internal/pull",
|
|
"audit_date": "2026-04-09",
|
|
"completion_date": "2026-04-23",
|
|
"org": "codeflash-ai",
|
|
"total_forks": 200,
|
|
"active_forks": 26,
|
|
"fork_runs_audit_period": 7012,
|
|
"fork_runs_monthly": 23373,
|
|
"fork_failing_monthly": 960,
|
|
"fork_cost_yr": 248,
|
|
"ghost_workflows_disabled": 13,
|
|
"workflows_before": 22,
|
|
"workflows_after": 7,
|
|
"required_checks_before": 13,
|
|
"required_checks_after": 1,
|
|
"skip_savings_per_pr": 1.85,
|
|
"fork_ci": [
|
|
{"repo": "sglang", "runs": 4936, "cost_yr": 4, "runners": "Linux", "pattern": "CI Failure Monitor (cron, skips on fork)"},
|
|
{"repo": "kornia", "runs": 308, "cost_yr": 226, "runners": "Linux + Windows + macOS", "pattern": "Daily scheduled CPU test matrix"},
|
|
{"repo": "ray", "runs": 527, "cost_yr": 3, "runners": "Linux", "pattern": "Dependabot + Stale PR bot"},
|
|
{"repo": "lerobot", "runs": 330, "cost_yr": 12, "runners": "Linux", "pattern": "Dependabot + Full Tests"},
|
|
{"repo": "next.js", "runs": 217, "cost_yr": 3, "runners": "Linux", "pattern": "Dependabot only"},
|
|
{"repo": "strapi", "runs": 118, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot (lodash x 20+ packages)"},
|
|
{"repo": "rasa", "runs": 85, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot"},
|
|
{"repo": "Rocket.Chat", "runs": 80, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot"},
|
|
{"repo": "nest", "runs": 73, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot (@nestjs/core x 20+ samples)"},
|
|
{"repo": "openclaw", "runs": 68, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot"},
|
|
{"repo": "appsmith", "runs": 64, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot"},
|
|
{"repo": "15 others", "runs": 206, "cost_yr": 1, "runners": "Linux", "pattern": "Dependabot / misc"}
|
|
],
|
|
"findings": {
|
|
"codeflash": [
|
|
{"finding": "Wildcard path triggers on 12 E2E workflows", "impact": "Every PR triggered ~2hrs of E2E tests", "fix": "Targeted path filters", "pr": 2025},
|
|
{"finding": "Broken claude-code-action (v1.0.90 Bedrock OIDC)", "impact": "60-100% failure rate on Claude Code workflows", "fix": "Pinned to v1.0.89", "pr": 2026},
|
|
{"finding": "Dependabot scanning test fixtures", "impact": "70% of Dependabot runs failing", "fix": "Added dependabot.yml excluding code_to_optimize/", "pr": 2027},
|
|
{"finding": "13 ghost workflows (deleted source files)", "impact": "Actions dashboard clutter, confusing signals", "fix": "gh workflow disable on all 13", "pr": null},
|
|
{"finding": "17 separate workflow files, 13 required checks", "impact": "Workflow-only PRs stuck at Pending, admin merge required", "fix": "Single ci.yaml with gate job", "pr": 2044},
|
|
{"finding": "No npm/Maven caching, duplicate workflows", "impact": "Slow JS/Java CI, redundant compute", "fix": "Consolidated + caching", "pr": 2050},
|
|
{"finding": "Outdated action versions, broken Windows paths", "impact": "CI failures on Windows matrix", "fix": "Upgraded actions + fixed paths", "pr": 2052},
|
|
{"finding": "Stale codeflash.yaml", "impact": "Superseded by codeflash-optimize.yaml", "fix": "Deleted", "pr": 2056}
|
|
],
|
|
"codeflash-internal": [
|
|
{"finding": "Deploy AI Service path included .github/workflows/**", "impact": "Any workflow edit triggered production deploy", "fix": "Scoped to actual service paths", "pr": 2588},
|
|
{"finding": "Claude Code workflow had no path filters", "impact": "Fired on every PR/comment", "fix": "Added paths-ignore", "pr": 2588},
|
|
{"finding": "Publish to PyPI permanently disabled (if: false)", "impact": "Skipped run noise on every push to main", "fix": "Disabled via API", "pr": 2588},
|
|
{"finding": "Broken claude-code-action (same v1.0.90 regression)", "impact": "85% failure rate", "fix": "Pinned to v1.0.89", "pr": 2587}
|
|
]
|
|
},
|
|
"prs_merged": [
|
|
{"pr": 2025, "repo": "codeflash", "date": "2026-04-09", "title": "Replace wildcard path triggers on 12 E2E workflows"},
|
|
{"pr": 2026, "repo": "codeflash", "date": "2026-04-09", "title": "Pin claude-code-action to v1.0.89 (Bedrock auth fix)"},
|
|
{"pr": 2027, "repo": "codeflash", "date": "2026-04-09", "title": "Exclude test fixtures from Dependabot"},
|
|
{"pr": 2044, "repo": "codeflash", "date": "2026-04-09", "title": "Consolidate 17 workflows into single ci.yaml with gate job"},
|
|
{"pr": 2047, "repo": "codeflash", "date": "2026-04-09", "title": "Path filters, validate-pr action, fetch-depth, continue-on-error"},
|
|
{"pr": 2050, "repo": "codeflash", "date": "2026-04-09", "title": "npm cache, Maven consolidation, remove duplicate workflow"},
|
|
{"pr": 2052, "repo": "codeflash", "date": "2026-04-10", "title": "Upgrade action versions, add uv cache, fix broken paths, DRY publish"},
|
|
{"pr": 2053, "repo": "codeflash", "date": "2026-04-10", "title": "Fix shell: bash for Windows conditional install"},
|
|
{"pr": 2056, "repo": "codeflash", "date": "2026-04-10", "title": "Delete disabled codeflash.yaml workflow"},
|
|
{"pr": 2587, "repo": "codeflash-internal", "date": "2026-04-09", "title": "Pin claude-code-action to v1.0.89"},
|
|
{"pr": 2588, "repo": "codeflash-internal", "date": "2026-04-09", "title": "Fix deploy path filter, Claude Code paths, disable PyPI"}
|
|
],
|
|
"direct_actions": [
|
|
{"action": "Disabled 13 ghost workflows", "date": "2026-04-09", "repo": "codeflash"},
|
|
{"action": "Disabled Publish to PyPI workflow", "date": "2026-04-09", "repo": "codeflash-internal"},
|
|
{"action": "Closed stale Dependabot PR #2012", "date": "2026-04-09", "repo": "codeflash"},
|
|
{"action": "Migrated branch protection to rulesets", "date": "2026-04-09", "repo": "codeflash"},
|
|
{"action": "Disabled Actions on 200+ forks", "date": "2026-04-23", "repo": "org-wide"}
|
|
],
|
|
"operational_before_after": {
|
|
"workflow_files": [22, 7],
|
|
"required_checks": [13, 1],
|
|
"non_code_pr_cost": [1.85, 0.001],
|
|
"fork_failing_runs_monthly": [960, 0],
|
|
"admin_merges_needed": true
|
|
},
|
|
"run_volume": {
|
|
"codeflash_feb": 21307,
|
|
"codeflash_apr_projected": 6219,
|
|
"codeflash_reduction_pct": 71,
|
|
"internal_feb": 2494,
|
|
"internal_apr_projected": 3864,
|
|
"total_eliminated_monthly": 16000
|
|
},
|
|
"billing": {
|
|
"enterprise_included_min": 50000,
|
|
"overage_before_min": 214872,
|
|
"overage_after_min": 89613,
|
|
"overage_saved_min": 125259,
|
|
"overage_saved_monthly_usd": 1002,
|
|
"overage_saved_annual_usd": 12025,
|
|
"non_code_pr_before_sec": 780,
|
|
"non_code_pr_after_sec": 8
|
|
}
|
|
}
|