[lockfile-stats] Lockfile Statistics Audit — 2026-06-08 #37938
Closed
Replies: 1 comment
-
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #38211. |
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 247 compiled workflow lockfiles (
.github/workflows/*.lock.yml) as of 2026-06-08. 0 files were malformed/skipped.The corpus grew by 2 workflows and ~0.7 MB in one day. Lockfiles are large and uniform (every file is 50–250 KB), reflecting the substantial boilerplate the compiler injects per workflow.
File Size Distribution
Four workflows crossed from the 50–100 KB band into 100–250 KB, consistent with the corpus-wide size creep.
Largest & smallest lockfiles
Largest: smoke-copilot-aoai-apikey (172.9 KB), smoke-copilot (172.1 KB), smoke-claude (168.1 KB), smoke-copilot-arm (160.1 KB), smoke-codex (147.0 KB), mcp-inspector (143.5 KB), issue-monster (141.9 KB), deep-report (141.2 KB), cloclo (138.5 KB), daily-news (136.4 KB).
Smallest: test-workflow (73.6 KB), codex-github-remote-mcp-test (74.3 KB), example-permissions-warning (74.3 KB), firewall (75.5 KB), ace-editor (83.0 KB).
The
smoke-*family dominates the top end — multi-engine smoke tests carry the most generated scaffolding.Trigger Analysis
Top combinations:
schedule+workflow_dispatch(163),workflow_dispatchonly (46),pull_request+workflow_dispatch(26).Nearly all workflows (239/247, 97%) expose manual
workflow_dispatch, and 167 are scheduled — confirming this is a primarily cron-driven agentic fleet with a manual-trigger safety valve. 30 distinct cron expressions are in use; most are unique daily times, with a cluster on weekday business hours (* * 1-5).Safe Outputs Analysis
Safe-output type and discussion-category extraction returned empty this run. The analyzer parses lockfiles as text (PyYAML unavailable in the runtime,
yaml_available: false), and the currentv1text patterns do not match how safe-output config is emitted in compiled lockfiles. This is a known analyzer limitation, not an absence of safe outputs — flagged below as a recommendation.Structural Characteristics
run:)Every lockfile carries a heavy, consistent step count (avg ~109), which explains the uniform large file sizes.
Permission Patterns
Top-level
permissionsresolved to empty ({}) for all 247 lockfiles — permissions are scoped per-job rather than at workflow root. Per-job read/write extraction was not captured by thev1text patterns (same YAML-parsing limitation as safe outputs).Timeout & Engine Patterns
Timeout distribution (per job):
Most jobs cap out in a sensible 6–30 minute window; only 3 jobs exceed 60 minutes.
Engine distribution (one per workflow):
Copilot powers 66% of the fleet; Claude 26%. Both new workflows today are Copilot-based.
Tool & MCP Patterns
MCP server references (by occurrence):
The GitHub MCP server is ubiquitous. The most-referenced GitHub tools (128 occurrences each) are read operations:
get_commit,get_file_contents,get_pull_request*,issue_read,list_commits,get_workflow_run*, and the various alert readers (code-scanning, dependabot, secret-scanning) — consistent with a read-only GitHub MCP surface.Interesting Findings
workflow_dispatch, and 163 pair it withschedule— the dominant pattern is "scheduled + manually runnable."smoke-*multi-engine tests (160–173 KB), carrying the most scaffolding.Historical Trends
Comparing 2026-06-07 → 2026-06-08:
Trend is monotonic, low-volatility growth. Trigger mix, cron set, MCP usage, and timeout distribution were essentially stable.
Recommendations
v1text patterns miss safe-output types, discussion categories, and per-job permissions because PyYAML is unavailable. Bump tolockfile_stats_v2.pywith regex patterns matched to the compiled lockfile format, or vendor a minimal YAML parse, to restore those sections.Methodology
Single-script compact JSON analysis: one cached Python analyzer (
lockfile_stats_v1.py) parsed all 247 lockfiles in a single pass and emitted a ~4.7 KB compact JSON summary; all reasoning and trend deltas derive from that summary plus the prior-day snapshot in cache-memory. No lockfiles were opened individually for analysis.References: §27166710157
Beta Was this translation helpful? Give feedback.
All reactions