Official agent skill

Make GitHub Actions Workflow

by dotnet in dotnet/efcore

Create GitHub Actions workflows for CI, automation, or PR management.

OfficialMITAuto-check passedDevOps & Cloud

Install Make GitHub Actions Workflow

skills CLI
$ npx skills add dotnet/efcore --skill make-github-actions-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dotnet/efcore make-github-actions-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dotnet/efcore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/make-github-actions-workflow .claude/skills/make-github-actions-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
make-github-actions-workflow
GitHub stars
15k
Token cost
~1.7k tokens
SKILL.md length
572 words
Files
1
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

Create GitHub Actions workflows for CI, automation, or PR management.

  • Works in 5 steps: Understand the Requirements → Choose the Trigger Event → Write the Workflow → …
  • Asked to create
  • SKILL.md covers Repository Conventions, Workflow, Existing Workflows in This… and Common Patterns, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Make GitHub Actions Workflow is an agent skill from dotnet/efcore, published by the product's own GitHub organization. Create GitHub Actions workflows for CI, automation, or PR management. Use when asked to create, scaffold, or add a GitHub Actions workflow (.yml file under .github/workflows/).

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering CI/CD. It works with GitHub Actions and GitHub. The repository describes itself as: EF Core is a modern object-database mapper for .NET. It supports LINQ queries, change tracking, updates, and schema migrations. The licence is MIT.

When your agent uses it

  • Asked to create
  • Add a GitHub Actions workflow (.yml file under .github/workflows/)

Example prompts

  • “/make-github-actions-workflow”

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Understand the Requirements
  2. Choose the Trigger Event
  3. Write the Workflow
  4. Implement Guard Conditions
  5. Validate

What it can do on your machine

Read from SKILL.md and the folder at commit 7adff35. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.github.com
    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Make GitHub Actions Workflow loads about 1.7k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 572 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dotnet/efcore at commit 7adff35, republished under its MIT licence (© dotnet). 572 words, ~1,730 tokens.

