| name | internal-github-action-composite |
| description | Use when /internal-github routes composite-action work under `.github/actions/`, including inputs, outputs, shell safety, tests, documentation, and compatibility. |
| user-invocable | false |
GitHub Composite Action Skill
Own the concrete composite-action contract under .github/actions/: inputs,
outputs, shell behavior, compatibility, documentation, and validation.
When to use
- Create or modify an
action.yml composite action.
- Preserve compatibility while changing inputs or outputs.
- Document or test a composite action.
Composite-action contract
Input validation is the first contract step; validate required values before
the action performs its main logic.
- Pass expression inputs through
env: instead of interpolating them directly
in run:.
- Keep
shell: bash explicit on every composite step.
- Start shell blocks with
set -euo pipefail.
- Validate required inputs before the main logic and fail clearly.
- Forward caller-visible values through
outputs: mapped from $GITHUB_OUTPUT.
- Use
$GITHUB_ENV only for step-to-step state inside the action.
- Extract long shell logic into a dedicated script early.
- Preserve backward compatibility for existing inputs and outputs, or treat a
breaking contract as a versioning event.
Reference map
Completion criteria
action.yml inputs and outputs are explicit and validated early.
- Expressions are passed safely through environment variables.
- Shell uses strict mode and explicit Bash.
- Caller-visible outputs are documented and forwarded through
$GITHUB_OUTPUT.
- Smoke and failure-path validation cover the contract.
- Existing compatibility is preserved or versioned deliberately.