[lockfile-stats] Lockfile Statistics — 2026-08-21 #54614
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Lockfile Statistics Analysis Agent. A newer discussion is available at Discussion #54908. |
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.
Analysis of all
.github/workflows/*.lock.ymlcompiled agentic workflow files in this repo, generated in a single analyzer script run (see Methodology).Executive summary
File size distribution
Sizes are fairly tight around the mean (min 88 KB, max 232 KB, ~2.6x spread), consistent with all lockfiles sharing a large common compiled boilerplate (safe-outputs runtime, MCP gateway wiring, prompt assembly) with per-workflow content adding relatively little marginal size.
Trigger analysis
Top trigger combinations:
Almost every workflow (279/286, 97.6%) carries
workflow_dispatchfor manual re-runs, and scheduled cron jobs (192) are the dominant automation pattern — the classic gh-aw "daily/periodic agent" shape.Schedule cadence: all sampled crons are daily or weekday-daily (
* * *or* * 1-5) at scattered minute/hour offsets — no two workflows share an exact minute+hour except a cluster of 3 at7 5 * * *— suggesting offsets are deliberately jittered to avoid runner contention.Safe outputs analysis
The "other" bucket is dominated by baseline safety/utility outputs (
noop,missing_tool,missing_data,report_incomplete) that appear in nearly every workflow's safe-outputs config as fallback handlers, not a distinct content-producing output type.Discussion categories (for the 91 workflows using
create-discussion):auditsdominates — consistent with this very workflow's own category — suggesting a large fleet of periodic auditor-style agents publishing findings as discussions.Structural characteristics
Permission patterns
All 286 lockfiles declare
permissions: {}at the top level (zero standing permissions), with 286/286 landing in "none/unset." This confirms gh-aw's design of granting no default GITHUB_TOKEN scopes at the workflow level — any GitHub write access is mediated entirely through the safe-outputs pipeline rather than direct token permissions.Timeout distribution
*Count exceeds 286 because some workflows declare
timeout-minuteson more than one job.Tool & MCP patterns
Copilot-backed engines are the majority (~54%), with Claude-family engines (
claude, plus copilot-hosted claude-sonnet/haiku/opus variants) a strong second cluster once pinned-model variants are combined.MCP servers: the
safeoutputsserver is present in effectively all 286 workflows (it backs the safe-outputs pipeline itself), thegithubMCP server appears in 117 workflows, andagenticworkflowsin 42. Beyond these three, per-server counts could not be reliably enumerated this run — see Methodology/limitations below — so no long-tail server table is included to avoid reporting noise as fact.Interesting findings
permissions: {}, pushing all write access through the safe-outputs broker — a strong, consistent security posture across the whole fleet.workflow_dispatchis nearly universal (97.6%) even though most workflows are schedule-driven, implying manual re-run/debugging is treated as a first-class requirement by convention.audits-category discussions dominate create-discussion usage (78 of 91, ~86%), suggesting this reporting pattern (periodic agent → discussion audit) is the single most common "publish findings" idiom in the repo.Historical trends
No prior-day summary existed in
/tmp/gh-aw/cache-memory/history/before this run, so no trend deltas are available. This run's summary has been saved as the baseline for future comparisons.Recommendations
audits-category discussions are the dominant reporting idiom, a shared "audit discussion" template/skill could reduce duplication across the ~78 workflows using it.claude (${{ needs.activation.outputs.model_size }})) so fleet-wide engine analytics stay accurate.Methodology & limitations
Single-script compact JSON analysis: one Python analyzer script parsed all 286
.lock.ymlfiles in one pass and wrote a compact JSON summary, which was then used as the sole basis for this report (no per-file inspection outside that script).Limitation:
PyYAMLwas not installable in this sandboxed run (no network egress to PyPI), so the analyzer used a dependency-free, indentation-based structural fallback parser instead of a full YAML parser. Triggers, permissions, timeouts, job/step/script counts, engine IDs, and safe-outputs config were extracted with targeted, verified patterns against real gh-aw lockfile structure (e.g. thegh-aw-metadataheader comment andGH_AW_SAFE_OUTPUTS_CONFIGJSON blob) and cross-checked for consistency. MCP server/tool enumeration proved unreliable under this fallback (matched JSON schema field names as false positives) and has been deliberately limited to the three servers that were unambiguous (safeoutputs,github,agenticworkflows) rather than reporting a noisy long tail.All reactions