Make Changes
remix-run/remix
Create or update Remix repo change files under packages//.changes.
A skill your agent uses for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is…
$ npx skills add bastani-inc/atomic --skill how -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install bastani-inc/atomic how --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/bastani-inc/atomic.git skills-src && mkdir -p .claude/skills && cp -r skills-src/packages/workflows/skills/how .claude/skills/how && 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 "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .claude/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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/bastani-inc/atomic/tree/main/packages/workflows/skills/howType 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 bastani-inc/atomic --skill how -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install bastani-inc/atomic how --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bastani-inc/atomic.git skills-src && mkdir -p .agents/skills && cp -r skills-src/packages/workflows/skills/how .agents/skills/how && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .agents/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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 bastani-inc/atomic --skill how -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install bastani-inc/atomic how --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bastani-inc/atomic.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/packages/workflows/skills/how .cursor/skills/how && 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 "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .cursor/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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/bastani-inc/atomic.git --path packages/workflows/skills/how--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 bastani-inc/atomic --skill how -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install bastani-inc/atomic how --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bastani-inc/atomic.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/packages/workflows/skills/how .gemini/skills/how && 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 "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .gemini/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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 bastani-inc/atomic howInstalls 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 bastani-inc/atomic --skill how -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/bastani-inc/atomic.git skills-src && mkdir -p .github/skills && cp -r skills-src/packages/workflows/skills/how .github/skills/how && 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 "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .github/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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 bastani-inc/atomic --skill how -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install bastani-inc/atomic how --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/bastani-inc/atomic.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/packages/workflows/skills/how .opencode/skills/how && 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 "how" agent skill from https://github.com/bastani-inc/atomic/tree/main/packages/workflows/skills/how into .opencode/skills/how/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "how", 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.
howA skill your agent uses for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is…
How is an agent skill from bastani-inc/atomic. Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is this the right layer"). Explains subsystem architecture, runtime flow, onboarding mental models. Can critique architecture. Use why for motivation.
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 6 other files, including reference files (for example `references/critic-prompt.md`, `references/critique-rubric.md` and `references/explainer-prompt.md`).
The repository describes itself as: The verifiable coding agent runtime. Define your coding agent's process in natural language with stages, checks, and approval gates instead of hoping it follows your… The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ad79904. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
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.
How loads about 2.3k tokens when it runs, and up to ~5.1k if it reads all its reference files. Until then it costs about 82 tokens; SKILL.md has 988 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 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.
The full file from bastani-inc/atomic at commit ad79904, republished under its MIT licence (© bastani-inc). 988 words, ~2,334 tokens.
.claude/skills/how/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Explore the codebase to answer "how does X work?" questions. Produce clear architectural explanations at the level of a senior engineer onboarding onto a subsystem. Enough to build a working mental model, not annotated source code.
Two modes:
Parse what the user is asking about:
Identify the scope. If ambiguous, state your best-guess interpretation before exploring. Don't ask. Let the user redirect if you're off.
Assess complexity to decide the approach:
codebase-analyzer that explores and explains in a single pass. Go to Step 2b.When in doubt, lean simple. Add a focused exploration specialist only when the first analysis exposes a real gap.
Before delegating, discover the executable Atomic agents. Do not invent an agent name or pin a model:
subagent({ action: "list" })Use the listed agents' declared models and fallback policies unless the user explicitly requests an available override.
Decompose the question into 2-4 parallel exploration angles, each a distinct slice of the subsystem so explorers don't duplicate work. Example split for "how does the rate limiter work?":
The right decomposition depends on the question. Use your judgment. Narrow questions: 2 explorers is fine. Broad subsystems: up to 4.
Launch the exploration as one Atomic parallel call. Use codebase-locator for the file map, codebase-analyzer for implementation flow, and codebase-pattern-finder only when analogous conventions materially help. Broad questions may use multiple codebase-analyzer tasks, one per non-overlapping slice.
subagent({
tasks: [
{ agent: "codebase-locator", task: "Map the files, entry points, tests, and configuration for <question>. Return paths and why each matters." },
{ agent: "codebase-analyzer", task: "Trace <exploration-angle-1> for <question>, with file:line evidence. Inspect and report only; do not edit." },
{ agent: "codebase-analyzer", task: "Trace <exploration-angle-2> for <question>, with file:line evidence. Inspect and report only; do not edit." },
{ agent: "codebase-pattern-finder", task: "Find existing patterns analogous to <question> and explain where they agree or differ. Inspect and report only." }
],
concurrency: 4,
context: "fresh"
})Include only the tasks the question needs; do not add a pattern pass decoratively. Build each analyzer task from references/explorer-prompt.md plus its specific angle. Each exploration task should:
find and search for relevant directories and symbolsThe specialists return structured findings with components, flow, files, and non-obvious details. Overlap is acceptable; the parent reconciles it.
Then proceed to Step 3.
Run one codebase-analyzer in fresh context:
subagent({
agent: "codebase-analyzer",
task: "Explore and explain <question> with file:line evidence. Follow the communication style and output structure from the how skill's explainer prompt. Inspect and report only; do not edit.",
context: "fresh"
})Build the task from references/explainer-prompt.md. The analyzer explores with Atomic's find, search, and read tools and writes the explanation directly; there are no explorer findings to hand off.
Proceed to Step 4.
Once all specialists return, synthesize their findings in the parent session. The parent owns orchestration and the final response; Atomic subagents cannot launch another subagent, and no generic synthesis agent is needed.
Follow references/explainer-prompt.md for the communication style and output format. Reconcile overlap and contradictions against the cited code, then weave the slices into one coherent explanation. If a contradiction cannot be resolved from the returned evidence, run one focused follow-up codebase-analyzer call rather than guessing.
Present the final explanation to the user. You may lightly edit specialist output for clarity or add context from the conversation, but preserve evidence and file references. The explanation is the product.
Follow this structure, adapted to the question. Not every section is needed for every question.
Overview. 1-2 paragraphs. What it is, what it does, why it exists. Enough to decide whether to keep reading.
Key Concepts. The important types, services, or abstractions. Brief definition of each. Not exhaustive, just the ones needed to understand the rest.
How It Works. The core of the explanation. Walk through the flow: what triggers it, what happens step by step, where data goes, the decision points. Prose, not pseudocode. Reference specific files and functions so the reader can go look, but don't dump code blocks unless a snippet is genuinely necessary.
Where Things Live. A brief map of the relevant files/directories. Not every file, just the ones needed to start working in this area.
Gotchas. Non-obvious or surprising things that would trip someone up. Historical context that explains why something looks weird. Known sharp edges.
Triggered when the user asks for architectural issues, problems, or improvements, not just understanding.
Run the full explain flow above (Steps 1-4). You must understand the architecture before critiquing it.
After the explanation is complete, launch fresh-context specialists with distinct review angles. Keep their declared model defaults; do not create a model roster or override models merely for diversity.
subagent({
tasks: [
{ agent: "codebase-analyzer", task: "Critique <explanation> for correctness, coupling, ownership, and regressions. Inspect <relevant-paths>. Report evidence-backed findings only; do not edit.", output: false },
{ agent: "debugger", task: "Inspect-only architectural failure-mode review of <explanation> and <relevant-paths>. Do not edit. Challenge lifecycle, state, error, concurrency, and boundary assumptions using concrete code evidence.", output: false },
{ agent: "codebase-pattern-finder", task: "Compare <explanation> and <relevant-paths> with established repository patterns. Report meaningful consistency gaps or better-fitting precedents with file:line evidence; do not edit.", output: false }
],
concurrency: 3,
context: "fresh"
})Use only agents returned by subagent({ action: "list" }). Read references/critic-prompt.md and references/critique-rubric.md when building each role-specific task. Every critic receives the explanation and relevant file paths, but owns a different angle rather than a different hard-coded model.
Same framework as the interrogate skill. You're a pragmatic lead, not an aggregator.
Categorize findings:
Present the explanation first (from Step 1), then the critique verdict below it. The explanation should stand on its own; someone who just wants to understand the system shouldn't wade through critique.
© bastani-inc, MIT. 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 5 other files (references) in packages/workflows/skills/how of bastani-inc/atomic.
Open the folder on GitHubat commit ad79904
We found 3 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 3 other GitHub owners. This page covers the copy in bastani-inc/atomic, which our catalogue first saw on October 7, 2026.
How 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 |
|---|---|---|---|---|---|---|
| How this skillbastani-inc/atomic | 850 | 3 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Make Changesremix-run/remix | 33k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Orch Change Featureaffaan-m/ECC | 276k | 1 repos | ~420 | Automated safety check: Pass | MIT | |
| Change Managementsickn33/agentic-awesome-skills | 47k | 2 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Implement Changepnpm/pnpm | 37k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Testing Changespnpm/pnpm | 37k | — | ~1.1k | Automated safety check: Pass | MIT |
remix-run/remix
Create or update Remix repo change files under packages//.changes.
affaan-m/ECC
Orchestrate altering an existing, working feature to new desired behavior — update its tests to the new spec, change the implementation to match, review, and gated commit.
sickn33/agentic-awesome-skills
Implement change management processes. An agent skill from sickn33/agentic-awesome-skills.
pnpm/pnpm
Implement a pnpm feature, bug fix, or refactor by checking existing capabilities, prioritizing code reuse and deduplication, assessing architecture impact, and validating the final change.
pnpm/pnpm
Run the tests that cover a change in the pnpm repository, in the Rust workspace (pnpm/, pnpr/) or the TypeScript CLI (pnpm11/), and recognize the cases where a scoped run passes without testing…
alirezarezvani/claude-skills
Framework for rolling out organizational changes without chaos.
bastani-inc/atomic
A skill your agent uses whenever a task involves a document file (PDF, DOCX, PPTX, XLSX, or image) and you need to read it or pull text, tables, or specific values out of it — to answer a question…
bastani-inc/atomic
A skill your agent uses when building, testing, and deploying JavaScript/TypeScript applications.
bastani-inc/atomic
Draft, revise and post privacy-scrubbed Atomic bug reports or enhancements through ordinary conversation.
bastani-inc/atomic
A skill your agent uses when setting up or running hooks with prek in any repository.
bastani-inc/atomic
Test-driven development with red-green-refactor loop, plus a value gate and audit workflow for tests.
bastani-inc/atomic
Control tmux-compatible sessions/windows/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.
A skill your agent uses for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is…. How is an agent skill from bastani-inc/atomic. Use for "how does X work", code walkthroughs before changing something, and placement / ownership / layering questions ("where should this live", "which package owns this", "is this the right layer").
How fits situations like: how does X work; code walkthroughs before changing something; placement / ownership / layering questions (where should this live; which package owns this.
Run `npx skills add bastani-inc/atomic --skill how -a claude-code`. Or copy the skill folder (packages/workflows/skills/how in bastani-inc/atomic) into .claude/skills/how in your project. Claude Code loads it when a task matches its description.
Run `npx skills add bastani-inc/atomic --skill how -a codex`. Or copy the skill folder (packages/workflows/skills/how in bastani-inc/atomic) into .agents/skills/how 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 bastani-inc/atomic --skill how -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/how, .gemini/skills/how, .github/skills/how and .opencode/skills/how in your project.
SKILL.md names no scripts, command-line tools or credentials: How is instructions for the agent only.
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 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.
How is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with How: Make Changes (remix-run/remix, 33k stars), Orch Change Feature (affaan-m/ECC, 276k stars), Change Management (sickn33/agentic-awesome-skills, 47k stars) and Implement Change (pnpm/pnpm, 37k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
bastani-inc (a GitHub organization) maintains it in bastani-inc/atomic, which has 850 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 9, 2026.
Source: bastani-inc/atomic on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.