[lockfile-stats] Lockfile Statistics — 2026-08-22 #54908
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #55163. |
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 289 compiled workflow lockfiles (
.github/workflows/*.lock.yml) totaling 42,667,245 bytes (~40.7 MB), avg 147,638 bytes/file. 0 files skipped as malformed. This is the first run recorded in cache-memory history — no prior-day comparison available yet.Top findings
workflow_dispatch+scheduleis by far the dominant trigger combo (191/289, 66%); 282/289 workflows are manually triggerable viaworkflow_dispatch.create_issue(140),create_discussion(91),add_comment(75),create_pull_request(61),add_labels(32) — derived from the actual per-jobGH_AW_SAFE_OUTPUTS_HANDLER_CONFIGhandler config, not text scanning, so these reflect genuinely enabled outputs per workflow.missing_data/missing_tool/noop/report_incompletesafe-output scaffolding — these are baseline capabilities on most agentic workflows, not indicators of heavy usage.audits(78 workflows) dominates, followed byannouncements(5), withartifacts,dev,research,general,daily-newseach in the single digits.safeoutputs(289, universal),github(119),agenticworkflows(42),serena(25),mcpscripts(12) — a long tail of specialized servers (tavily, sentry, ast-grep, datadog, deepwiki) each used by ≤5 workflows.run:script steps each (max observed: 14 jobs / 202 steps / 83 scripts) — the compiled lockfiles are large primarily due to step count, not per-file bloat outliers (min 88.9 KB, max 238.1 KB, a <3x spread).File size distribution
example-permissions-warning.lock.yml)smoke-copilot.lock.yml)Largest 5:
smoke-copilot(238.1KB),smoke-copilot-aoai-entra(238.0KB),smoke-copilot-aoai-apikey(235.4KB),deep-report(201.4KB),smoke-claude(197.4KB) — the largest files are Copilot-engine smoke tests, likely due to bundled engine-specific tool schemas.Trigger analysis
Top combinations:
schedule+workflow_dispatch(191),workflow_dispatchonly (48),pull_request+workflow_dispatch(37).Most frequent cron times cluster in early UTC morning hours (e.g.
7 5 * * *x3, severalx2entries between 03:00–11:00 UTC) — consistent with staggered daily-batch scheduling to avoid a thundering herd at the top of the hour.Safe outputs analysis
Discussion categories (from
create_discussionconfig):audits(78),announcements(5),artifacts(2),dev(2),research(2),general(1),daily-news(1).Methodology note: the first analyzer pass used raw regex text-scanning, which incorrectly returned ~100% saturation for
create_issue/create_discussion/create_pull_requestbecause tool-schema boilerplate for thesafeoutputsMCP server is embedded in every lockfile regardless of which outputs are actually configured. The analyzer was corrected mid-run to parse the per-jobGH_AW_SAFE_OUTPUTS_HANDLER_CONFIGenv JSON instead, which reflects true per-workflow configuration. The figures above use the corrected method.Structural characteristics
run:) steps/workflowTimeout-minutes distribution across jobs:
10(306 jobs),45(290),60(283),90(3),5(2),120(2),180(1) — the three dominant tiers (10/45/60) likely correspond to standard job roles (detection/activation, agent execution, safe-output handling).Permission patterns & engine distribution
No top-level
permissions:block oruses:-based engine markers were reliably detected via this run's structural heuristics — compiled lockfiles appear to express permissions and engine selection through mechanisms (e.g. per-job env/config or generated step logic) not captured by the current parser. Flagged as a follow-up for the next script iteration rather than reported as "zero permissions" or "no engine in use," which would be misleading.Tool & MCP patterns
All server/tool counts were derived from the
# gh-aw-manifest:JSON comment (no regex fallback needed — 0 workflows required it), so these counts reflect the compiled manifest directly rather than text pattern matching.Recommendations
:00, consider documenting the convention so new workflows follow it by default.Methodology: single-script compact JSON analysis (PyYAML
safe_loadover all.lock.ymlfiles, per-jobGH_AW_SAFE_OUTPUTS_HANDLER_CONFIGparsing for safe-output accuracy,# gh-aw-manifest:JSON for MCP server/tool usage). Script cached at/tmp/gh-aw/cache-memory/scripts/lockfile_stats_v2.py; summary at/tmp/gh-aw/cache-memory/history/2026-08-22.json.References:
All reactions