You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Top trigger combinations:schedule+workflow_dispatch (214, 62%), workflow_dispatch only (71, 21%), pull_request+schedule+workflow_dispatch (33, 10%), pull_request+workflow_dispatch (9).
Dominant cron:0 0 */2 * * (every 2 days at midnight UTC) used by 60 workflows — far ahead of any other schedule (next most common crons appear only 2–3 times each).
safe_outputs_config_missing: 1 lockfile (same workflow) — no GH_AW_SAFE_OUTPUTS_CONFIG env var found and no text-fallback match either, so its create_discussion usage (if any) could not be confirmed from the lockfile alone.
Structural characteristics
Metric
Total
Avg/workflow
Max
Jobs
2,439
7.1
23
Steps
50,378
146.4
326
Script steps (run:)
22,144
64.4
97
Timeout distribution (per job, top values): 10 min (386), 45 min (341), 60 min (333); long tail from 2–300 min.
Permission patterns (agent job)
Scope
read
write
contents
344 (100%)
0
issues
261 (76%)
0
pull-requests
255 (74%)
0
actions
140 (41%)
0
discussions
53 (15%)
0
copilot-requests
0
166 (48%)
security-events
14 (4%)
0
id-token
0
4 (1%)
The agent job itself is almost entirely read-only; writes happen in separate jobs. Taking the union across all jobs per workflow, write access is far more common: issues write in 342/344 (99%), contents write in 229 (67%), copilot-requests write in 166 (48%), pull-requests write in 151 (44%), discussions write in 96 (28%). 342/344 (99%) workflows grant some write scope somewhere — consistent with the safe-outputs pattern (read-only agent job + a privileged output-application job).
7 lockfiles had no gh-aw-manifest and fell back to scraping allowed-tool comments.
Interesting findings
Nearly every workflow (98%, 337/344) carries the same baseline safe-output scaffold (noop, missing_tool, missing_data, report_incomplete), indicating a shared, consistently-applied template rather than ad hoc configuration.
A single cron expression, 0 0 */2 * *, is used by 60 workflows (17% of all lockfiles) — a notable scheduling concentration that could cause runner contention every other day at 00:00 UTC.
Engine choice is diverse but concentrated: copilot, codex, and claude together account for 81% of workflows, with 10 other engines splitting the remaining 19%.
The agent job is read-only in effectively all workflows (contents: 344/344 read, 0 write), while 99% of workflows grant some write scope via a separate job — the safe-outputs separation-of-privilege pattern is close to universal.
One workflow, pr-sous-chef.lock.yml, is the sole lockfile with neither a resolvable safe-outputs config nor a confirmed discussion category, despite 92 of 93 create_discussion workflows resolving cleanly — worth a manual check for compiler drift.
Historical trends (vs. 2026-10-15)
Metric
2026-10-15
2026-10-16
Δ
Lockfiles
344
344
0
Total bytes
56,086,698
56,333,124
+246,426 (+0.44%)
Avg bytes
163,042.7
163,759.1
+716.4
Max bytes
291,249
298,218
+6,969
Total steps
50,326
50,378
+52
Script steps
22,093
22,144
+51
No changes in trigger mix, safe-output types, engine distribution, or permission patterns day-over-day — growth is incremental (existing workflows gained a few steps/bytes), not structural.
Recommendations
Investigate pr-sous-chef.lock.yml for a missing/malformed GH_AW_SAFE_OUTPUTS_CONFIG emission.
Consider spreading the 60 workflows sharing the 0 0 */2 * * cron across different times to reduce simultaneous runner load.
Review the long tail of single-use safe-output integrations (jira_*, linear_create_issue, Slack posting variants) for consolidation opportunities.
Engine/permission/discussion-category detection all resolved cleanly (0 unknown engines, 0 unknown permissions, 1 unresolved category) — current compiler output remains consistent with this analyzer's assumptions; no schema changes needed.
Methodology
Single-script compact JSON analysis: one cached Python analyzer (lockfile_stats_v4.py, reused from cache-memory) parsed all .github/workflows/*.lock.yml files in one pass, extracting engine/permission/safe-output signals from gh-aw-metadata/gh-aw-manifest header comments and the GH_AW_SAFE_OUTPUTS_CONFIG env var (with regex fallback), and wrote a compact summary JSON consumed for this report.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Executive summary
.lock.ymlworkflows analyzed, 0 skippedcreate_discussion; discussion categories resolved for 92/93File size distribution
Trigger analysis
Top trigger combinations:
schedule+workflow_dispatch(214, 62%),workflow_dispatchonly (71, 21%),pull_request+schedule+workflow_dispatch(33, 10%),pull_request+workflow_dispatch(9).Dominant cron:
0 0 */2 * *(every 2 days at midnight UTC) used by 60 workflows — far ahead of any other schedule (next most common crons appear only 2–3 times each).Safe outputs analysis
Long tail (1–10 workflows each):
upload_artifact,create_check_run,update_issue,push_to_pull_request_branch,dispatch_workflow,close_issue,remove_labels,ledger_append,assign_to_agent,link_sub_issue, plus one-off integrations (jira_*,linear_create_issue,send-slack-message,create_code_scanning_alert, etc).Discussion categories (92 resolved of 93 configured):
Detection gap detail
discussion_category_unresolved: 1 workflow —pr-sous-chef.lock.ymlsafe_outputs_config_missing: 1 lockfile (same workflow) — noGH_AW_SAFE_OUTPUTS_CONFIGenv var found and no text-fallback match either, so itscreate_discussionusage (if any) could not be confirmed from the lockfile alone.Structural characteristics
run:)Timeout distribution (per job, top values): 10 min (386), 45 min (341), 60 min (333); long tail from 2–300 min.
Permission patterns (agent job)
The agent job itself is almost entirely read-only; writes happen in separate jobs. Taking the union across all jobs per workflow, write access is far more common:
issueswrite in 342/344 (99%),contentswrite in 229 (67%),copilot-requestswrite in 166 (48%),pull-requestswrite in 151 (44%),discussionswrite in 96 (28%). 342/344 (99%) workflows grant some write scope somewhere — consistent with the safe-outputs pattern (read-only agent job + a privileged output-application job).Engine distribution
(from
gh-aw-metadata→agent_id, 0 unknown)Tool & MCP patterns
7 lockfiles had no
gh-aw-manifestand fell back to scraping allowed-tool comments.Interesting findings
noop,missing_tool,missing_data,report_incomplete), indicating a shared, consistently-applied template rather than ad hoc configuration.0 0 */2 * *, is used by 60 workflows (17% of all lockfiles) — a notable scheduling concentration that could cause runner contention every other day at 00:00 UTC.copilot,codex, andclaudetogether account for 81% of workflows, with 10 other engines splitting the remaining 19%.pr-sous-chef.lock.yml, is the sole lockfile with neither a resolvable safe-outputs config nor a confirmed discussion category, despite 92 of 93create_discussionworkflows resolving cleanly — worth a manual check for compiler drift.Historical trends (vs. 2026-10-15)
No changes in trigger mix, safe-output types, engine distribution, or permission patterns day-over-day — growth is incremental (existing workflows gained a few steps/bytes), not structural.
Recommendations
pr-sous-chef.lock.ymlfor a missing/malformedGH_AW_SAFE_OUTPUTS_CONFIGemission.0 0 */2 * *cron across different times to reduce simultaneous runner load.jira_*,linear_create_issue, Slack posting variants) for consolidation opportunities.Methodology
Single-script compact JSON analysis: one cached Python analyzer (
lockfile_stats_v4.py, reused from cache-memory) parsed all.github/workflows/*.lock.ymlfiles in one pass, extracting engine/permission/safe-output signals fromgh-aw-metadata/gh-aw-manifestheader comments and theGH_AW_SAFE_OUTPUTS_CONFIGenv var (with regex fallback), and wrote a compact summary JSON consumed for this report.References: §38961698540
All reactions