Repository navigation
[lockfile-stats] Lockfile Statistics Audit — 2026-10-28 #72749
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #73035. |
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.
Overview
Analyzed all 349 compiled
.github/workflows/*.lock.ymlfiles (0 skipped, 0 parse errors). Total compiled size: 62,818,956 bytes (~59.9 MiB), avg 179,997 B, min 100,543 B, max 347,824 B.Key metrics
workflow_dispatchenabledscheduleenabledTrigger analysis
Top trigger combinations:
schedule+workflow_dispatch216 (61.9%),workflow_dispatchonly 73 (20.9%),pull_request+schedule+workflow_dispatch33,pull_request+workflow_dispatch9,pull_requestonly 3.Cron schedules are highly varied (89 distinct patterns); the dominant single cadence is
0 0 */2 * *(every 2 days) at 61 occurrences — everything else is 1-3 occurrences, mostly unique daily/weekday times, indicating schedules are deliberately staggered rather than bunched.Safe outputs analysis
Universal safe outputs (present in ~342-349/349 workflows as baseline infra):
noop,report_incomplete,report_missing_data,report_missing_tool(342 each),create_report_incomplete_issue(341).Top non-universal safe output types:
Discussion categories (94 workflows configure
create_discussion; 93 categories resolved, 1 unresolved — a 1.06% gap, within the self-check's 10% tolerance, so this is reported as a minor detection gap rather than a failure):safe_outputs_config_missing: 0 — every lockfile exposed a parseableGH_AW_SAFE_OUTPUTS_CONFIG.discussion_category_fallback_parsed: 0 — no regex fallback was needed.Structural characteristics
timeout-minutesdistribution (top values): 5 min ×702, 10 min ×387, 60 min ×338, 15 min ×264, 45 min ×83Permission patterns (agent job, not the always-empty top-level block)
jobs.agent.permissionsby scope (read / write / none across 349 workflows):Notably, the agent job never holds write on contents, issues, or pull-requests in any workflow — all 0 write. Actual writes are delegated to dedicated safe-output jobs, visible in the union-of-all-jobs view:
union_job_permissions_write_count: id-token 349, issues 346, contents 234, copilot-requests 172, pull-requests 162, discussions 98, actions 143, checks 14, security-events 3, others ≤2.Engine distribution
(from
gh-aw-metadataagent_id, 0 unresolved)Top agent models:
copilot/auto(15),copilot/gpt-5(12),copilot/claude-haiku-5.5(7), with a long tail (9 distinct models tied at 6 each).Tool & MCP patterns
mcp_fallback_count: 0 — all server data came from thegh-aw-manifestJSON, no legacy comment-scraping needed. Note:mcp_tool_countscame back empty this run — server-level usage is captured but per-tool granularity isn't yet populated by the analyzer; a future script revision could add this if needed.Interesting findings
workflow_dispatchis near-ubiquitous (339/349, 97.1%) whileschedulecovers 72.5% —schedule+workflow_dispatchalone accounts for 62% of all workflows.create_issue(174) is nearly doublecreate_discussion(93) as the leading non-universal safe output;auditsdominates discussion categories (80/93, 86%).0 0 */2 * *) repeated more than 3 times (61 occurrences) — avoids thundering-herd scheduling.Historical trends (vs. 2026-10-27)
All categorical distributions (triggers, safe outputs, discussion categories, engines, permissions, MCP servers) are byte-for-byte identical day over day — only a routine recompile occurred, with no structural or feature changes to the workflow set.
Recommendations
create_discussioncategory (1/94) is within tolerance but worth a one-off look to confirm it's adefault-category workflow rather than a parser edge case.mcp_tool_countsin a future analyzer revision (lockfile_stats_v5.py) if per-tool MCP usage becomes relevant to future audits.Methodology
Single-script compact JSON analysis — one cached Python analyzer (
lockfile_stats_v4.py) parsed all 349 lockfiles in one pass viayaml.safe_load, extractinggh-aw-metadata/gh-aw-manifestcomments andGH_AW_SAFE_OUTPUTS_CONFIGenv JSON, producing a compact summary consumed in a separate turn.References:
All reactions