@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,343 @@
1
+ # Actionlint (rhysd/actionlint) - Usage Reference
2
+
3
+ Actionlint is a static checker for GitHub Actions workflow files that catches errors before they cause CI failures.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ # Download and install using the official script
9
+ bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
10
+
11
+ # Or use the skill's installation script
12
+ bash scripts/install_tools.sh
13
+ ```
14
+
15
+ ## Core Usage
16
+
17
+ ### Basic Validation
18
+
19
+ Validate a single workflow file:
20
+
21
+ ```bash
22
+ actionlint .github/workflows/ci.yml
23
+ ```
24
+
25
+ Validate all workflow files in a directory:
26
+
27
+ ```bash
28
+ actionlint .github/workflows/*.yml
29
+ ```
30
+
31
+ Validate all workflows in the default location:
32
+
33
+ ```bash
34
+ actionlint
35
+ ```
36
+
37
+ ### Output Formats
38
+
39
+ #### Default Format (human-readable)
40
+
41
+ ```bash
42
+ actionlint
43
+ ```
44
+
45
+ Output example:
46
+ ```
47
+ .github/workflows/ci.yml:5:7: unexpected key "job" for "workflow" section [syntax-check]
48
+ .github/workflows/ci.yml:10:15: invalid CRON format "0 0 * * 8" in schedule event [events]
49
+ ```
50
+
51
+ #### JSON Format
52
+
53
+ ```bash
54
+ actionlint -format '{{json .}}'
55
+ ```
56
+
57
+ Useful for programmatic processing and integration with other tools.
58
+
59
+ #### Sarif Format
60
+
61
+ ```bash
62
+ actionlint -format sarif
63
+ ```
64
+
65
+ For integration with GitHub Code Scanning and other security tools.
66
+
67
+ ## Validation Categories
68
+
69
+ ### 1. Syntax Checking
70
+
71
+ Validates YAML syntax and GitHub Actions schema:
72
+
73
+ - Required fields
74
+ - Valid keys and values
75
+ - Proper nesting
76
+ - Type correctness
77
+
78
+ ### 2. Expression Validation
79
+
80
+ Validates GitHub Actions expressions `${{ }}`:
81
+
82
+ - Syntax errors
83
+ - Type checking (string, number, boolean)
84
+ - Function calls
85
+ - Context access
86
+
87
+ Example caught errors:
88
+ ```yaml
89
+ # Error: Boolean expression expected
90
+ if: ${{ 'true' }} # String, not boolean
91
+
92
+ # Error: Unknown function
93
+ run: echo ${{ unknown() }}
94
+
95
+ # Error: Type mismatch
96
+ if: ${{ 42 }} # Number, not boolean
97
+ ```
98
+
99
+ ### 3. Runner Label Validation
100
+
101
+ Validates runner labels against known GitHub-hosted runners:
102
+
103
+ **Ubuntu:**
104
+ - `ubuntu-latest` (currently ubuntu-24.04)
105
+ - `ubuntu-24.04`, `ubuntu-22.04`, `ubuntu-20.04`
106
+
107
+ **Windows:**
108
+ - `windows-latest` (currently windows-2022)
109
+ - `windows-2025` (NEW - recently added)
110
+ - `windows-2022`, `windows-2019`
111
+
112
+ **macOS:**
113
+ - `macos-latest` (currently macos-15)
114
+ - `macos-15` (Apple Silicon M1/M2/M3)
115
+ - `macos-14` (Apple Silicon M1)
116
+ - `macos-26` (preview)
117
+ - `macos-13` (Intel - RETIRED November 14, 2025)
118
+ - `macos-12` (Intel - RETIRED)
119
+
120
+ Example:
121
+ ```yaml
122
+ runs-on: ubuntu-lastest # Error: Did you mean "ubuntu-latest"?
123
+ ```
124
+
125
+ ### 4. Action Validation
126
+
127
+ Validates action references:
128
+
129
+ - Action exists
130
+ - Valid version/ref
131
+ - Required inputs provided
132
+ - No unknown inputs
133
+
134
+ Example:
135
+ ```yaml
136
+ # Error: Missing required input "path"
137
+ - uses: actions/checkout@v5
138
+
139
+ # Error: Unknown input "invalid_input"
140
+ - uses: actions/checkout@v5
141
+ with:
142
+ invalid_input: value
143
+ ```
144
+
145
+ ### 5. Job Dependencies
146
+
147
+ Validates `needs:` dependencies:
148
+
149
+ - Referenced jobs exist
150
+ - No circular dependencies
151
+ - Valid job IDs
152
+
153
+ ### 6. CRON Syntax
154
+
155
+ Validates schedule event CRON expressions:
156
+
157
+ ```yaml
158
+ # Error: Day of week must be 0-6
159
+ schedule:
160
+ - cron: '0 0 * * 8'
161
+ ```
162
+
163
+ ### 7. Shell Script Validation
164
+
165
+ Integrates with shellcheck to validate shell scripts in `run:` steps:
166
+
167
+ ```yaml
168
+ # Warning: Quote to prevent word splitting
169
+ run: echo $VARIABLE
170
+ ```
171
+
172
+ ### 8. Glob Pattern Validation
173
+
174
+ Validates glob patterns in `paths:` and `paths-ignore:` filters for structural errors (e.g., empty patterns or malformed syntax).
175
+
176
+ **Note:** The pattern `**.js` (double-star without a slash) is **not flagged** by actionlint as of v1.7.x. It is functionally equivalent to `**/*.js` in GitHub's glob engine but `**/*.js` is more explicit and widely understood. Use `**/*.js` as a best practice, not because actionlint will warn about the alternative.
177
+
178
+ ```yaml
179
+ # Best practice (clear intent)
180
+ on:
181
+ push:
182
+ paths:
183
+ - '**/*.js' # Matches any .js file in any subdirectory
184
+ - 'src/**' # Matches everything under src/
185
+ ```
186
+
187
+ ### 9. Security Checks
188
+
189
+ Detects potential security issues:
190
+
191
+ - Injection vulnerabilities
192
+ - Insecure credential handling
193
+ - Dangerous patterns
194
+
195
+ Example:
196
+ ```yaml
197
+ # Warning: Potential script injection
198
+ run: echo ${{ github.event.issue.title }}
199
+ ```
200
+
201
+ ## Configuration
202
+
203
+ Create `.github/actionlint.yaml` or `.github/actionlint.yml`:
204
+
205
+ ```yaml
206
+ # Configure shellcheck
207
+ shellcheck:
208
+ enable: true
209
+ shell: bash
210
+
211
+ # Configure pyflakes for Python
212
+ pyflakes:
213
+ enable: true
214
+ executable: pyflakes
215
+
216
+ # Ignore specific rules
217
+ ignore:
218
+ - 'SC2086' # Ignore shellcheck rule
219
+ - 'action-validation' # Ignore action validation
220
+
221
+ # Custom runner labels
222
+ self-hosted-runner:
223
+ labels:
224
+ - my-custom-runner
225
+ - gpu-runner
226
+ ```
227
+
228
+ ## Exit Codes
229
+
230
+ - `0`: Success - no errors found
231
+ - `1`: Validation errors found
232
+ - `2`: Fatal error (invalid file, config error, etc.)
233
+
234
+ ## Integration
235
+
236
+ ### Pre-commit Hook
237
+
238
+ ```yaml
239
+ # .pre-commit-config.yaml
240
+ repos:
241
+ - repo: https://github.com/rhysd/actionlint
242
+ rev: v1.7.9 # Check https://github.com/rhysd/actionlint/releases for latest version
243
+ hooks:
244
+ - id: actionlint
245
+ ```
246
+
247
+ **Note:** Always use the latest version of actionlint. Check the [releases page](https://github.com/rhysd/actionlint/releases) for the most recent version.
248
+
249
+ ### GitHub Actions Workflow
250
+
251
+ ```yaml
252
+ name: Lint GitHub Actions workflows
253
+ on: [push, pull_request]
254
+ jobs:
255
+ actionlint:
256
+ runs-on: ubuntu-latest
257
+ steps:
258
+ - uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0
259
+ - name: Download actionlint
260
+ run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
261
+ - name: Run actionlint
262
+ run: ./actionlint
263
+ ```
264
+
265
+ ### VS Code Integration
266
+
267
+ Install the "actionlint" extension for real-time validation in VS Code.
268
+
269
+ ## Common Error Examples
270
+
271
+ ### 1. Typo in Runner Label
272
+
273
+ ```yaml
274
+ # Error
275
+ runs-on: ubuntu-lastest
276
+
277
+ # Fix
278
+ runs-on: ubuntu-latest
279
+ ```
280
+
281
+ ### 2. Invalid CRON Expression
282
+
283
+ ```yaml
284
+ # Error
285
+ schedule:
286
+ - cron: '0 0 * * 8' # Day of week 8 doesn't exist
287
+
288
+ # Fix
289
+ schedule:
290
+ - cron: '0 0 * * 0' # Sunday = 0
291
+ ```
292
+
293
+ ### 3. Missing Required Input
294
+
295
+ ```yaml
296
+ # Error
297
+ - uses: actions/checkout@v4
298
+
299
+ # Fix (if repository input is required)
300
+ - uses: actions/checkout@v4
301
+ with:
302
+ repository: owner/repo
303
+ ```
304
+
305
+ ### 4. Invalid Expression
306
+
307
+ ```yaml
308
+ # Error
309
+ if: ${{ success() && 'true' }} # Mixing boolean and string
310
+
311
+ # Fix
312
+ if: ${{ success() && true }}
313
+ ```
314
+
315
+ ### 5. Undefined Job in needs
316
+
317
+ ```yaml
318
+ # Error
319
+ jobs:
320
+ deploy:
321
+ needs: biuld # Typo
322
+
323
+ # Fix
324
+ jobs:
325
+ deploy:
326
+ needs: build
327
+ ```
328
+
329
+ ## Best Practices
330
+
331
+ 1. **Run locally before pushing**: Catch errors early
332
+ 2. **Use in CI/CD**: Add actionlint to your workflow
333
+ 3. **Configure for custom runners**: Update config for self-hosted runners
334
+ 4. **Enable shellcheck**: Catch shell script issues
335
+ 5. **Review all warnings**: Even non-fatal warnings can indicate issues
336
+ 6. **Keep actionlint updated**: New rules and features are added regularly
337
+
338
+ ## Limitations
339
+
340
+ - Cannot validate runtime behavior (only static analysis)
341
+ - Cannot access private actions (must be public to validate)
342
+ - May not catch all possible issues (e.g., environment-specific problems)
343
+ - Custom actions may require manual verification