Repository navigation
[lockfile-stats] Lockfile Statistics Audit — 2026-10-10 #67510
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #67778. |
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.
Analyzed 334 compiled
.github/workflows/*.lock.ymlfiles (0 skipped) via single-script compact JSON analysis.Executive summary
workflow_dispatchpresentcreate_discussionFile size distribution
Trigger analysis
workflow_dispatchschedulepull_requestworkflow_callissuesissue_commentpushTop trigger combinations:
schedule+workflow_dispatch(208),workflow_dispatchonly (71),pull_request+schedule+workflow_dispatch(29),pull_request+workflow_dispatch(9).Top cron frequency:
0 0 */2 * *(every 2 days) — 50 workflows, far ahead of the next-most-common pattern (3 workflows).Safe outputs analysis
Universal safe-output scaffolding appears in ~327/334 workflows:
missing_data,missing_tool,noop,report_incomplete,create_report_incomplete_issue.Most common content-producing safe outputs:
create_issuecreate_discussionadd_commentcreate_pull_requestpush_repo_memoryadd_labelsupload_assetDiscussion categories:
auditsannouncementsartifactsdevresearchgeneraldaily-news1 workflow (
pr-sous-chef.lock.yml) hadcreate_discussionconfigured but no resolvable category.safe_outputs_config_missing= 1 (that same workflow's config was unparsable by the primary extractor).Structural characteristics
Permission patterns (agent job)
All scopes observed are either
readorwritewith zero workflows resolving tononeon tracked scopes, andpermissions_unknown = 0(every lockfile had a parseable agent-job permissions block):contentsissuespull-requestsactionsdiscussionssecurity-eventscopilot-requestsid-tokenNote: the agent job itself is read-only/minimal-write by design — actual mutations happen via safe-output jobs. Union-across-jobs (any job in the workflow) tells the write story: 332/334 workflows (99.4%) grant some write scope somewhere in their job graph, most commonly
issues(332),contents(228),copilot-requests(158),pull-requests(146),discussions(96).Engine distribution (from
gh-aw-metadata.agent_id)engine_unknown = 0— every lockfile resolved to a known engine.Tool & MCP patterns
safeoutputsgithubwork-queueagenticworkflowsmcpscriptsserena7 lockfiles fell back to legacy allowed-tool-comment scraping for MCP detection (no
mcp_serversmanifest array).Interesting findings
copilotis now the dominant engine (136, ~41%), ahead ofcodex(76) andclaude(61) — a notable shift if this repo was previously claude-majority.0 0 */2 * *, suggesting a shared template/default rather than per-workflow tuning.issueswrite being the most common (332).copilot-requests: writeappears in 158 workflows but never asread— a binary all-or-nothing permission for that scope.create_discussionworkflows resolved a category; onlypr-sous-chef.lock.ymlneeds investigation (likely a malformed or non-standard safe-outputs config block).Historical trends (vs. 2026-10-09)
create_discussionworkflowscodexcopilotNet effect: one workflow appears to have migrated from
codextocopilotsince yesterday, with a modest overall size increase (+~0.6 MB across the fleet), consistent with incremental template/scaffolding growth rather than new workflow additions.Recommendations
pr-sous-chef.lock.yml's safe-outputs config — it's the one lockfile with an unresolvedcreate_discussioncategory and a missing parseableGH_AW_SAFE_OUTPUTS_CONFIG.0 0 */2 * *cron cluster is intentional load-spreading or an un-tuned default; bi-daily scheduling at identical times could cause runner contention.copilot-requestswrite permission is granted to 158 workflows with no corresponding read grants anywhere, confirm this is expected (write-only scope) rather than a permission-template artifact.Methodology: single-script compact JSON analysis (
lockfile_stats_v4.py, cached in/tmp/gh-aw/cache-memory/scripts/), summary JSON in/tmp/gh-aw/agent/lockfile-stats-summary.json. Historical comparisons sourced from/tmp/gh-aw/cache-memory/history/.All reactions