Repository navigation
[lockfile-stats] Lockfile Statistics Audit — 2026-10-26 #72174
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #72509. |
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 349 compiled
.github/workflows/*.lock.ymlfiles (0 skipped/malformed) via single-script compact JSON analysis. Total compiled size: 62.74 MB (avg 179.8 KB, min 98.1 KB, max 339.5 KB per lockfile).Key metrics
workflow_dispatchenabledscheduleenabledTrigger analysis
Top combinations:
schedule+workflow_dispatch(216),workflow_dispatchonly (73),pull_request+schedule+workflow_dispatch(33),pull_request+workflow_dispatch(9). Most common cron:0 0 */2 * *(every 2 days) on 61 workflows; the remaining ~190 cron expressions are essentially unique.Safe outputs analysis
Standard safe-output scaffolding (
noop,report_incomplete,report_missing_data,report_missing_tool) appears in 342/349 workflows (98%). Most common functional safe outputs:create_issue(185),create_discussion(92),add_comment(74),create_pull_request(66).Discussion category detection: 93 workflows configure
create_discussion; 92 resolved a category (98.9%), 0 required fallback regex parsing. Category breakdown:audits(79),announcements(5),artifacts(2),dev(2),research(2),general(1),daily-news(1). One workflow'screate_discussionconfig did not resolve a category string — within the 10% detection tolerance, so this is a minor gap, not a detection failure (safe_outputs_config_missing= 0,yaml_available= true).Permission patterns (agent job only)
contents: readis universal (349/349); the agent job itself never holds write for any tracked scope (contents/issues/pull-requests/discussions/actions/packages/deployments/checks/statuses/security-events/pages all show 0 write in the agent job). Onlyid-token: writeappears directly on 4 agent jobs.By contrast, the union across all jobs in each workflow shows pervasive write capability:
id-tokenwrite in all 349 workflows,issueswrite in 346,contentswrite in 232,pull-requestswrite in 153,discussionswrite in 97 — confirming writes are consistently delegated to separate safe-output jobs rather than the agent job, matching the intended privilege-separation design.agent_job_permissions_unknown= 0.Engine distribution (from
gh-aw-metadataagent_id)engine_unknown: 0 (all 349 lockfiles resolved an engine id, no fallback needed).Tool & MCP patterns
Top MCP servers (parsed from
gh-aw-manifest, 0 legacy fallback scrapes needed):safeoutputs(349, universal),github(208),agenticworkflows(44),work-queue(37),mcpscripts(33),serena(24),tavily/sentry(5 each),agy-native/grafana(3 each).Interesting findings
timeout-minutesbuckets moved sharply between the last two runs — the 45-minute bucket dropped from 345 → 72 workflows while the 15-minute bucket rose from 1 → 275. That's a ~273-job swing, consistent with a deliberate batch tightening of a default timeout from 45 to 15 minutes rather than organic per-workflow drift.copilotleads at 41.5% of workflows, but the engine tail is wide: 14 distinct engine ids appear, including niche ones likepydantic-ai,agy, anddeepseek-harnessat 2-3 workflows each.schedule, cron timing is highly fragmented — only one cron expression (0 0 */2 * *, 61 workflows) is shared by more than 3 workflows; the rest are essentially unique, suggesting schedules were hand-set per workflow rather than inherited from a shared template.create_issue(185) is used in more than half of all workflows — roughly double the next most common functional safe output (create_discussion, 92) — making issue creation the dominant non-scaffolding safe output across the fleet.Historical trends (vs 2026-10-25)
The timeout-bucket swing is the standout change this run; all other deltas are consistent with a single new workflow being added, with no other structural shifts.
Recommendations
create_discussionworkflow whose category did not resolve, to bring detection back to 100%.Methodology note: single-script compact JSON analysis — one Python script parsed all lockfiles via
yaml.safe_loadin a single run, with engine/permission/safe-output detection driven bygh-aw-metadata,gh-aw-manifest, andGH_AW_SAFE_OUTPUTS_CONFIGrather than frontmatter assumptions.yaml_available: true; 0 skipped lockfiles; 0 fallback parses needed.References:
All reactions