[lockfile-stats] Lockfile Statistics Audit — 2026-05-29 #35785
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #35987. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Executive Summary
Analysis of all 236 compiled
.github/workflows/*.lock.ymlfiles as of 2026-05-29. 0 malformed/skipped.Lock files are large and remarkably uniform — every file sits in a tight band around ~99 KB, indicating compiled boilerplate dominates per-file content over workflow-specific logic.
File Size Distribution
No files below 50 KB or above 250 KB. Five files recompiled smaller and crossed from the 100–250 KB bucket into 50–100 KB.
Largest & smallest lockfiles
Largest:
smoke-claude(180,608 B),smoke-copilot(153,757 B),smoke-copilot-arm(144,310 B),smoke-codex(131,058 B),mcp-inspector(130,309 B),issue-monster(128,778 B),deep-report(128,588 B),cloclo(126,420 B),daily-news(123,442 B),daily-performance-summary(120,864 B).Smallest:
test-workflow(63,917 B),example-permissions-warning(64,602 B),codex-github-remote-mcp-test(65,207 B),firewall(65,282 B),ace-editor(73,415 B).Trigger Analysis
Dominant pattern:
schedule + workflow_dispatch(157 workflows, 67%) — scheduled agents with a manual-override switch. Next: dispatch-only (39),pull_request + workflow_dispatch(28).Schedule cron frequencies
161 scheduled triggers. Crons are well-distributed across off-peak minutes (very few land on :00/:30). Most are once-daily (
M H * * *); a handful run weekday-only (* * 1-5), every 4–6 hours (*/4,*/6), or hourly (23 * * * *). No two workflows share more than 2 instances of the same cron — good spread, low thundering-herd risk.Safe Outputs Analysis
yaml_available: false), so the analyzer used regex fallbacks. In compiled lock files, safe-output configuration is embedded as job logic / JSON env rather than as top-level YAML keys, so thesafe-outputs:key scan returned no matches — this is a measurement gap, not evidence that safe outputs are unused. Discussion-category extraction was empty for the same reason. See Recommendations.Structural Characteristics
run:)firewall-escape(12)smoke-copilot(142)run:scripts (11,933 / 24,644 ≈ 48%).Permission Patterns
All 236 lockfiles expose an empty top-level
permissions: {}block; fine-grained per-job permissions were not captured this run (same regex-fallback limitation). Top-level posture is therefore least-privilege-by-default at the workflow root, with grants pushed into jobs.Timeout distribution (per-job declarations)
Most timeouts cluster in the 6–30 minute range; only 3 declarations exceed 60 minutes.
Tool & MCP Patterns
The github MCP server dominates overwhelmingly. The flat per-tool count of 126 across dozens of distinct github tools (
get_commit,get_pull_request,list_branches,issue_read, ...) shows ~126 workflows each mount the same broad github read toolset — a uniform, wide tool surface rather than per-workflow least-privilege subsets.Engine distribution
Interesting Findings
schedule + workflow_dispatch, and 228/236 (97%) exposeworkflow_dispatch.run:steps across 24,644 total, averaging ~50 scripts per lockfile.Historical Trends (vs 2026-05-28)
smoke-copilot)Net: total byte size shrank slightly while step/script counts grew — recompilation trimmed per-file bytes even as a few workflows gained steps. 9 daily snapshots are retained (2026-05-20 → 2026-05-29).
Recommendations
Methodology
Single-script compact JSON analysis: one cached analyzer (
lockfile_stats_v1.py) parses all 236 lockfiles in a single pass into a ≤50 KB JSON summary (4,751 B this run); all reporting derives from that summary plus retained daily history snapshots. 0 files skipped. Note: PyYAML unavailable this run, so structural extraction used regex fallbacks (see Safe Outputs / Permissions caveats).References: §26661883085
Beta Was this translation helpful? Give feedback.
All reactions