@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,353 @@
1
+ ---
2
+ name: github-actions-generator
3
+ description: Create, generate, or scaffold GitHub Actions workflows, action.yml, or .github/workflows CI/CD pipelines.
4
+ category: engineering-method
5
+ source: cc-devops-skills
6
+ date_added: "2026-09-25"
7
+ ---
8
+
9
+ # GitHub Actions Generator
10
+
11
+ Generate production-ready GitHub Actions workflows and custom actions following current best practices, security standards, and naming conventions. All generated resources are automatically validated using the github-actions-validator skill.
12
+
13
+ ## Quick Reference
14
+
15
+ | Capability | When to Use | Reference |
16
+ |------------|-------------|-----------|
17
+ | Workflows | CI/CD, automation, testing | `references/best-practices.md` |
18
+ | Composite Actions | Reusable step combinations | `references/custom-actions.md` |
19
+ | Docker Actions | Custom environments/tools | `references/custom-actions.md` |
20
+ | JavaScript Actions | API interactions, complex logic | `references/custom-actions.md` |
21
+ | Reusable Workflows | Shared patterns across repos | `references/advanced-triggers.md` |
22
+ | Security Scanning | Dependency review, SBOM | `references/best-practices.md` |
23
+ | Modern Features | Summaries, environments | `references/modern-features.md` |
24
+
25
+ ---
26
+
27
+ ## Trigger Decision Tree
28
+
29
+ Route every request through this decision tree before reading references or generating files:
30
+
31
+ 1. If the user asks for `.github/workflows/*.yml` CI/CD automation, choose **Workflow Generation**.
32
+ 2. If the user asks for `action.yml` or a reusable step package, choose **Custom Action Generation**.
33
+ 3. If the user asks for `workflow_call` or shared pipelines across repositories, choose **Reusable Workflow Generation**.
34
+ 4. If the request includes security-only scanning (dependency review, SBOM, CodeQL), stay on **Workflow Generation** with the security pattern.
35
+ 5. If intent is ambiguous, ask one disambiguation question: "Do you want a workflow, a custom action, or a reusable workflow?"
36
+
37
+ ## Progressive Disclosure Route
38
+
39
+ Load only what is needed for the selected route, in this order:
40
+
41
+ | Route | Load First (required) | Load Next (only if needed) | Primary Template |
42
+ |-------|------------------------|------------------------------|------------------|
43
+ | Workflow Generation | `references/best-practices.md` | `references/common-actions.md`, `references/expressions-and-contexts.md`, `references/modern-features.md` | `assets/templates/workflow/basic_workflow.yml` |
44
+ | Custom Action Generation | `references/custom-actions.md` | `references/best-practices.md` | `assets/templates/action/composite/action.yml`, `assets/templates/action/docker/`, `assets/templates/action/javascript/` |
45
+ | Reusable Workflow Generation | `references/advanced-triggers.md` | `references/best-practices.md`, `references/common-actions.md` | `assets/templates/workflow/reusable_workflow.yml` |
46
+
47
+ If a required reference/template is unavailable, continue with the closest available reference and report the fallback explicitly in output.
48
+
49
+ ---
50
+
51
+ ## Core Capabilities
52
+
53
+ ### 1. Generate Workflows
54
+
55
+ **Triggers:** "Create a workflow for...", "Build a CI/CD pipeline..."
56
+
57
+ **Process:**
58
+ 1. Understand requirements (triggers, runners, dependencies)
59
+ 2. Define trust boundaries (internal branches vs fork PRs vs external triggers)
60
+ 3. Set default `permissions` to read-only, then elevate only per job when required
61
+ 4. Reference `references/best-practices.md` for patterns
62
+ 5. Reference `references/common-actions.md` for action versions
63
+ 6. Generate workflow with:
64
+ - Semantic names, pinned actions (SHA), explicit permissions
65
+ - Concurrency controls, caching, matrix strategies
66
+ - Fork-safe PR handling (no secrets in untrusted contexts)
67
+ 7. **Validate** with github-actions-validator skill
68
+ 8. Fix issues and re-validate if needed
69
+
70
+ **Minimal Example:**
71
+ ```yaml
72
+ name: CI Pipeline
73
+
74
+ on:
75
+ push:
76
+ branches: [main]
77
+ pull_request:
78
+ branches: [main]
79
+
80
+ permissions:
81
+ contents: read
82
+
83
+ concurrency:
84
+ group: ${{ github.workflow }}-${{ github.ref }}
85
+ cancel-in-progress: true
86
+
87
+ jobs:
88
+ test:
89
+ runs-on: ubuntu-latest
90
+ steps:
91
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
92
+ - uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
93
+ with:
94
+ node-version: '24'
95
+ cache: 'npm'
96
+ - run: npm ci
97
+ - run: npm test
98
+ ```
99
+
100
+ **Untrusted PR Guardrail (required for secret-using jobs):**
101
+ ```yaml
102
+ jobs:
103
+ deploy:
104
+ if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
105
+ ```
106
+
107
+ ### 2. Generate Custom Actions
108
+
109
+ **Triggers:** "Create a composite action...", "Build a Docker action...", "Create a JavaScript action..."
110
+
111
+ **Types:**
112
+ - **Composite:** Combine multiple steps → Fast startup
113
+ - **Docker:** Custom environment/tools → Isolated
114
+ - **JavaScript:** API access, complex logic → Fastest
115
+
116
+ **Process:**
117
+ 1. Use templates from `assets/templates/action/`
118
+ 2. Follow structure in `references/custom-actions.md`
119
+ 3. Include branding, inputs/outputs, documentation
120
+ 4. **Validate** with github-actions-validator skill
121
+
122
+ See `references/custom-actions.md` for:
123
+ - Action metadata and branding
124
+ - Directory structure patterns
125
+ - Versioning and release workflows
126
+
127
+ ### 3. Generate Reusable Workflows
128
+
129
+ **Triggers:** "Create a reusable workflow...", "Make this workflow callable..."
130
+
131
+ **Key Elements:**
132
+ - `workflow_call` trigger with typed inputs
133
+ - Explicit secrets (avoid `secrets: inherit`)
134
+ - Explicit trusted-caller expectations (document org/repo boundaries)
135
+ - Outputs mapped from job outputs
136
+ - Minimal permissions
137
+
138
+ ```yaml
139
+ on:
140
+ workflow_call:
141
+ inputs:
142
+ environment:
143
+ required: true
144
+ type: string
145
+ secrets:
146
+ deploy-token:
147
+ required: false
148
+ outputs:
149
+ result:
150
+ value: ${{ jobs.build.outputs.result }}
151
+ ```
152
+
153
+ When secrets are required, pass only the exact secret names needed and prefer environment protection rules for deployment stages.
154
+
155
+ See `references/advanced-triggers.md` for complete patterns.
156
+
157
+ ### 4. Generate Security Workflows
158
+
159
+ **Triggers:** "Add security scanning...", "Add dependency review...", "Generate SBOM..."
160
+
161
+ **Components:**
162
+ - **Dependency Review:** `actions/dependency-review-action@v4`
163
+ - **SBOM Attestations:** `actions/attest-sbom@v2`
164
+ - **CodeQL Analysis:** `github/codeql-action`
165
+
166
+ **Permission Model:**
167
+ Use a read-only workflow-level baseline, then elevate only in the security job that requires write scopes.
168
+ ```yaml
169
+ permissions:
170
+ contents: read
171
+
172
+ jobs:
173
+ security-scan:
174
+ permissions:
175
+ contents: read
176
+ security-events: write # For CodeQL
177
+ id-token: write # For attestations
178
+ attestations: write # For attestations
179
+ ```
180
+
181
+ See `references/best-practices.md` section on security.
182
+
183
+ ### 5. Modern Features
184
+
185
+ **Triggers:** "Add job summaries...", "Use environments...", "Run in container..."
186
+
187
+ See `references/modern-features.md` for:
188
+ - Job summaries (`$GITHUB_STEP_SUMMARY`)
189
+ - Deployment environments with approvals
190
+ - Container jobs with services
191
+ - Workflow annotations
192
+
193
+ ### 6. Third-Party Action Documentation and Citation
194
+
195
+ When using third-party actions (any `uses:` entry not in the same repository):
196
+
197
+ 1. **Search for documentation:**
198
+ ```
199
+ "[owner/repo] [version] github action documentation"
200
+ ```
201
+
202
+ 2. **Or use Context7 MCP:**
203
+ - `mcp__context7__resolve-library-id` to find action
204
+ - `mcp__context7__query-docs` for documentation
205
+
206
+ 3. **Pin to SHA with version comment:**
207
+ ```yaml
208
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
209
+ ```
210
+
211
+ 4. **Cite source and version in the response:**
212
+ - Action source (repository URL)
213
+ - Version source (release/tag/changelog URL)
214
+ - Selected commit SHA and human-readable version
215
+ - Access date for the source used
216
+
217
+ See `references/common-actions.md` for pre-verified action versions.
218
+
219
+ ---
220
+
221
+ ## Validation Workflow
222
+
223
+ **CRITICAL:** Every generated resource MUST be validated.
224
+
225
+ 1. Generate workflow/action file
226
+ 2. Invoke `github-actions-validator` skill
227
+ 3. If errors: fix and re-validate
228
+ 4. If success: present with usage instructions
229
+
230
+ **Skip validation only for:**
231
+ - Partial code snippets
232
+ - Documentation examples
233
+ - User explicitly requests skip
234
+
235
+ ## Fallback Behavior (Tooling and Environment Constraints)
236
+
237
+ If required tooling or network access is unavailable, use this deterministic fallback order:
238
+
239
+ 1. If `github-actions-validator` is unavailable, run local fallback checks:
240
+ - `actionlint` (if installed)
241
+ - `yamllint` (if installed)
242
+ - manual YAML/schema review with a clear "not tool-validated" note
243
+ 2. If Context7 or internet access is unavailable:
244
+ - use `references/common-actions.md` for known action versions
245
+ - state that external version verification could not be completed
246
+ 3. If a template path is missing:
247
+ - generate from the closest template pattern in `assets/templates/`
248
+ - document which template was substituted
249
+
250
+ Fallback usage must always be reported in the final output.
251
+
252
+ ---
253
+
254
+ ## Mandatory Standards
255
+
256
+ All generated resources must follow:
257
+
258
+ | Standard | Implementation |
259
+ |----------|---------------|
260
+ | **Security** | Pin to SHA, minimal permissions, mask secrets |
261
+ | **Performance** | Caching, concurrency, shallow checkout |
262
+ | **Naming** | Descriptive names, lowercase-hyphen files |
263
+ | **Error Handling** | Timeouts, cleanup with `if: always()` |
264
+
265
+ See `references/best-practices.md` for complete guidelines.
266
+
267
+ ---
268
+
269
+ ## Resources
270
+
271
+ ### Reference Documents
272
+
273
+ | Document | Content | When to Use |
274
+ |----------|---------|-------------|
275
+ | `references/best-practices.md` | Security, performance, patterns | Every workflow |
276
+ | `references/common-actions.md` | Action versions, inputs, outputs | Public action usage |
277
+ | `references/expressions-and-contexts.md` | `${{ }}` syntax, contexts, functions | Complex conditionals |
278
+ | `references/advanced-triggers.md` | workflow_run, dispatch, ChatOps | Workflow orchestration |
279
+ | `references/custom-actions.md` | Metadata, structure, versioning | Custom action creation |
280
+ | `references/modern-features.md` | Summaries, environments, containers | Enhanced workflows |
281
+
282
+ ### Templates
283
+
284
+ | Template | Location |
285
+ |----------|----------|
286
+ | Basic Workflow | `assets/templates/workflow/basic_workflow.yml` |
287
+ | Reusable Workflow | `assets/templates/workflow/reusable_workflow.yml` |
288
+ | Composite Action | `assets/templates/action/composite/action.yml` |
289
+ | Docker Action | `assets/templates/action/docker/` |
290
+ | JavaScript Action | `assets/templates/action/javascript/` |
291
+
292
+ ---
293
+
294
+ ## Common Patterns
295
+
296
+ ### Matrix Testing
297
+ ```yaml
298
+ strategy:
299
+ matrix:
300
+ os: [ubuntu-latest, windows-latest]
301
+ node: [18, 20, 22]
302
+ fail-fast: false
303
+ ```
304
+
305
+ ### Conditional Deployment
306
+ ```yaml
307
+ deploy:
308
+ if: github.event_name == 'push' && github.ref == 'refs/heads/main'
309
+ ```
310
+
311
+ ### Artifact Sharing
312
+ ```yaml
313
+ # Upload
314
+ - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
315
+ with:
316
+ name: build-${{ github.sha }}
317
+ path: dist/
318
+
319
+ # Download (in dependent job)
320
+ - uses: actions/download-artifact@c850b930e6ba138125429b7e5c93fc707a7f8427 # v4.1.4
321
+ with:
322
+ name: build-${{ github.sha }}
323
+ ```
324
+
325
+ ### Third-Party Action Citation Block
326
+ ```text
327
+ Third-party action citations:
328
+ - actions/checkout: https://github.com/actions/checkout (version: v6.0.2, sha: de0fac2e4500dabe0009e67214ff5f5447ce83dd, accessed: 2026-02-28)
329
+ ```
330
+
331
+ ---
332
+
333
+ ## Done Criteria
334
+
335
+ The task is complete only when all checks below pass:
336
+
337
+ 1. The request route was selected using the trigger decision tree.
338
+ 2. Only the minimum required references/templates were loaded first.
339
+ 3. Every third-party action is pinned to a commit SHA and has source/version citation.
340
+ 4. Validation was run, or a skip exception/fallback path was explicitly documented.
341
+ 5. Output includes assumptions, security-sensitive decisions (permissions/secrets), and generated file paths.
342
+
343
+ ---
344
+
345
+ ## Workflow Summary
346
+
347
+ 1. **Route** the request using the trigger decision tree
348
+ 2. **Load** the minimum references/templates for that route
349
+ 3. **Generate** using mandatory security and naming standards
350
+ 4. **Cite** and pin third-party actions (source, version, SHA)
351
+ 5. **Validate** with `github-actions-validator` (or documented fallback)
352
+ 6. **Fix and re-validate** until clean
353
+ 7. **Present** validated output with citations, assumptions, and file paths
@@ -0,0 +1,82 @@
1
+ name: '[ACTION_NAME]'
2
+ description: '[ACTION_DESCRIPTION]'
3
+ author: '[AUTHOR_NAME]'
4
+
5
+ # Define inputs that users can provide
6
+ inputs:
7
+ [input-name]:
8
+ description: '[INPUT_DESCRIPTION]'
9
+ required: [true/false]
10
+ default: '[DEFAULT_VALUE]'
11
+
12
+ [input-name-2]:
13
+ description: '[INPUT_DESCRIPTION]'
14
+ required: [true/false]
15
+
16
+ # Define outputs that the action produces
17
+ outputs:
18
+ [output-name]:
19
+ description: '[OUTPUT_DESCRIPTION]'
20
+ value: ${{ steps.[step-id].outputs.[output-name] }}
21
+
22
+ [output-name-2]:
23
+ description: '[OUTPUT_DESCRIPTION]'
24
+ value: ${{ steps.[step-id].outputs.[output-name-2] }}
25
+
26
+ # Branding (optional - for GitHub Marketplace)
27
+ branding:
28
+ icon: '[ICON_NAME]' # Feather icon name
29
+ color: '[COLOR]' # white, yellow, blue, green, orange, red, purple, gray-dark
30
+
31
+ runs:
32
+ using: 'composite'
33
+ steps:
34
+ # Step 1: Validation
35
+ - name: Validate inputs
36
+ shell: bash
37
+ run: |
38
+ if [ -z "${{ inputs.[input-name] }}" ]; then
39
+ echo "::error::Input [input-name] is required"
40
+ exit 1
41
+ fi
42
+ echo "✅ Inputs validated"
43
+
44
+ # Step 2: Setup
45
+ - name: [SETUP_STEP_NAME]
46
+ uses: "[SETUP_ACTION]@[SHA]" # [VERSION]
47
+ with:
48
+ [SETUP_INPUT]: ${{ inputs.[input-name] }}
49
+
50
+ # Step 3: Main logic
51
+ - name: [MAIN_STEP_NAME]
52
+ id: [step-id]
53
+ shell: bash
54
+ env:
55
+ INPUT_VALUE: ${{ inputs.[input-name] }}
56
+ run: |
57
+ echo "::group::Running [MAIN_STEP_NAME]"
58
+
59
+ # Main action logic here
60
+ [MAIN_COMMAND]
61
+
62
+ # Set outputs
63
+ echo "[output-name]=[OUTPUT_VALUE]" >> $GITHUB_OUTPUT
64
+ echo "[output-name-2]=[OUTPUT_VALUE_2]" >> $GITHUB_OUTPUT
65
+
66
+ echo "::endgroup::"
67
+
68
+ # Step 4: Post-processing (optional)
69
+ - name: Post-processing
70
+ if: success()
71
+ shell: bash
72
+ run: |
73
+ echo "✅ Action completed successfully"
74
+ echo "Output: ${{ steps.[step-id].outputs.[output-name] }}"
75
+
76
+ # Step 5: Cleanup (optional)
77
+ - name: Cleanup
78
+ if: always()
79
+ shell: bash
80
+ run: |
81
+ # Cleanup logic here
82
+ echo "Cleanup completed"
@@ -0,0 +1,25 @@
1
+ # Base image
2
+ FROM [BASE_IMAGE]:[TAG]
3
+
4
+ # Install required tools with minimal packages, then clean package caches
5
+ RUN [PACKAGE_MANAGER] update && \
6
+ [PACKAGE_MANAGER] install [PACKAGE_INSTALL_FLAGS] \
7
+ [PACKAGE_1] \
8
+ [PACKAGE_2] \
9
+ && [CLEANUP_COMMAND]
10
+
11
+ # Set working directory
12
+ WORKDIR /app
13
+
14
+ # Copy application files
15
+ COPY entrypoint.sh /entrypoint.sh
16
+
17
+ # Make entrypoint executable
18
+ RUN chmod +x /entrypoint.sh
19
+
20
+ # Create and switch to a non-root runtime user (replace placeholders per base image)
21
+ RUN [CREATE_NON_ROOT_USER_COMMAND]
22
+ USER [RUNTIME_USER]
23
+
24
+ # Set entrypoint
25
+ ENTRYPOINT ["/entrypoint.sh"]
@@ -0,0 +1,42 @@
1
+ name: '[ACTION_NAME]'
2
+ description: '[ACTION_DESCRIPTION]'
3
+ author: '[AUTHOR_NAME]'
4
+
5
+ # Define inputs that users can provide
6
+ inputs:
7
+ [input-name]:
8
+ description: '[INPUT_DESCRIPTION]'
9
+ required: [true/false]
10
+ default: '[DEFAULT_VALUE]'
11
+
12
+ [input-name-2]:
13
+ description: '[INPUT_DESCRIPTION]'
14
+ required: [true/false]
15
+
16
+ # Define outputs that the action produces
17
+ outputs:
18
+ [output-name]:
19
+ description: '[OUTPUT_DESCRIPTION]'
20
+
21
+ # Branding (optional - for GitHub Marketplace)
22
+ branding:
23
+ icon: '[ICON_NAME]' # Feather icon name
24
+ color: '[COLOR]' # white, yellow, blue, green, orange, red, purple, gray-dark
25
+
26
+ runs:
27
+ using: 'docker'
28
+ image: 'Dockerfile'
29
+ # Optional: Use pre-built image instead
30
+ # image: 'docker://[REGISTRY]/[IMAGE]:[TAG]'
31
+
32
+ # Arguments passed to container entrypoint
33
+ args:
34
+ - ${{ inputs.[input-name] }}
35
+ - ${{ inputs.[input-name-2] }}
36
+
37
+ # Environment variables
38
+ env:
39
+ [ENV_VAR]: ${{ inputs.[input-name] }}
40
+
41
+ # Optional: Override entrypoint
42
+ # entrypoint: '/entrypoint.sh'
@@ -0,0 +1,27 @@
1
+ #!/bin/bash
2
+ set -e
3
+
4
+ # Action entrypoint script
5
+ # Arguments are passed from action.yml
6
+
7
+ [INPUT_1]="$1"
8
+ [INPUT_2]="$2"
9
+
10
+ # Validate inputs
11
+ if [ -z "$[INPUT_1]" ]; then
12
+ echo "::error::[INPUT_1] is required"
13
+ exit 1
14
+ fi
15
+
16
+ echo "::group::Running [ACTION_NAME]"
17
+ echo "Input 1: $[INPUT_1]"
18
+ echo "Input 2: $[INPUT_2]"
19
+
20
+ # Main action logic
21
+ [MAIN_COMMAND]
22
+
23
+ # Set outputs
24
+ echo "[output-name]=[OUTPUT_VALUE]" >> "$GITHUB_OUTPUT"
25
+
26
+ echo "::endgroup::"
27
+ echo "✅ Action completed successfully"
@@ -0,0 +1,33 @@
1
+ name: '[ACTION_NAME]'
2
+ description: '[ACTION_DESCRIPTION]'
3
+ author: '[AUTHOR_NAME]'
4
+
5
+ # Define inputs that users can provide
6
+ inputs:
7
+ github-token:
8
+ description: 'GitHub token for API access'
9
+ required: false
10
+ default: ${{ github.token }}
11
+
12
+ [input-name]:
13
+ description: '[INPUT_DESCRIPTION]'
14
+ required: [true/false]
15
+ default: '[DEFAULT_VALUE]'
16
+
17
+ # Define outputs that the action produces
18
+ outputs:
19
+ [output-name]:
20
+ description: '[OUTPUT_DESCRIPTION]'
21
+
22
+ # Branding (optional - for GitHub Marketplace)
23
+ branding:
24
+ icon: '[ICON_NAME]' # Feather icon name
25
+ color: '[COLOR]' # white, yellow, blue, green, orange, red, purple, gray-dark
26
+
27
+ runs:
28
+ using: 'node20'
29
+ main: 'dist/index.js'
30
+ # Optional: Run code before action
31
+ # pre: 'dist/pre.js'
32
+ # Optional: Run code after action
33
+ # post: 'dist/post.js'
@@ -0,0 +1,50 @@
1
+ const core = require('@actions/core');
2
+ const github = require('@actions/github');
3
+
4
+ async function run() {
5
+ try {
6
+ // Get inputs
7
+ const githubToken = core.getInput('github-token');
8
+ const inputName = core.getInput('[input-name]', { required: true });
9
+
10
+ // Log inputs (mask sensitive data)
11
+ core.info(`Input: ${inputName}`);
12
+
13
+ // Create GitHub client
14
+ const octokit = github.getOctokit(githubToken);
15
+
16
+ // Get context information
17
+ const context = github.context;
18
+ core.info(`Repository: ${context.repo.owner}/${context.repo.repo}`);
19
+ core.info(`Event: ${context.eventName}`);
20
+
21
+ // Main action logic
22
+ core.startGroup('Running [ACTION_NAME]');
23
+
24
+ // Example: Get repository information
25
+ const { data: repo } = await octokit.rest.repos.get({
26
+ owner: context.repo.owner,
27
+ repo: context.repo.repo,
28
+ });
29
+
30
+ core.info(`Repository stars: ${repo.stargazers_count}`);
31
+
32
+ // [ADD YOUR LOGIC HERE]
33
+
34
+ core.endGroup();
35
+
36
+ // Set outputs
37
+ core.setOutput('[output-name]', '[OUTPUT_VALUE]');
38
+
39
+ // Success
40
+ core.info('✅ Action completed successfully');
41
+ } catch (error) {
42
+ // Handle errors
43
+ core.setFailed(`Action failed: ${error.message}`);
44
+ if (error.stack) {
45
+ core.debug(error.stack);
46
+ }
47
+ }
48
+ }
49
+
50
+ run();
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "[ACTION_NAME]",
3
+ "version": "1.0.0",
4
+ "description": "[ACTION_DESCRIPTION]",
5
+ "main": "dist/index.js",
6
+ "scripts": {
7
+ "build": "ncc build index.js -o dist --source-map --license licenses.txt",
8
+ "test": "jest",
9
+ "lint": "eslint ."
10
+ },
11
+ "keywords": [
12
+ "github-actions",
13
+ "[KEYWORD_1]",
14
+ "[KEYWORD_2]"
15
+ ],
16
+ "author": "[AUTHOR_NAME]",
17
+ "license": "MIT",
18
+ "dependencies": {
19
+ "@actions/core": "^1.10.1",
20
+ "@actions/github": "^6.0.0"
21
+ },
22
+ "devDependencies": {
23
+ "@vercel/ncc": "^0.38.1",
24
+ "eslint": "^8.57.0",
25
+ "jest": "^29.7.0"
26
+ }
27
+ }