Claude Skills
CollectionsCompareWorkflowsNominate
Sign inSign up
© 2026 Curated Agent Skills·Learn more about Agent Skills
Back to repository

github-actions-composite

verified

Creates GitHub Actions composite actions. Use when building reusable action.yml files, integrating github-script, or setting up action inputs/outputs.

View on GitHub

Marketplace

lbussell-agent-skills

lbussell/agent-skills

Plugin

agent-skills

Repository

lbussell/agent-skills

skills/github-actions-composite/SKILL.md

Last Verified

February 1, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/lbussell/agent-skills/blob/main/skills/github-actions-composite/SKILL.md -a claude-code --skill github-actions-composite

Installation paths:

Claude
.claude/skills/github-actions-composite/
Powered by add-skill CLI

Instructions

# GitHub Actions Composite Actions

Composite actions bundle multiple workflow steps into a reusable `action.yml` file. Use composite actions when orchestrating shell commands, calling other actions, or adding JavaScript via `github-script`. This guide covers composite actions only (not JavaScript or Docker actions).

## action.yml Structure

| Field | Required | Description |
|-------|----------|-------------|
| `name` | Yes | Display name for the action |
| `description` | Yes | Short description of what the action does |
| `inputs.<id>.description` | Yes | Description of the input |
| `inputs.<id>.required` | No | Whether input is required (default: false) |
| `inputs.<id>.default` | No | Default value when not provided |
| `outputs.<id>.description` | Yes | Description of the output |
| `outputs.<id>.value` | Yes | Value expression (usually from step output) |
| `runs.using` | Yes | Must be `"composite"` |
| `runs.steps` | Yes | Array of steps to execute |

## Minimal Example

```yaml
name: 'Greet User'
description: 'Greets a user by name'

inputs:
  name:
    description: 'Name to greet'
    required: true

outputs:
  greeting:
    description: 'The greeting message'
    value: ${{ steps.greet.outputs.greeting }}

runs:
  using: "composite"
  steps:
    - id: greet
      shell: bash
      run: |
        MESSAGE="Hello, ${{ inputs.name }}!"
        echo "greeting=$MESSAGE" >> "$GITHUB_OUTPUT"
```

## Step Properties

| Property | Required | Description |
|----------|----------|-------------|
| `id` | No* | Step identifier. Required if other steps reference this steps outputs. |
| `name` | No | Display name in workflow logs |
| `run` | No** | Shell command to execute |
| `shell` | Yes*** | Required when using `run` (`bash`, `pwsh`, `python`, etc.) |
| `uses` | No** | Call another action. `run` and `uses` are mutually exclusive. |
| `with` | No | Inputs to pass when using `uses` |
| `env` | No | Environment variables for this step |
| `if` | No | Conditional expre

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
6711 chars