@hybridlabor-api/aos 4.8.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/.agents/{agents.md → AGENTS.md} +3 -1
  2. package/.agents/nodes.json +3 -1
  3. package/.agents/vendor-manifest.json +23 -1
  4. package/.claude/agents/godmode-media-eventtech.md +1 -1
  5. package/.claude/hooks/conventional-commits.mjs +125 -0
  6. package/.claude/hooks/env-file-protection.mjs +105 -0
  7. package/.claude/hooks/go-gate.mjs +101 -81
  8. package/.claude/hooks/memb-inject.mjs +29 -1
  9. package/.claude/settings.json +13 -0
  10. package/.claude/workflows/startcycle-dispatch.mjs +23 -1
  11. package/.opencode/agents/godmode-media-eventtech.md +1 -1
  12. package/.opencode/plugins/bdb-aos.js +31 -4
  13. package/CLAUDE.md +0 -571
  14. package/README.de.md +1 -1
  15. package/README.md +1 -1
  16. package/README.pt.md +1 -1
  17. package/THIRD_PARTY_NOTICES.md +126 -0
  18. package/bin/aos-doctor.mjs +1 -1
  19. package/docs/skills_table.md +1 -1
  20. package/installer.js +187 -55
  21. package/package.json +7 -3
  22. package/packages/aos-cli/README.md +80 -0
  23. package/packages/aos-cli/bin/aos-cli.mjs +134 -0
  24. package/packages/aos-cli/core-skills.json +12 -0
  25. package/packages/aos-cli/extensions/aos.ts +321 -0
  26. package/packages/aos-cli/package-lock.json +1923 -0
  27. package/packages/aos-cli/package.json +29 -0
  28. package/packages/aos-cli/scripts/check-theme.mjs +63 -0
  29. package/packages/aos-cli/themes/aos.json +97 -0
  30. package/scripts/build-plugin-manifest.mjs +131 -0
  31. package/scripts/validate-skills.mjs +81 -6
  32. package/skills/basic/ao-orchestrator/SKILL.md +116 -0
  33. package/skills/basic/bdb-eventagency-skill/SKILL.md +252 -0
  34. package/skills/basic/bdb-shipping-skill/SKILL.md +161 -0
  35. package/skills/basic/godmode-eventtech/SKILL.md +4 -1
  36. package/skills/global_config/agenttrail/SKILL.md +6 -1
  37. package/skills/global_config/aos-project-init/SKILL.md +2 -0
  38. package/skills/global_config/aos-project-init/assets/AGENTS.template.md +1 -1
  39. package/skills/global_config/aos-project-init/scripts/aos-project-doctor.mjs +1 -1
  40. package/skills/global_config/aos-setup/SKILL.md +1 -1
  41. package/skills/global_config/aos-setup/scripts/aos-doctor.mjs +1 -1
  42. package/skills/global_config/ask-tim/SKILL.md +7 -7
  43. package/skills/global_config/bash-script-generator/SKILL.md +201 -0
  44. package/skills/global_config/bash-script-generator/assets/templates/standard-template.sh +96 -0
  45. package/skills/global_config/bash-script-generator/docs/bash-scripting-guide.md +729 -0
  46. package/skills/global_config/bash-script-generator/docs/generation-best-practices.md +193 -0
  47. package/skills/global_config/bash-script-generator/docs/script-patterns.md +566 -0
  48. package/skills/global_config/bash-script-generator/docs/text-processing-guide.md +437 -0
  49. package/skills/global_config/bash-script-generator/examples/log-analyzer.sh +92 -0
  50. package/skills/global_config/bash-script-generator/scripts/generate_script_template.sh +123 -0
  51. package/skills/global_config/bash-script-generator/scripts/run_ci_checks.sh +172 -0
  52. package/skills/global_config/bash-script-generator/scripts/test_generator.sh +413 -0
  53. package/skills/global_config/bash-script-validator/SKILL.md +249 -0
  54. package/skills/global_config/bash-script-validator/docs/awk-reference.md +449 -0
  55. package/skills/global_config/bash-script-validator/docs/bash-reference.md +468 -0
  56. package/skills/global_config/bash-script-validator/docs/common-mistakes.md +623 -0
  57. package/skills/global_config/bash-script-validator/docs/grep-reference.md +395 -0
  58. package/skills/global_config/bash-script-validator/docs/regex-reference.md +391 -0
  59. package/skills/global_config/bash-script-validator/docs/sed-reference.md +454 -0
  60. package/skills/global_config/bash-script-validator/docs/shell-reference.md +463 -0
  61. package/skills/global_config/bash-script-validator/docs/shellcheck-reference.md +399 -0
  62. package/skills/global_config/bash-script-validator/examples/bad-bash.sh +55 -0
  63. package/skills/global_config/bash-script-validator/examples/bad-shell.sh +54 -0
  64. package/skills/global_config/bash-script-validator/examples/good-bash.sh +71 -0
  65. package/skills/global_config/bash-script-validator/examples/good-shell.sh +69 -0
  66. package/skills/global_config/bash-script-validator/scripts/run_ci_checks.sh +23 -0
  67. package/skills/global_config/bash-script-validator/scripts/shellcheck_wrapper.sh +174 -0
  68. package/skills/global_config/bash-script-validator/scripts/test_validate.sh +446 -0
  69. package/skills/global_config/bash-script-validator/scripts/validate.sh +512 -0
  70. package/skills/global_config/ci-pipeline/SKILL.md +135 -0
  71. package/skills/global_config/deja-memory/SKILL.md +3 -1
  72. package/skills/global_config/dispatching-parallel-agents/SKILL.md +170 -0
  73. package/skills/global_config/dockerfile-generator/SKILL.md +1038 -0
  74. package/skills/global_config/dockerfile-generator/examples/example.dockerignore +95 -0
  75. package/skills/global_config/dockerfile-generator/examples/golang-distroless.Dockerfile +34 -0
  76. package/skills/global_config/dockerfile-generator/examples/java-springboot.Dockerfile +45 -0
  77. package/skills/global_config/dockerfile-generator/examples/nextjs-production.Dockerfile +49 -0
  78. package/skills/global_config/dockerfile-generator/examples/nodejs-multistage.Dockerfile +55 -0
  79. package/skills/global_config/dockerfile-generator/examples/python-fastapi.Dockerfile +48 -0
  80. package/skills/global_config/dockerfile-generator/references/language_specific_guides.md +510 -0
  81. package/skills/global_config/dockerfile-generator/references/multistage_builds.md +570 -0
  82. package/skills/global_config/dockerfile-generator/references/optimization_patterns.md +492 -0
  83. package/skills/global_config/dockerfile-generator/references/security_best_practices.md +375 -0
  84. package/skills/global_config/dockerfile-generator/scripts/generate_dockerignore.sh +199 -0
  85. package/skills/global_config/dockerfile-generator/scripts/generate_golang.sh +172 -0
  86. package/skills/global_config/dockerfile-generator/scripts/generate_java.sh +185 -0
  87. package/skills/global_config/dockerfile-generator/scripts/generate_nodejs.sh +279 -0
  88. package/skills/global_config/dockerfile-generator/scripts/generate_python.sh +218 -0
  89. package/skills/global_config/dockerfile-generator/scripts/test_generator.sh +210 -0
  90. package/skills/global_config/dockerfile-validator/SKILL.md +300 -0
  91. package/skills/global_config/dockerfile-validator/examples/.dockerignore.example +34 -0
  92. package/skills/global_config/dockerfile-validator/examples/bad-example.Dockerfile +37 -0
  93. package/skills/global_config/dockerfile-validator/examples/golang-distroless.Dockerfile +50 -0
  94. package/skills/global_config/dockerfile-validator/examples/good-example.Dockerfile +52 -0
  95. package/skills/global_config/dockerfile-validator/examples/python-optimized.Dockerfile +53 -0
  96. package/skills/global_config/dockerfile-validator/examples/security-issues.Dockerfile +42 -0
  97. package/skills/global_config/dockerfile-validator/references/docker_best_practices.md +348 -0
  98. package/skills/global_config/dockerfile-validator/references/optimization_guide.md +473 -0
  99. package/skills/global_config/dockerfile-validator/references/security_checklist.md +208 -0
  100. package/skills/global_config/dockerfile-validator/scripts/dockerfile-validate.sh +699 -0
  101. package/skills/global_config/dockerfile-validator/scripts/test_validate.sh +35 -0
  102. package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn-lock-read.Dockerfile +6 -0
  103. package/skills/global_config/dockerfile-validator/tests/fixtures/copy-before-yarn.Dockerfile +6 -0
  104. package/skills/global_config/dockerfile-validator/tests/fixtures/from-platform-nonroot.Dockerfile +7 -0
  105. package/skills/global_config/dockerfile-validator/tests/test_regression.sh +164 -0
  106. package/skills/global_config/finishing-a-development-branch/SKILL.md +228 -0
  107. package/skills/global_config/github-actions-generator/SKILL.md +353 -0
  108. package/skills/global_config/github-actions-generator/assets/templates/action/composite/action.yml +82 -0
  109. package/skills/global_config/github-actions-generator/assets/templates/action/docker/Dockerfile +25 -0
  110. package/skills/global_config/github-actions-generator/assets/templates/action/docker/action.yml +42 -0
  111. package/skills/global_config/github-actions-generator/assets/templates/action/docker/entrypoint.sh +27 -0
  112. package/skills/global_config/github-actions-generator/assets/templates/action/javascript/action.yml +33 -0
  113. package/skills/global_config/github-actions-generator/assets/templates/action/javascript/index.js +50 -0
  114. package/skills/global_config/github-actions-generator/assets/templates/action/javascript/package.json +27 -0
  115. package/skills/global_config/github-actions-generator/assets/templates/workflow/basic_workflow.yml +242 -0
  116. package/skills/global_config/github-actions-generator/assets/templates/workflow/reusable_workflow.yml +106 -0
  117. package/skills/global_config/github-actions-generator/examples/README.md +147 -0
  118. package/skills/global_config/github-actions-generator/examples/actions/setup-node-cached/action.yml +93 -0
  119. package/skills/global_config/github-actions-generator/examples/caching/docker-buildkit.yml +256 -0
  120. package/skills/global_config/github-actions-generator/examples/security/dependency-review.yml +62 -0
  121. package/skills/global_config/github-actions-generator/examples/security/sbom-attestation.yml +119 -0
  122. package/skills/global_config/github-actions-generator/examples/triggers/chatops-commands.yml +475 -0
  123. package/skills/global_config/github-actions-generator/examples/triggers/repository-dispatch.yml +418 -0
  124. package/skills/global_config/github-actions-generator/examples/triggers/workflow-orchestration.yml +404 -0
  125. package/skills/global_config/github-actions-generator/examples/workflows/docker-build-push.yml +68 -0
  126. package/skills/global_config/github-actions-generator/examples/workflows/go-ci.yml +161 -0
  127. package/skills/global_config/github-actions-generator/examples/workflows/monorepo-ci.yml +340 -0
  128. package/skills/global_config/github-actions-generator/examples/workflows/multi-environment-deploy.yml +406 -0
  129. package/skills/global_config/github-actions-generator/examples/workflows/nodejs-ci.yml +122 -0
  130. package/skills/global_config/github-actions-generator/examples/workflows/python-ci.yml +157 -0
  131. package/skills/global_config/github-actions-generator/examples/workflows/scheduled-tasks.yml +376 -0
  132. package/skills/global_config/github-actions-generator/references/advanced-triggers.md +917 -0
  133. package/skills/global_config/github-actions-generator/references/best-practices.md +755 -0
  134. package/skills/global_config/github-actions-generator/references/common-actions.md +715 -0
  135. package/skills/global_config/github-actions-generator/references/custom-actions.md +320 -0
  136. package/skills/global_config/github-actions-generator/references/expressions-and-contexts.md +688 -0
  137. package/skills/global_config/github-actions-generator/references/modern-features.md +421 -0
  138. package/skills/global_config/github-actions-generator/scripts/test_generator.sh +344 -0
  139. package/skills/global_config/github-actions-templates/SKILL.md +7 -0
  140. package/skills/global_config/github-actions-validator/SKILL.md +576 -0
  141. package/skills/global_config/github-actions-validator/examples/README.md +88 -0
  142. package/skills/global_config/github-actions-validator/examples/outdated-versions.yml +76 -0
  143. package/skills/global_config/github-actions-validator/examples/valid-ci.yml +79 -0
  144. package/skills/global_config/github-actions-validator/examples/with-errors.yml +47 -0
  145. package/skills/global_config/github-actions-validator/references/act_usage.md +233 -0
  146. package/skills/global_config/github-actions-validator/references/action_versions.md +122 -0
  147. package/skills/global_config/github-actions-validator/references/actionlint_usage.md +343 -0
  148. package/skills/global_config/github-actions-validator/references/common_errors.md +512 -0
  149. package/skills/global_config/github-actions-validator/references/modern_features.md +384 -0
  150. package/skills/global_config/github-actions-validator/references/runners.md +317 -0
  151. package/skills/global_config/github-actions-validator/scripts/install_tools.sh +113 -0
  152. package/skills/global_config/github-actions-validator/scripts/validate_workflow.sh +910 -0
  153. package/skills/global_config/github-actions-validator/tests/test_validate_workflow.sh +237 -0
  154. package/skills/global_config/makefile-generator/SKILL.md +614 -0
  155. package/skills/global_config/makefile-generator/assets/templates/.gitkeep +1 -0
  156. package/skills/global_config/makefile-generator/docs/makefile-structure.md +530 -0
  157. package/skills/global_config/makefile-generator/docs/optimization-guide.md +784 -0
  158. package/skills/global_config/makefile-generator/docs/patterns-guide.md +642 -0
  159. package/skills/global_config/makefile-generator/docs/security-guide.md +361 -0
  160. package/skills/global_config/makefile-generator/docs/targets-guide.md +642 -0
  161. package/skills/global_config/makefile-generator/docs/variables-guide.md +596 -0
  162. package/skills/global_config/makefile-generator/scripts/add_standard_targets.sh +539 -0
  163. package/skills/global_config/makefile-generator/scripts/generate_makefile_template.sh +690 -0
  164. package/skills/global_config/makefile-generator/test/test_helper_scripts.sh +190 -0
  165. package/skills/global_config/makefile-validator/SKILL.md +244 -0
  166. package/skills/global_config/makefile-validator/docs/bake-tool.md +1000 -0
  167. package/skills/global_config/makefile-validator/docs/best-practices.md +858 -0
  168. package/skills/global_config/makefile-validator/docs/common-mistakes.md +944 -0
  169. package/skills/global_config/makefile-validator/examples/bad-makefile.mk +77 -0
  170. package/skills/global_config/makefile-validator/examples/good-makefile.mk +103 -0
  171. package/skills/global_config/makefile-validator/scripts/test_validate.sh +382 -0
  172. package/skills/global_config/makefile-validator/scripts/validate_makefile.sh +712 -0
  173. package/skills/global_config/{MCP_Manage → mcp-manage}/SKILL.md +3 -3
  174. package/skills/global_config/plan-canvas/SKILL.md +9 -2
  175. package/skills/global_config/plan-canvas/scripts/lib/plan-canvas/ui.js +10 -2
  176. package/skills/global_config/plan-canvas/scripts/plan-canvas.js +1 -1
  177. package/skills/global_config/read-the-damn-docs/SKILL.md +175 -0
  178. package/skills/global_config/requesting-code-review/SKILL.md +98 -0
  179. package/skills/global_config/requesting-code-review/code-reviewer.md +198 -0
  180. package/skills/global_config/using-git-worktrees/SKILL.md +170 -0
  181. package/skills/global_config/verification-before-completion/SKILL.md +123 -0
  182. package/skills/global_config/writing-plans/SKILL.md +126 -46
  183. package/skills/global_config/writing-plans-legacy/SKILL.md +152 -0
  184. package/.claude/CLAUDE.md +0 -12
  185. package/mcps/RhinoMCP/docs/content/docs/getting-started/gemini.md +0 -61
  186. /package/{GEMINI.md → RULES.md} +0 -0