Download SKILL.mdSave it as .claude/skills/make-github-actions-workflow/SKILL.md (or your agent's skills folder).
name
make-github-actions-workflow
description
Create GitHub Actions workflows for CI, automation, or PR management. Use when asked to create, scaffold, or add a GitHub Actions workflow (.yml file under .github/workflows/).

Create GitHub Actions Workflow

Create and configure GitHub Actions workflows that follow this repository's conventions and patterns. Workflows automate tasks like CI validation, PR management, issue labeling, and notifications.

Repository Conventions

This repository uses specific patterns across all workflows. Follow these conventions when creating new workflows:

File Location and Naming
  • All workflows live in .github/workflows/
  • Use kebab-case names: label-and-milestone-issues.yml, validate-pr-target-branch.yml
  • Start with a descriptive comment block explaining the workflow's purpose
Runner
  • Use ubuntu-latest for general-purpose jobs
  • Use ubuntu-24.04 when a specific OS version is needed (e.g., copilot setup steps)
Permissions
  • Always declare explicit permissions — never rely on defaults
  • Use minimal permissions: only request what the workflow needs
  • Common patterns:
    • Read-only: permissions: {}
    • PR comments: pull-requests: write
    • Issue management: issues: write
    • Code read: contents: read
  • For workflows that need write access to PRs from external contributors, use pull_request_target instead of pull_request
    • Security warning: pull_request_target workflows run in the base repository context with its permissions. Do not check out or execute code from the PR branch in these workflows. Instead, use the event payload and/or GitHub API (actions/github-script, github.rest.*, etc.) to inspect and act on the PR safely.
Scripting
  • Use actions/github-script@v8 for complex logic instead of shell scripts
  • Write JavaScript with async/await — the github object (Octokit) and context are available
  • Use github.rest.* for REST API calls and github.graphql() for GraphQL queries
  • Access PR/issue data via context.payload.pull_request, context.repo.owner, context.repo.repo
  • Log with console.log() for debugging; use core.setFailed() for errors
Error Handling
  • Wrap API calls in try/catch blocks
  • Collect errors and report at the end rather than failing on the first error
  • Log skipped operations with a reason

Workflow

Step 1: Understand the Requirements

Before writing the workflow, clarify:

  • What event(s) should trigger it? (push, pull_request, check_suite, schedule, etc.)
  • What permissions are needed?
  • What conditions should gate execution? (author, branch, labels, etc.)
  • What API calls are needed?
  • Are there rate limiting or idempotency concerns?
Step 2: Choose the Trigger Event
Use caseEventNotes
PR opened/updatedpull_requestRead-only access to PR
PR with write accesspull_request_targetCan comment, label, close
PR mergedpull_request_target: [closed]Check github.event.pull_request.merged == true
CI checks completecheck_suite: [completed]Filter app.slug != 'github-actions' to skip self
Code pushedpushFilter by branches/paths
Manual triggerworkflow_dispatchAdd inputs: for parameters
ScheduledscheduleUse cron syntax
Show full SKILL.md (202 more words)Show less
Step 3: Write the Workflow

Create the YAML file following this template:

yaml
# Description of what this workflow does and why.

name: Descriptive Workflow Name

on:
  <trigger_event>:
    types: [<event_types>]

permissions:
  <resource>: <read|write>

jobs:
  <job-name>:
    if: <guard_condition>  # Optional: skip when not needed
    runs-on: ubuntu-latest
    steps:
      - name: Descriptive step name
        uses: actions/github-script@v8
        with:
          script: |
            // Your logic here
Step 4: Implement Guard Conditions

Add conditions to avoid unnecessary runs:

  • Job-level if: for event payload checks (e.g., github.event.check_suite.app.slug != 'github-actions')
  • Early return in scripts for PR author, draft status, etc.
  • Idempotency checks (e.g., hidden HTML comments as tags to prevent duplicate actions)
Step 5: Validate

After creating the workflow:

  • Permissions are minimal and explicitly declared
  • Uses actions/github-script@v8 for complex logic
  • Guard conditions prevent unnecessary runs
  • API calls handle pagination where needed (use per_page: 100)
  • Error handling doesn't silently swallow failures
  • No secrets or tokens are hardcoded
  • Workflow doesn't create infinite loops (e.g., a workflow that triggers itself)

Existing Workflows in This Repository

Study these workflows as reference:

WorkflowTriggerPurpose
validate-pr-target-branch.ymlpull_request_target: [opened, edited, reopened]Closes external PRs targeting release branches, adds community labels
label-and-milestone-issues.ymlpull_request_target: [closed]Labels and milestones issues when their fixing PR is merged
copilot-setup-steps.ymlworkflow_dispatch, push, pull_requestSets up the development environment for Copilot
inter-branch-merge-flow.ymlpush to release/**Triggers inter-branch merge via arcade

Common Patterns

Commenting on a PR
javascript
await github.rest.issues.createComment({
  owner: context.repo.owner,
  repo: context.repo.repo,
  issue_number: prNumber,
  body: 'Comment text'
});
Checking User Permissions
javascript
const { data: permissions } = await github.rest.repos.getCollaboratorPermissionLevel({
  owner: context.repo.owner,
  repo: context.repo.repo,
  username: context.actor
});
const hasWriteAccess = ['admin', 'write'].includes(permissions.permission);
Preventing Duplicate Comments (SHA Tag Pattern)
javascript
const shaTag = `<!-- tag: ${headSha} -->`;
const { data: comments } = await github.rest.issues.listComments({
  owner: context.repo.owner,
  repo: context.repo.repo,
  issue_number: prNumber,
  per_page: 100
});
if (comments.some(c => c.body?.includes(shaTag))) {
  console.log('Already processed');
  return;
}
Reading Repository Files at a Specific Commit
javascript
const { data: fileData } = await github.rest.repos.getContent({
  owner, repo,
  path: 'eng/Versions.props',
  ref: commitSha
});
const content = Buffer.from(fileData.content, 'base64').toString('utf-8');

References

© dotnet, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/make-github-actions-workflow of dotnet/efcore.

Open the folder on GitHubat commit 7adff35

Compare with similar skills

Make GitHub Actions Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Make GitHub Actions Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Make GitHub Actions Workflow this skilldotnet/efcore15k—~1.7kAutomated safety check: PassMIT
Nushellccusage/ccusage19k—~938Automated safety check: PassCustom licence
AI News RadarLearnPrompt/ai-news-radar1.8k—~2.5kAutomated safety check: NotesMIT
ONNX Runtime CI Managementmicrosoft/onnxruntime22k—~4.1kAutomated safety check: PassMIT
CI Watchdoglatitude-dev/latitude-llm4.7k—~1.6kAutomated safety check: PassMIT
Use Vercel Actionamondnet/vercel-action765—~2.7kAutomated safety check: PassMIT

Similar skills

  • Nushell

    ccusage/ccusage

    Guides ccusage Nushell scripts. An agent skill from ccusage/ccusage.

    19k GitHub stars~938 tokensUpdated today
    DevOps & CloudAuto-check passed
  • AI News Radar

    LearnPrompt/ai-news-radar

    A skill your agent uses when working on AI News Radar, 24 小时 AI 更新雷达, AI 更新雷达, 伯乐Skill, or Scout Skill: finding high-signal AI/tech sources, adding RSS/OPML/GitHub feeds, checking source health…

    1.8k GitHub stars~2.5k tokensUpdated yesterday
    DevOps & CloudAuto-check: notes
  • ONNX Runtime CI Management

    microsoft/onnxruntime

    Official

    Triggers, re-runs and unblocks the CI checks on an ONNX Runtime pull request, after diagnosing whether a failure is transient or needs a code change.

    22k GitHub stars~4.1k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • CI Watchdog

    latitude-dev/latitude-llm

    Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.

    4.7k GitHub stars~1.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Use Vercel Action

    amondnet/vercel-action

    Wire amondnet/vercel-action into a GitHub Actions workflow to deploy Vercel projects from CI.

    765 GitHub stars~2.7k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • Release

    d-kimuson/claude-code-viewer

    Run the claude-code-viewer release flow end-to-end. An agent skill from d-kimuson/claude-code-viewer.

    1.3k GitHub stars~1.2k tokensUpdated 1 mo ago
    DevOps & CloudAuto-check passed

More from dotnet/efcore

All 17 skills in this repo
  • Make Skill

    dotnet/efcore

    Official

    Create and evaluate new Agent Skills for GitHub Copilot. An agent skill from dotnet/efcore.

    15k GitHub stars~2k tokensUpdated yesterday
    Auto-check passed
  • Make Custom Agent

    dotnet/efcore

    Official

    Create custom GitHub Copilot agents. An agent skill from dotnet/efcore.

    15k GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Make Instructions

    dotnet/efcore

    Official

    Create and evaluate VS Code file-based instructions (.instructions.md files).

    15k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Model Building

    dotnet/efcore

    Official

    Implementation details for EF Core model building. An agent skill from dotnet/efcore.

    15k GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Run Apichief

    dotnet/efcore

    Official

    Run ApiChief in the EF Core repo to emit baselines, summaries, deltas, review files, or breaking-change checks.

    15k GitHub stars~1.3k tokensUpdated yesterday
    Auto-check passed
  • Servicing PR

    dotnet/efcore

    Official

    Create EF Core PRs targeting servicing release branches (release/).

    15k GitHub stars~833 tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Make GitHub Actions Workflow

What does Make GitHub Actions Workflow do?

Create GitHub Actions workflows for CI, automation, or PR management. Make GitHub Actions Workflow is an agent skill from dotnet/efcore, published by the product's own GitHub organization. Create GitHub Actions workflows for CI, automation, or PR management.

When should I use Make GitHub Actions Workflow?

Make GitHub Actions Workflow fits situations like: asked to create; add a GitHub Actions workflow (.yml file under .github/workflows/).

How do I install Make GitHub Actions Workflow in Claude Code?

Run `npx skills add dotnet/efcore --skill make-github-actions-workflow -a claude-code`. Or copy the skill folder (.agents/skills/make-github-actions-workflow in dotnet/efcore) into .claude/skills/make-github-actions-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Make GitHub Actions Workflow in Codex?

Run `npx skills add dotnet/efcore --skill make-github-actions-workflow -a codex`. Or copy the skill folder (.agents/skills/make-github-actions-workflow in dotnet/efcore) into .agents/skills/make-github-actions-workflow in your project. Codex loads it when a task matches its description.

Can I use Make GitHub Actions Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dotnet/efcore --skill make-github-actions-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/make-github-actions-workflow, .gemini/skills/make-github-actions-workflow, .github/skills/make-github-actions-workflow and .opencode/skills/make-github-actions-workflow in your project.

What does Make GitHub Actions Workflow need to run?

SKILL.md names no scripts, command-line tools or credentials: Make GitHub Actions Workflow is instructions for the agent only.

Does Make GitHub Actions Workflow access the network?

SKILL.md names 2 domains. As links in the text: docs.github.com and github.com. This is read from the text; nothing was executed.

Is Make GitHub Actions Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Make GitHub Actions Workflow use?

Make GitHub Actions Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Make GitHub Actions Workflow use?

About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Make GitHub Actions Workflow?

Skills that share tags, products or a category with Make GitHub Actions Workflow: Nushell (ccusage/ccusage, 19k stars), AI News Radar (LearnPrompt/ai-news-radar, 1.8k stars), ONNX Runtime CI Management (microsoft/onnxruntime, 22k stars) and CI Watchdog (latitude-dev/latitude-llm, 4.7k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Make GitHub Actions Workflow?

dotnet (a GitHub organization, an official publisher) maintains it in dotnet/efcore, which has 14,800 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 7, 2026.

Source: dotnet/efcore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.