Using Agent Skills
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
Required before adding or changing anything an agent reads — a convention in AGENTS.md, a procedure as a skill, a pattern-scoped rule.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install epam/cloud-pipeline modifying-instructions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/modifying-instructions .claude/skills/modifying-instructions && rm -rf skills-srcUse ~/.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/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .claude/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install epam/cloud-pipeline modifying-instructions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/modifying-instructions .agents/skills/modifying-instructions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .agents/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install epam/cloud-pipeline modifying-instructions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/modifying-instructions .cursor/skills/modifying-instructions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .cursor/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/epam/cloud-pipeline.git --path .agents/skills/modifying-instructions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install epam/cloud-pipeline modifying-instructions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/modifying-instructions .gemini/skills/modifying-instructions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .gemini/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install epam/cloud-pipeline modifying-instructionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/modifying-instructions .github/skills/modifying-instructions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .github/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add epam/cloud-pipeline --skill modifying-instructions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install epam/cloud-pipeline modifying-instructions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/epam/cloud-pipeline.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/modifying-instructions .opencode/skills/modifying-instructions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "modifying-instructions" agent skill from https://github.com/epam/cloud-pipeline/tree/develop/.agents/skills/modifying-instructions into .opencode/skills/modifying-instructions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "modifying-instructions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
modifying-instructionsRequired before adding or changing anything an agent reads — a convention in AGENTS.md, a procedure as a skill, a pattern-scoped rule.
Modifying Instructions is an agent skill from epam/cloud-pipeline. Required before adding or changing anything an agent reads — a convention in AGENTS.md, a procedure as a skill, a pattern-scoped rule. Holds which of those a thing belongs in, the wiring each needs before it loads at all, and what to keep out of them.
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/claude-md-twins.sh` and `scripts/verify-instructions.sh`).
It sits in Agent Workflows, covering Agent instruction files. The repository describes itself as: Cloud agnostic genomics analysis, scientific computation and storage platform. The licence is Apache-2.0.
Read from SKILL.md and the folder at commit 5017688. It shows what the files ask for, not the result of running them.
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.
Ships 2 files in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Modifying Instructions loads about 2.2k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 1,136 words of instructions outside code blocks.
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.
The automated check found patterns that need a careful read before installing.
- **Repo-relative** shapes (`.env`, `.env.local`, `.env.<environment>.local`, `secrets/`, keystore/key- **Home credential stores** (`~/.ssh`, `~/.aws`, …) stay in `AGENTS.md` and in Claude `Read(~/...)`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); the scripts in this folder are not scanned.
The full file from epam/cloud-pipeline at commit 5017688, republished under its Apache-2.0 licence (© epam). 1,136 words, ~2,170 tokens.
.claude/skills/modifying-instructions/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.| The thing you have | Where |
|---|---|
| A fact or convention, true for a whole subtree | AGENTS.md, or <dir>/AGENTS.md |
| A multi-step procedure, needed occasionally | a skill — .agents/skills/<name>/SKILL.md |
| A constraint tied to a file pattern no directory can express | a rule — one file per vendor, sharing a stem |
| A script an agent runs deliberately | scripts/ inside the skill it supports; others may run it too |
| Setup and usage detail for humans | the module's README.md |
| The team's own process — stages, labels, naming, what a change owes | CONTRIBUTIONS.md |
Behaviour is vendor-neutral. Skills and AGENTS.md name capabilities ("the session's browser
tool", "a fresh agent", "if you cannot ask"). Vendor commands, config paths and permission files
belong only in this skill and in the pointer files it names.
CONTRIBUTIONS.md is written for people. Agents read the conventions it holds and point at it. An
agent-only rule never goes into it — not the steps an agent walks, not what it asks for, not what it
does unattended, not a table of what each vendor supports.
Claude-only surfaces that have no portable equivalent — .claude/settings.json allow/deny/ask,
.claude/agents/, Claude hooks — stay in .claude/ and are extra enforcement, not the spec.
Prefer a skill over a Claude subagent definition.
AGENTS.md loads on every task in the repository; a skill loads only on the tasks matching its
description. Prefer a skill whenever the content is a procedure. In AGENTS.md treat deletion as
the default: cut anything derivable from the file it describes. When you cut something a reader still
needs, move it.
State a rule directly, imperative — never "this skill/file says" about itself.
Don't narrate the reasoning behind a decision, and don't cite .claude/settings.json or another
instruction file as the authority for a rule stated here.
Illustrate a rule with what decides the outcome, not a directory's current state — repository
structure and coupling facts in root AGENTS.md are the exception, named directly.
Cut removed content outright, with no "X was removed" or "X is not relevant here" left behind.
Vendor is the tool an agent runs inside — Claude Code, Cursor, Copilot. Copilot is two of them:
in the editor, and on GitHub, assigned to an issue or a pull request. They read the same files
but index different ones, so the column below says which. client in this repository is the GUI
module and nothing else; never use that word for a tool.
Where a vendor has no equivalent, the cell is empty — never invent a file it cannot enforce.
| Concern | Shared (the spec) | Claude Code | Cursor | Copilot |
|---|---|---|---|---|
| Conventions | AGENTS.md, nested the same way | CLAUDE.md twin (required; Claude does not read AGENTS.md) | native; combines parent into child. .cursor/rules/00-agents.mdc keeps the root file in play | native, nested files included, plus .github/copilot-instructions.md repository-wide |
| Skills | .agents/skills/ | symlink .claude/skills → that directory | native from .agents/skills/ | native in the editor; on GitHub, no skill index — only a file AGENTS.md or copilot-instructions.md told it to open |
| Deny-read (repo files) | AGENTS.md list + .gitignore | permissions.deny Read(...) | .cursorignore | none beyond the prose |
Deny-read (~/ credential stores) | named in AGENTS.md | permissions.deny Read(~/...) | not applicable (those paths are outside the workspace) | none |
Deny-shell (pipectl, force-push, …) | AGENTS.md anti-patterns | permissions.deny Bash(...) | session sandbox; not a repo file | none |
| Browser | verify-client-live | Playwright MCP if already configured | the IDE browser MCP, if the session has it | often none → skip |
| Fresh review | a new agent, given the diff, not the author's conversation | /code-review if that command exists | a fresh subagent | Copilot code review on the PR, otherwise a declared self-review |
| Unattended | you cannot get an answer before the next step | same | same | same |
Root AGENTS.md is the source of truth for conventions. Every other instruction file points at it or
scopes it to a pattern; none of them restate it.
Any directory may carry one, and they nest. A module earns one when it departs from the repository default — a live database, a different test runner, a suite that only partly runs. Most Java modules need none. Keep the root file's claims about a subtree thin: if the two disagree the subtree file wins.
Every AGENTS.md needs a CLAUDE.md beside it whose entire contents are the import:
@AGENTS.mdA script writes and stages the twin — with no arguments, for every AGENTS.md in the working tree;
given directories, only those:
.agents/skills/modifying-instructions/scripts/claude-md-twins.sh
.agents/skills/modifying-instructions/scripts/claude-md-twins.sh client/testWrite the AGENTS.md first: that one is yours. A CLAUDE.md already holding something other than
the import is reported and left alone, since replacing it would throw away what a person wrote.
.agents/skills/ is the source of truth. The .claude/skills link is committed, and
.agents/skills/README.md has the fix where a checkout loses it. A skill that must reach Copilot on
GitHub is named from AGENTS.md or .github/copilot-instructions.md, as a file to open.
Frontmatter takes only name, description, license, compatibility, metadata and
allowed-tools; anything else is a hard error when a skill is packaged. name must equal the
directory name.
The description is the whole index for vendors that index skills. One that describes the
contents but not the occasion never loads.
Keep SKILL.md short. Write what this repository does differently.
What earns one is a glob no single directory can express — crossing sibling trees, or matching by
extension. Anything one directory covers belongs in that directory's AGENTS.md, which says the same
thing to every vendor, so check the nearest common ancestor first.
One rule is three files sharing a stem, each carrying the same prose — client-components.md,
client-components.mdc, client-components.instructions.md. Write all three yourself; where one is
missing the rule is off for that vendor. Only the glob field differs:
| File | Glob field |
|---|---|
.claude/rules/<name>.md | paths: — a YAML list |
.cursor/rules/<name>.mdc | globs:, plus alwaysApply: false |
.github/instructions/<name>.instructions.md | applyTo: — one quoted glob, comma-separated for several |
In .cursor/rules/ an <nn>- prefix marks an always-applied pointer at AGENTS.md instead, and that
file stands alone.
AGENTS.md names the paths agents must not read. Enforcement is extra and incomplete:
.env, .env.local, .env.<environment>.local, secrets/, keystore/key
suffixes) go in permissions.deny in .claude/settings.json, .cursorignore, and .gitignore.~/.ssh, ~/.aws, …) stay in AGENTS.md and in Claude Read(~/...)
denies. They do not belong in .cursorignore.Neither deny-read format supports negation, so the rule is a naming convention rather than a list
with .env.example carved back out. Extending protection means adding a repo-relative pattern to all
three files, or a ~/ path to AGENTS.md and Claude's deny list.
Shell denies live in AGENTS.md anti-patterns for every vendor. Claude may also list them under
permissions.deny.
.agents/skills/modifying-instructions/scripts/verify-instructions.shIt checks the gradle modules these files name against settings.gradle, that every AGENTS.md has
its Claude twin, that every shape in .cursorignore is also denied to Claude Code and gitignored, that
every rule stem exists in all three vendor directories, and that every skill would load. CI runs the
same command from .github/workflows/agent-instructions.yml.
It cannot check prose against reality: a stale paraphrase passes. Point rather than copy.
© epam, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .agents/skills/modifying-instructions of epam/cloud-pipeline.
Open the folder on GitHubat commit 5017688
Modifying Instructions 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Modifying Instructions this skillepam/cloud-pipeline | 162 | — | ~2.2k | Automated safety check: Warn | Apache-2.0 | |
| Using Agent Skillsaddyosmani/agent-skills | 102k | 4 repos | ~2.4k | Automated safety check: Pass | MIT | |
| Claude ReflectBayramAnnakov/claude-reflect | 1.7k | 2 repos | ~627 | Automated safety check: Pass | MIT | |
| Neat-Freak Knowledge CloseoutKKKKhazix/khazix-skills | 21k | — | ~1.9k | Automated safety check: Pass | MIT | |
| Task Observerrebelytics/one-skill-to-rule-them-all | 3.2k | 1 repos | ~12k | Automated safety check: Pass | CC-BY-4.0 | |
| Writing For Agentsbestofjs/bestofjs | 3.1k | 17 repos | ~2.7k | Automated safety check: Pass | MIT |
addyosmani/agent-skills
Meta-skill for choosing which workflow skill fits the task at hand, plus always-on habits: surface assumptions, stop on confusion, push back, keep it simple and stay in scope.
BayramAnnakov/claude-reflect
Self-learning system that captures corrections during sessions and reminds users to run /reflect to update CLAUDE.md.
KKKKhazix/khazix-skills
Brings project docs, agent rule files, authorized memory and leftover workspace files back in line with what the code and runtime actually do at the end of a work session.
rebelytics/one-skill-to-rule-them-all
Monitors task execution for skill improvement opportunities.
bestofjs/bestofjs
Writing documents for agents. An agent skill from bestofjs/bestofjs.
microsoft/SkillOpt
Runs an on-demand or nightly sleep cycle that reviews past Claude Code sessions and proposes validated updates to CLAUDE.md and skills.
epam/cloud-pipeline
Open a user-visible client/ change in a browser against a real Cloud Pipeline deployment.
epam/cloud-pipeline
Learn which toolchains and environments this workstation has and how to invoke them, or set them up when they are missing.
epam/cloud-pipeline
Required before you commit, push or open a pull request here, asked or not.
epam/cloud-pipeline
Plan the work before you edit — its phases, the model and effort each takes, and whether it is worth a plan file with a ledger beside it.
epam/cloud-pipeline
Find and run the checks a change owes, from what it touches and what that can reach.
epam/cloud-pipeline
Start here before the first edit of any file — a one-liner and a docs change included.
Categories
Required before adding or changing anything an agent reads — a convention in AGENTS.md, a procedure as a skill, a pattern-scoped rule. Modifying Instructions is an agent skill from epam/cloud-pipeline.md, a procedure as a skill, a pattern-scoped rule.
Modifying Instructions fits situations like: tasks that involve Agent instruction files.
Run `npx skills add epam/cloud-pipeline --skill modifying-instructions -a claude-code`. Or copy the skill folder (.agents/skills/modifying-instructions in epam/cloud-pipeline) into .claude/skills/modifying-instructions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add epam/cloud-pipeline --skill modifying-instructions -a codex`. Or copy the skill folder (.agents/skills/modifying-instructions in epam/cloud-pipeline) into .agents/skills/modifying-instructions in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add epam/cloud-pipeline --skill modifying-instructions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/modifying-instructions, .gemini/skills/modifying-instructions, .github/skills/modifying-instructions and .opencode/skills/modifying-instructions in your project.
Going by SKILL.md and its folder, Modifying Instructions needs a shell for the scripts in its folder. Our summary lists: A Bash shell.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Modifying Instructions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Modifying Instructions: Using Agent Skills (addyosmani/agent-skills, 102k stars), Claude Reflect (BayramAnnakov/claude-reflect, 1.7k stars), Neat-Freak Knowledge Closeout (KKKKhazix/khazix-skills, 21k stars) and Task Observer (rebelytics/one-skill-to-rule-them-all, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
epam (a GitHub organization) maintains it in epam/cloud-pipeline, which has 162 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.
Source: epam/cloud-pipeline on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.