@@ -0,0 +1,384 @@
1
+ # Modern GitHub Actions Features Reference
2
+
3
+ This reference covers validation of modern GitHub Actions features including reusable workflows, attestations, OIDC authentication, and more.
4
+
5
+ ## Reusable Workflows
6
+
7
+ ### Validation Points
8
+ - `workflow_call` trigger configuration
9
+ - Required and optional inputs with correct types
10
+ - Secrets declaration and usage
11
+ - Outputs definition
12
+
13
+ ### Example
14
+
15
+ ```yaml
16
+ # Reusable workflow (.github/workflows/reusable-deploy.yml)
17
+ on:
18
+ workflow_call:
19
+ inputs:
20
+ environment:
21
+ required: true
22
+ type: string
23
+ deploy-version:
24
+ required: false
25
+ type: string
26
+ default: 'latest'
27
+ secrets:
28
+ deploy-token:
29
+ required: true
30
+ outputs:
31
+ deployment-url:
32
+ description: "The URL of the deployment"
33
+ value: ${{ jobs.deploy.outputs.url }}
34
+
35
+ jobs:
36
+ deploy:
37
+ runs-on: ubuntu-latest
38
+ outputs:
39
+ url: ${{ steps.deploy.outputs.url }}
40
+ steps:
41
+ - name: Deploy
42
+ id: deploy
43
+ run: echo "url=https://example.com" >> $GITHUB_OUTPUT
44
+ ```
45
+
46
+ ### Common Errors
47
+ - Incorrect input types (string, number, boolean)
48
+ - Missing required secrets
49
+ - Invalid output references
50
+
51
+ ### Workflow Limits (November 2025)
52
+
53
+ GitHub Actions increased reusable workflow limits:
54
+ - **Nested workflows**: Up to 10 levels (previously 4)
55
+ - **Total workflows per run**: Up to 50 workflows (previously 20)
56
+
57
+ This enables complex workflow compositions and better code reuse.
58
+
59
+ ---
60
+
61
+ ## SBOM and Build Provenance Attestations
62
+
63
+ ### Validation Points
64
+ - Correct permissions (`id-token: write`, `attestations: write`)
65
+ - Valid artifact paths
66
+ - Proper attestation action usage
67
+
68
+ ### Example
69
+
70
+ ```yaml
71
+ permissions:
72
+ id-token: write
73
+ contents: read
74
+ attestations: write
75
+
76
+ jobs:
77
+ build:
78
+ runs-on: ubuntu-latest
79
+ steps:
80
+ - uses: actions/checkout@v6
81
+
82
+ - name: Build artifact
83
+ run: |
84
+ mkdir -p dist
85
+ tar -czvf dist/app.tar.gz ./src
86
+
87
+ - name: Generate SBOM
88
+ run: |
89
+ # Generate SPDX SBOM
90
+ syft ./src -o spdx-json > sbom.spdx.json
91
+
92
+ - uses: actions/attest-sbom@v3
93
+ with:
94
+ subject-path: '${{ github.workspace }}/dist/*.tar.gz'
95
+ sbom-path: '${{ github.workspace }}/sbom.spdx.json'
96
+
97
+ - uses: actions/attest-build-provenance@v3
98
+ with:
99
+ subject-path: '${{ github.workspace }}/dist/*.tar.gz'
100
+ ```
101
+
102
+ ### Common Errors
103
+ - Missing required permissions
104
+ - Invalid subject-path glob patterns
105
+ - Incorrect SBOM format
106
+
107
+ ---
108
+
109
+ ## OIDC Authentication
110
+
111
+ ### Validation Points
112
+ - Correct permissions (`id-token: write`)
113
+ - Valid audience claims
114
+ - Proper OIDC provider configuration
115
+ - Token claim validation in receiving systems
116
+
117
+ ### Available Token Claims (November 2025)
118
+
119
+ | Claim | Description |
120
+ |-------|-------------|
121
+ | `repository` | Repository name |
122
+ | `ref` | Git ref (branch/tag) |
123
+ | `sha` | Commit SHA |
124
+ | `workflow` | Workflow name |
125
+ | `run_id` | Workflow run ID |
126
+ | `run_attempt` | Attempt number |
127
+ | `check_run_id` | **NEW** - Specific check run ID for the job |
128
+ | `actor` | User who triggered the workflow |
129
+ | `environment` | Deployment environment (if applicable) |
130
+
131
+ ### Example: AWS OIDC
132
+
133
+ ```yaml
134
+ permissions:
135
+ id-token: write
136
+ contents: read
137
+
138
+ jobs:
139
+ deploy:
140
+ runs-on: ubuntu-latest
141
+ steps:
142
+ - name: Configure AWS Credentials
143
+ uses: aws-actions/configure-aws-credentials@v4
144
+ with:
145
+ role-to-assume: arn:aws:iam::123456789012:role/GitHubActionsRole
146
+ aws-region: us-east-1
147
+ # Token now includes check_run_id for granular tracking
148
+
149
+ - name: Deploy to AWS
150
+ run: aws s3 sync ./build s3://my-bucket/
151
+ ```
152
+
153
+ ### AWS IAM Policy with check_run_id
154
+
155
+ ```json
156
+ {
157
+ "Version": "2012-10-17",
158
+ "Statement": [{
159
+ "Effect": "Allow",
160
+ "Principal": {
161
+ "Federated": "arn:aws:iam::123456789012:oidc-provider/token.actions.githubusercontent.com"
162
+ },
163
+ "Action": "sts:AssumeRoleWithWebIdentity",
164
+ "Condition": {
165
+ "StringEquals": {
166
+ "token.actions.githubusercontent.com:sub": "repo:org/repo:ref:refs/heads/main",
167
+ "token.actions.githubusercontent.com:aud": "sts.amazonaws.com"
168
+ },
169
+ "StringLike": {
170
+ "token.actions.githubusercontent.com:check_run_id": "*"
171
+ }
172
+ }
173
+ }]
174
+ }
175
+ ```
176
+
177
+ ### Benefits of check_run_id
178
+ - **Fine-grained access control**: Trace tokens to exact job and compute
179
+ - **Improved auditability**: Track which specific check run made API calls
180
+ - **Least-privilege policies**: Attribute-based access control without enumerating repositories
181
+ - **Faster revocation**: Reduce secret exposure risk
182
+
183
+ ---
184
+
185
+ ## Deployment Environments
186
+
187
+ ### Validation Points
188
+ - Environment name configuration
189
+ - Protection rules compatibility
190
+ - Required reviewers setup
191
+ - Environment variables and secrets scope
192
+
193
+ ### Example
194
+
195
+ ```yaml
196
+ jobs:
197
+ deploy-staging:
198
+ runs-on: ubuntu-latest
199
+ environment:
200
+ name: staging
201
+ url: https://staging.example.com
202
+ steps:
203
+ - uses: actions/checkout@v6
204
+ - run: ./deploy.sh staging
205
+
206
+ deploy-production:
207
+ runs-on: ubuntu-latest
208
+ needs: deploy-staging
209
+ environment:
210
+ name: production
211
+ url: https://prod.example.com
212
+ steps:
213
+ - uses: actions/checkout@v6
214
+ - run: ./deploy.sh production
215
+ ```
216
+
217
+ ### Common Errors
218
+ - Undefined environment names
219
+ - Missing URL for environment tracking
220
+ - Incorrect environment variable scope
221
+
222
+ ---
223
+
224
+ ## Job Summaries
225
+
226
+ ### Validation Points
227
+ - Correct usage of `$GITHUB_STEP_SUMMARY`
228
+ - Valid Markdown formatting
229
+ - Proper escaping of dynamic content
230
+
231
+ ### Example
232
+
233
+ ```yaml
234
+ steps:
235
+ - name: Run tests
236
+ id: tests
237
+ run: |
238
+ # Run tests and capture results
239
+ npm test 2>&1 | tee test-output.txt
240
+ PASSED=$(grep -c "PASS" test-output.txt || echo 0)
241
+ FAILED=$(grep -c "FAIL" test-output.txt || echo 0)
242
+ echo "passed=$PASSED" >> $GITHUB_OUTPUT
243
+ echo "failed=$FAILED" >> $GITHUB_OUTPUT
244
+
245
+ - name: Generate summary
246
+ run: |
247
+ echo "## Test Results" >> $GITHUB_STEP_SUMMARY
248
+ echo "" >> $GITHUB_STEP_SUMMARY
249
+ echo "| Status | Count |" >> $GITHUB_STEP_SUMMARY
250
+ echo "|--------|-------|" >> $GITHUB_STEP_SUMMARY
251
+ echo "| Passed | ${{ steps.tests.outputs.passed }} |" >> $GITHUB_STEP_SUMMARY
252
+ echo "| Failed | ${{ steps.tests.outputs.failed }} |" >> $GITHUB_STEP_SUMMARY
253
+ ```
254
+
255
+ **Note:** Job summaries are runtime features - actionlint validates script syntax but not summary content.
256
+
257
+ ---
258
+
259
+ ## Container Jobs
260
+
261
+ ### Validation Points
262
+ - Valid container image references
263
+ - Correct volume mounts
264
+ - Environment variable configuration
265
+ - Service container networking
266
+
267
+ ### Example
268
+
269
+ ```yaml
270
+ jobs:
271
+ test:
272
+ runs-on: ubuntu-latest
273
+ container:
274
+ image: node:24
275
+ env:
276
+ NODE_ENV: test
277
+ volumes:
278
+ - /data:/data
279
+
280
+ services:
281
+ postgres:
282
+ image: postgres:16
283
+ env:
284
+ POSTGRES_PASSWORD: postgres
285
+ POSTGRES_DB: testdb
286
+ ports:
287
+ - 5432:5432
288
+ options: >-
289
+ --health-cmd pg_isready
290
+ --health-interval 10s
291
+ --health-timeout 5s
292
+ --health-retries 5
293
+
294
+ redis:
295
+ image: redis:7
296
+ ports:
297
+ - 6379:6379
298
+
299
+ steps:
300
+ - uses: actions/checkout@v6
301
+
302
+ - name: Install dependencies
303
+ run: npm ci
304
+
305
+ - name: Run tests
306
+ env:
307
+ DATABASE_URL: postgres://postgres:postgres@postgres:5432/testdb
308
+ REDIS_URL: redis://redis:6379
309
+ run: npm test
310
+ ```
311
+
312
+ ### Common Errors
313
+ - Invalid image tags
314
+ - Incorrect volume mount syntax
315
+ - Service container networking issues
316
+ - Missing health checks for services
317
+
318
+ ---
319
+
320
+ ## Matrix Strategies
321
+
322
+ ### Validation Points
323
+ - Matrix values must be arrays
324
+ - Valid matrix variable references
325
+ - Proper include/exclude syntax
326
+
327
+ ### Example
328
+
329
+ ```yaml
330
+ jobs:
331
+ test:
332
+ runs-on: ${{ matrix.os }}
333
+ strategy:
334
+ fail-fast: false
335
+ matrix:
336
+ os: [ubuntu-latest, windows-latest, macos-latest]
337
+ node: [20, 22, 24]
338
+ exclude:
339
+ - os: macos-latest
340
+ node: 20
341
+ include:
342
+ - os: ubuntu-latest
343
+ node: 24
344
+ experimental: true
345
+
346
+ steps:
347
+ - uses: actions/checkout@v6
348
+ - uses: actions/setup-node@v6
349
+ with:
350
+ node-version: ${{ matrix.node }}
351
+ - run: npm test
352
+ ```
353
+
354
+ ---
355
+
356
+ ## Concurrency Control
357
+
358
+ ### Validation Points
359
+ - Valid concurrency group names
360
+ - Proper cancel-in-progress usage
361
+
362
+ ### Example
363
+
364
+ ```yaml
365
+ name: CI
366
+
367
+ on:
368
+ push:
369
+ branches: [main]
370
+ pull_request:
371
+
372
+ concurrency:
373
+ group: ${{ github.workflow }}-${{ github.ref }}
374
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
375
+
376
+ jobs:
377
+ build:
378
+ runs-on: ubuntu-latest
379
+ steps:
380
+ - uses: actions/checkout@v6
381
+ - run: npm ci && npm run build
382
+ ```
383
+
384
+ This prevents redundant runs while protecting main branch runs from cancellation.
@@ -0,0 +1,317 @@
1
+ # GitHub-Hosted Runners Reference (2025)
2
+
3
+ This reference covers all GitHub-hosted runner types, including recent additions and deprecations.
4
+
5
+ ## Standard Runner Labels
6
+
7
+ ### Ubuntu
8
+
9
+ ```yaml
10
+ runs-on: ubuntu-latest # Ubuntu 24.04 (default)
11
+ runs-on: ubuntu-24.04 # Ubuntu 24.04
12
+ runs-on: ubuntu-22.04 # Ubuntu 22.04
13
+ runs-on: ubuntu-20.04 # Ubuntu 20.04
14
+ ```
15
+
16
+ ### Windows
17
+
18
+ ```yaml
19
+ runs-on: windows-latest # Windows Server 2022 (default)
20
+ runs-on: windows-2025 # Windows Server 2025 (NEW)
21
+ runs-on: windows-2022 # Windows Server 2022
22
+ runs-on: windows-2019 # Windows Server 2019
23
+ ```
24
+
25
+ ### macOS
26
+
27
+ ```yaml
28
+ runs-on: macos-latest # macOS 15 (as of Aug 2025)
29
+ runs-on: macos-15 # macOS 15 Sequoia (Apple Silicon)
30
+ runs-on: macos-14 # macOS 14 Sonoma (Apple Silicon)
31
+ runs-on: macos-26 # macOS 26 (PREVIEW)
32
+ ```
33
+
34
+ ---
35
+
36
+ ## macOS Runner Updates and Deprecations
37
+
38
+ ### Current Status
39
+
40
+ | Label | Status | Architecture | Notes |
41
+ |-------|--------|--------------|-------|
42
+ | `macos-latest` | **Active** | ARM64 (Apple Silicon) | Points to macOS 15 |
43
+ | `macos-15` | **Active** | ARM64 (Apple Silicon) | M1/M2/M3 |
44
+ | `macos-14` | **Active** | ARM64 (Apple Silicon) | M1/M2 |
45
+ | `macos-26` | **Preview** | ARM64 (Apple Silicon) | Beta |
46
+ | `macos-13` | **RETIRED** | Intel x86_64 | Retired November 14, 2025 |
47
+ | `macos-12` | **RETIRED** | Intel x86_64 | Retired |
48
+
49
+ ### Intel-Specific Labels (Long-term Deprecated)
50
+
51
+ ```yaml
52
+ runs-on: macos-15-intel # Intel x86_64 (NEW but deprecated long-term)
53
+ runs-on: macos-14-large # Intel x86_64
54
+ runs-on: macos-15-large # Intel x86_64
55
+ ```
56
+
57
+ **Important:** Apple Silicon (ARM64) will be required after Fall 2027. Plan migration now.
58
+
59
+ ### Migration Example
60
+
61
+ ```yaml
62
+ jobs:
63
+ build:
64
+ # BAD - macos-13 retired Nov 14, 2025 (WILL FAIL)
65
+ # runs-on: macos-13
66
+
67
+ # GOOD - Use macos-15 or macos-latest
68
+ runs-on: macos-15
69
+
70
+ steps:
71
+ - uses: actions/checkout@v6
72
+ - run: ./build.sh
73
+ ```
74
+
75
+ ---
76
+
77
+ ## ARM64 Runners
78
+
79
+ ### Availability
80
+ - **Generally available** as of August 2025
81
+ - **Free** for public repositories
82
+ - **Private repositories** require GitHub Enterprise Cloud plan
83
+
84
+ ### Labels
85
+
86
+ ```yaml
87
+ runs-on: ubuntu-latest-arm64 # Free for public repos
88
+ runs-on: ubuntu-24.04-arm64
89
+ runs-on: windows-latest-arm64 # ARM Windows
90
+ ```
91
+
92
+ ### Example
93
+
94
+ ```yaml
95
+ jobs:
96
+ build:
97
+ runs-on: ubuntu-latest-arm64 # Free for public repos
98
+ steps:
99
+ - uses: actions/checkout@v6
100
+ - name: Build on ARM64
101
+ run: |
102
+ uname -m # Should output: aarch64
103
+ ./build.sh
104
+ ```
105
+
106
+ ### Specifications
107
+ - 4 vCPU ARM64 processors
108
+ - Available for Linux and Windows
109
+ - Native ARM execution (no virtualization needed)
110
+ - Ideal for multi-architecture builds
111
+
112
+ ### Common Validation Issues
113
+ - Using ARM64 runners in private repos without Enterprise Cloud
114
+ - Assuming all community actions work on ARM64
115
+ - Not testing ARM-specific compilation issues
116
+
117
+ ---
118
+
119
+ ## GPU Runners
120
+
121
+ ### Availability
122
+ - **Generally available** for Windows and Linux
123
+ - Requires **Team** or **Enterprise Cloud** plan
124
+
125
+ ### Labels
126
+
127
+ ```yaml
128
+ runs-on: gpu-t4-4-core # NVIDIA Tesla T4
129
+ ```
130
+
131
+ ### Specifications
132
+ - **GPU:** NVIDIA Tesla T4 with 16GB VRAM
133
+ - **CPU:** 4 vCPUs
134
+ - **RAM:** 28GB
135
+ - **Pricing:** $0.07/minute
136
+
137
+ ### Example
138
+
139
+ ```yaml
140
+ jobs:
141
+ ml-training:
142
+ runs-on: gpu-t4-4-core
143
+ steps:
144
+ - uses: actions/checkout@v6
145
+
146
+ - name: Setup Python
147
+ uses: actions/setup-python@v5
148
+ with:
149
+ python-version: '3.11'
150
+
151
+ - name: Install ML dependencies
152
+ run: |
153
+ pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
154
+ pip install -r requirements.txt
155
+
156
+ - name: Train model
157
+ run: python train.py --use-gpu
158
+
159
+ - name: Run inference
160
+ run: python inference.py
161
+ ```
162
+
163
+ ### Use Cases
164
+ - ML model training
165
+ - GPU-accelerated testing
166
+ - CUDA development
167
+ - Image/video processing
168
+
169
+ ### Common Validation Issues
170
+ - Missing CUDA setup
171
+ - Incorrect GPU driver versions
172
+ - Not utilizing GPU in workloads (CPU fallback)
173
+ - Missing GPU-specific dependencies
174
+
175
+ ---
176
+
177
+ ## M2 Pro macOS Runners (Larger Runners)
178
+
179
+ ### Availability
180
+ - **Generally available** with M2 Pro powered runners
181
+
182
+ ### Labels
183
+
184
+ ```yaml
185
+ runs-on: macos-latest-xlarge # macOS 15, M2 Pro
186
+ runs-on: macos-15-xlarge # macOS 15, M2 Pro
187
+ runs-on: macos-14-xlarge # macOS 14, M2 Pro
188
+ ```
189
+
190
+ ### Specifications
191
+ - **CPU:** 5-core (vs 3-core standard)
192
+ - **GPU:** 8-core with hardware acceleration (enabled by default)
193
+ - **RAM:** 14GB
194
+ - **Storage:** 14GB
195
+ - **Performance:** Up to 15% faster than M1 runners
196
+ - **Pricing:** $0.16/minute
197
+
198
+ ### Example
199
+
200
+ ```yaml
201
+ jobs:
202
+ ios-build:
203
+ runs-on: macos-15-xlarge # M2 Pro with GPU acceleration
204
+ steps:
205
+ - uses: actions/checkout@v6
206
+
207
+ - name: Setup Xcode
208
+ uses: maxim-lobanov/setup-xcode@v1
209
+ with:
210
+ xcode-version: latest-stable
211
+
212
+ - name: Build iOS app
213
+ run: |
214
+ xcodebuild -workspace App.xcworkspace \
215
+ -scheme Production \
216
+ -configuration Release \
217
+ -archivePath build/App.xcarchive \
218
+ archive
219
+
220
+ - name: Run GPU-accelerated tests
221
+ run: |
222
+ # GPU acceleration automatically available
223
+ xcodebuild test -scheme AppTests
224
+ ```
225
+
226
+ ### Benefits
227
+ - GPU hardware acceleration for Metal-based workloads
228
+ - Improved build times for iOS/macOS apps
229
+ - Better performance for Xcode builds
230
+ - Native Apple Silicon performance
231
+
232
+ ---
233
+
234
+ ## Runner Selection Best Practices
235
+
236
+ ### Decision Criteria
237
+
238
+ 1. **Architecture compatibility:** ARM64 vs Intel x86_64
239
+ 2. **Cost optimization:** Standard vs larger runners
240
+ 3. **GPU requirements:** ML/AI workloads need GPU runners
241
+ 4. **Operating system:** Latest versions recommended
242
+ 5. **Deprecation timelines:** Avoid retired runners
243
+ 6. **Public vs private repos:** ARM64 free only for public repos
244
+
245
+ ### Validation Checklist
246
+
247
+ ```yaml
248
+ # Check these in your workflows:
249
+ - [ ] Using latest runner versions (macos-15, windows-2025, ubuntu-latest)
250
+ - [ ] Not using deprecated runners (macos-13)
251
+ - [ ] Architecture-appropriate runners (ARM64 vs Intel)
252
+ - [ ] GPU runners for ML workloads
253
+ - [ ] Cost-effective runner selection
254
+ - [ ] ARM64 compatibility tested (if using ARM64 runners)
255
+ ```
256
+
257
+ ### Cost Comparison
258
+
259
+ | Runner Type | Pricing | Best For |
260
+ |-------------|---------|----------|
261
+ | Standard (Linux/Windows) | Included | Most workloads |
262
+ | Standard (macOS) | Included | iOS/macOS builds |
263
+ | ARM64 (public repos) | **Free** | Multi-arch builds |
264
+ | ARM64 (private repos) | Enterprise | ARM-native builds |
265
+ | GPU (T4) | $0.07/min | ML/AI workloads |
266
+ | M2 Pro (xlarge) | $0.16/min | Heavy iOS builds |
267
+
268
+ ---
269
+
270
+ ## Multi-Architecture Builds
271
+
272
+ ### Example: Building for Multiple Architectures
273
+
274
+ ```yaml
275
+ jobs:
276
+ build:
277
+ strategy:
278
+ matrix:
279
+ include:
280
+ - runner: ubuntu-latest
281
+ arch: x64
282
+ - runner: ubuntu-latest-arm64
283
+ arch: arm64
284
+
285
+ runs-on: ${{ matrix.runner }}
286
+ steps:
287
+ - uses: actions/checkout@v6
288
+
289
+ - name: Build
290
+ run: |
291
+ echo "Building for ${{ matrix.arch }}"
292
+ ./build.sh --arch ${{ matrix.arch }}
293
+
294
+ - name: Upload artifact
295
+ uses: actions/upload-artifact@v4
296
+ with:
297
+ name: build-${{ matrix.arch }}
298
+ path: dist/
299
+ ```
300
+
301
+ ---
302
+
303
+ ## Self-Hosted Runner Configuration
304
+
305
+ When using self-hosted runners, configure actionlint to recognize custom labels:
306
+
307
+ ```yaml
308
+ # .github/actionlint.yaml
309
+ self-hosted-runner:
310
+ labels:
311
+ - my-custom-runner
312
+ - gpu-runner
313
+ - arm-runner
314
+ - on-premises
315
+ ```
316
+
317
+ This prevents actionlint from reporting unknown runner label errors.