Agent skill

Change Map

by ayoubben18 in ayoubben18/ab-method

Draw a task's blast radius twice. An agent skill from ayoubben18/ab-method.

MITAuto-check passed

Install Change Map

skills CLI
$ npx skills add ayoubben18/ab-method --skill change-map -a claude-code

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

GitHub CLI
$ gh skill install ayoubben18/ab-method change-map --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/ayoubben18/ab-method.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/change-map .claude/skills/change-map && 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
change-map
GitHub stars
192
Token cost
~2.9k tokens
SKILL.md length
1,633 words
Files
2
Skills in repo
26
Repo updated
First seen
Licence
MIT

At a glance

Draw a task's blast radius twice. An agent skill from ayoubben18/ab-method.

  • Works in 3 steps: CONTEXT.md / CONTEXT-MAP.md — the… → docs/architecture/* — documented entry… → The source tree — top-level source…
  • SKILL.md covers What counts as a module here, Pass 1 — the planned map, Pass 2 — the actual map and Pass 3 — drift, plus 6 more sections
  • Calls git and npx

What it does

Change Map is an agent skill from ayoubben18/ab-method. Draw a task's blast radius twice. BEFORE implementing, a PLANNED map of the modules the missions expect to add, change or touch; AFTER the reviewers pass, an ACTUAL map derived from the real diff, plus the DRIFT between them. Writes docs/tasks/<task/change-map.md. Use from create-task / extend-task (planned pass), and after review-implementation + sync-architecture in create-task / resume-task / start-task / start-roadmap (actual pass), or standalone on a task.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `DIAGRAM-FORMAT.md`).

The repository describes itself as: A workflow system for Claude Code and Codex. It grills a problem into a domain-grounded plan, then either drives it through test-driven missions you review one at a time, or… The licence is MIT.

Example prompts

  • “/change-map”

Requirements

  • Node.js

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. CONTEXT.md / CONTEXT-MAP.md — the bounded contexts, named in the project's own ubiquitous
  2. docs/architecture/* — documented entry points, layers, and pattern groupings.
  3. The source tree — top-level source directories, one level deeper where a directory is large.

What it can do on your machine

Read from SKILL.md and the folder at commit 85946e3. 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

    Shell commands in SKILL.md call:

    • git
    • npx

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

  • Network

    No URLs in SKILL.md. Its commands use git and npx, which can reach the network depending on how they are called.

    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

Change Map loads about 2.9k tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 1,633 words of instructions outside code blocks.

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

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 ayoubben18/ab-method at commit 85946e3, republished under its MIT licence (© ayoubben18). 1,633 words, ~2,898 tokens.

Download SKILL.mdSave it as .claude/skills/change-map/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
change-map
description
Draw a task's blast radius twice. BEFORE implementing, a PLANNED map of the modules the missions expect to add, change or touch; AFTER the reviewers pass, an ACTUAL map derived from the real diff, plus the DRIFT between them. Writes docs/tasks/<task>/change-map.md. Use from create-task / extend-task (planned pass), and after review-implementation + sync-architecture in create-task / resume-task / start-task / start-roadmap (actual pass), or standalone on a task.

Change Map (pre- and post-implementation)

The artifact that answers "where in the codebase does this task live?" — asked twice, on purpose:

  • Planned — before a line is written, from the missions: which modules the task expects to add, change, or brush against.
  • Actual — after the missions are green and the reviewers have passed, from the real diff: which modules it did.
  • Drift — the difference between them. Drift is the deliverable; the two maps exist so it can be computed at all.

Where the other post-implementation skills judge the change — ../review-implementation/SKILL.md asks "is this good code?", ../sync-architecture/SKILL.md asks "do the docs know about it?" — this one only describes its shape. It never reviews code, never edits code, never edits the architecture docs.

Reduction is the point. A task that touched 40 files gets 6 rows; the cap is 10. A map that reads as an inventory of the diff has failed — the tracker's mission summaries already list the files. The map exists to be understood in seconds, months later, by someone who will not read the diff.

ALWAYS check .ab-method/structure/index.yaml FIRST for where tasks and the architecture/domain docs live — paths are user-configurable. The rendering rules, the line types, and a full worked file live in DIAGRAM-FORMAT.md; read it before drawing either pass.

Look for it under the project root (the current working directory) first — a project's own copy is how it customises its paths, so it always wins. Only if the project has none (AB Method installed as a plugin rather than with npx ab-method), read the bundled default: ../../../.ab-method/structure/index.yaml relative to this SKILL.md. Either way, every path the index names is relative to the project root, never to the folder the bundled file lives in.

What counts as a module here

Not "a directory". The map partitions the codebase the way this project partitions it, in this order:

  1. CONTEXT.md / CONTEXT-MAP.md — the bounded contexts, named in the project's own ubiquitous language. Best source by far: the map then speaks the domain, and a row nobody predicted reads as a context boundary being crossed, not as "another folder changed".
  2. docs/architecture/* — documented entry points, layers, and pattern groupings.
  3. The source tree — top-level source directories, one level deeper where a directory is large.

A module is a module in the ../codebase-design/SKILL.md sense — an interface with an implementation hidden behind it — and rows are named the way the docs already name it. Never invent a taxonomy the project doesn't use; a map in private vocabulary is unreadable to everyone but the session that drew it.

Pass 1 — the planned map

When: /create-task § 7.6 (after critique-plan, before the user validates the plan) and /extend-task (appended for the new missions). It is drawn from the plan, never from code you wrote.

Inputs: the drafted missions, the grill's constraints and existing-code anchors, the architecture + domain docs, and enough of a read of the named modules to tell [NEW] from [extended].

  • One row per module the missions touch, with the missions that touch it in the right-hand column (M2 · M4).
  • + lines list only interfaces the plan actually commits to — an endpoint the mission names, a function the grill agreed on, a type the tracker records. If the plan names none, omit the line. A predicted symbol nobody promised is the single thing that makes the later drift meaningless: it turns a prediction into a guess, and drift against a guess measures nothing.
  • Seam lines (└ will use, ▲ will be called by) only where a mission genuinely crosses them.
  • The → line — one sentence on what this module will do that it doesn't today — is mandatory. A row with an unwritten → is not publishable.

If drawing the map forces you to invent a module, the plan is wrong — not the map. This pass is a second read on the missions: a module you can't attribute to a mission, or a mission whose row you can't place anywhere, is a planning gap critique-plan didn't catch. Say so out loud and fix the missions before the user validates them. That is most of this pass's value; the picture is the by-product.

The planned map is shown to the user in /create-task § 8 alongside the mission list — they are validating the blast radius, not just the sentences.

Pass 2 — the actual map

When: after review-implementation and sync-architecture have run, before the task's status is set to Completed. Not earlier: the reviewers apply safe fixes and commit append-only doc additions, so a map drawn before them describes a diff that no longer exists.

Derive it from the task's commit range, never the working tree:

bash
git diff --name-status -M <base>..<head>   # what changed, and how
git diff --numstat    -M <base>..<head>    # how much, for the verdicts

<base>..<head> is the task's own range — the parent of its first mission commit through the last commit the task made (including the review and doc-sync commits). If the working tree is dirty, say so and commit first; a map of uncommitted work is not reproducible.

Verdicts here are derived, not judged (thresholds in DIAGRAM-FORMAT.md). The + / − lines are exported symbols that exist at head but not base, or the reverse — re-exports and export default are skipped, because a barrel forwarding a symbol is not new logic. A − line is often the most informative thing on the page: it is where the task removed a concept.

Generated and vendored files (lockfiles, migration snapshots, generated route trees, i18n catalogs, build output) are excluded from ranking, so a 9,000-line generated file can't push the real change off the map. They still appear in the also touched: tail.

Write each → line after reading the module — never paraphrased from the symbol names. Names say what moved; only the sentence says what it now does.

Show full SKILL.md (705 more words)Show less

Pass 3 — drift

Three findings, in a table (format in DIAGRAM-FORMAT.md):

  • Unplanned — in Actual, absent from Planned. The blast radius was wider than the plan said. State why in one clause, citing the mission that reached it. This is the most valuable row on the page.
  • Predicted, untouched — in Planned, absent from Actual. Either the plan over-drew the scope (fine — note it and move on) or a mission claimed that module and didn't deliver it (not fine — re-read that mission's summary in the tracker and say so before the task is closed).
  • Escalated — the same module, at a heavier verdict than planned ([touched] → [rewritten], [extended] → [NEW] siblings). The plan under-read the work.

A task that landed where its plan said gets exactly one line — No drift — the change landed where the plan said it would. — and that is the good, common outcome for a well-grilled task. Never manufacture drift to look thorough.

What drift is actually for. It routes; it never fixes:

Drift patternWhat it meansRoute to
The same unplanned module keeps appearing across tasksChanges keep leaking there — a locality problem/improve-codebase-architecture (codebase-design: leverage, locality)
An unplanned row crosses a bounded contextThe boundary in CONTEXT.md may be drawn in the wrong place/domain-model
A predicted-untouched row whose mission claimed itThe mission may not have done what its summary saysRe-read that mission before setting the task Completed
Wide drift on almost every taskMissions are being drafted without reading the code/create-task § 2 — the project-analysis step is being skipped

Output — change-map.md

Written next to progress-tracker.md, at docs/tasks/<task>/change-map.md.

  • The planned pass creates the file with ## Planned only.
  • The actual pass appends ## Actual and ## Drift.

The actual pass never rewrites ## Planned. The planned map is a record of what you believed before you knew, and it stays wrong on the page — editing it to match reality destroys the only thing the file is for.

Modes

Interactive (/create-task, /resume-task, /extend-task, standalone): show the map inline. On the actual pass, walk the drift findings with the user before closing the task.

Autonomous (/start-task, /start-roadmap): write the file, commit it as docs(<task>): change map (repo convention), and put the drift lines in the run's final report. Never prompt — an afk user must not discover a wider-than-planned blast radius by accident.

When there is no planned map

A task created before this skill existed, or one you're mapping standalone, has no ## Planned section. Draw ## Actual and record Drift: no planned map — nothing to compare.

Never back-fill a planned map from the diff. A prediction reverse-engineered from the answer is a lie, and every drift computation that reads the file afterwards inherits it.

What this skill does NOT do

It does not review the change (that's review-implementation), does not update the architecture or domain docs (that's sync-architecture / /update-architecture), and does not edit code. It only describes shape. Keep it that way: judgment living in two places drifts, and a map that argues stops being a map.

Key Principles

  • Drift is the deliverable — the two maps are the instrument, not the product.
  • Reduction over inventory — 10 rows maximum, siblings collapsed; the mission summaries already list files.
  • Predict only what the plan commits to — an invented symbol or module makes the drift measure nothing.
  • The planned map is immutable once written — it records a belief, and being wrong is its whole value.
  • Never back-fill a prediction from the answer — a task with no planned map has no drift, and that's fine.
  • Speak the project's language — rows come from CONTEXT.md and the architecture docs, never a taxonomy you made up.
  • Report, never fix — drift routes to /improve-codebase-architecture, /domain-model, or a re-read of a mission.

Remember

  • Check .ab-method/structure/index.yaml for paths; read DIAGRAM-FORMAT.md before drawing.
  • The planned pass runs after critique-plan (missions may still change) and before the user validates.
  • The actual pass runs after review-implementation and sync-architecture — their commits are part of the diff it maps.
  • Map the commit range, not the working tree; a dirty tree means commit first.
  • Every → is written by you, after reading the module. A map shipped with an unfilled → advertises that nobody read the change.
  • The ## Actual block plus its also touched: line is exactly what goes at the top of this task's PR body.

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

Files

SKILL.md and 1 other file in .agents/skills/change-map of ayoubben18/ab-method.

  • SKILL.md
  • DIAGRAM-FORMAT.md

Open the folder on GitHubat commit 85946e3

Compare with similar skills

Change Map 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.

Change Map compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Change Map this skillayoubben18/ab-method192—~2.9kAutomated safety check: PassMIT
Data Breach Blast Radiusgithub/awesome-copilot40k1 repos~3.6kAutomated safety check: NotesMIT
Blast Radius Checkcursor/plugins10k9 repos~964Automated safety check: PassNone
Blast Radiuspedrohcgs/claude-code-my-workflow1.7k—~1.5kAutomated safety check: NotesMIT
Token Mapnexu-io/open-design100k—~1.4kAutomated safety check: PassApache-2.0
Maps Geographyasgeirtj/system_prompts_leaks69k—~717Automated safety check: PassCC0-1.0

Similar skills

  • Data Breach Blast Radius

    github/awesome-copilot

    Official

    Pre-breach impact analysis: inventories sensitive data (PII, PHI, PCI-DSS, credentials), traces data flows, scores exposure vectors, and produces a regulatory blast radius report with fine ranges…

    40k GitHub starsUsed in 1 repo~3.6k tokens
    Legal & ComplianceAuto-check: notes
  • Blast Radius Check

    cursor/plugins

    Official

    Finds what a code change could break outside its diff and proves the single fact that makes it safe by running real code instead of writing an explanation.

    10k GitHub starsUsed in 9 repos~964 tokens
    DevelopmentAuto-check passed
  • Blast Radius

    pedrohcgs/claude-code-my-workflow

    Before and after changing anything shared — a function's return value, a signature, a schema, a label set, a config default, a constant, a file format — find every consumer and actually run them.

    1.7k GitHub stars~1.5k tokensUpdated 11 days ago
    Auto-check: notes
  • Token Map

    nexu-io/open-design

    Map an extracted Figma / source-code token bag onto the active OD design system, producing a deterministic mapping the generate stage can consume.

    100k GitHub stars~1.4k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Maps Geography

    asgeirtj/system_prompts_leaks

    Accurate maps from real geo data — use for any map, or whenever geography would make a good graphic for a deliverable

    69k GitHub stars~717 tokensUpdated yesterday
    Auto-check passed
  • Feature Map

    onyx-dot-app/onyx

    Use the Onyx feature map (.agents/feature-map/) to learn what a product surface does, the code behind it, and what a change can break.

    32k GitHub stars~459 tokensUpdated today
    Auto-check passed

More from ayoubben18/ab-method

All 26 skills in this repo
  • Codebase Design

    ayoubben18/ab-method

    Shared vocabulary and principles for designing deep modules — small interfaces, clean seams, testable through the interface.

    192 GitHub stars~1.7k tokensUpdated 8 days ago
    Auto-check passed
  • Grill With Docs

    ayoubben18/ab-method

    Grilling session that challenges your plan against the existing domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise.

    192 GitHub stars~2.1k tokensUpdated 8 days ago
    Auto-check passed
  • Handoff

    ayoubben18/ab-method

    Compact the current conversation (or a side-topic that surfaced mid-grill) into a handoff document another agent can pick up.

    192 GitHub stars~696 tokensUpdated 8 days ago
    Auto-check passed
  • Improve Codebase Architecture

    ayoubben18/ab-method

    Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.

    192 GitHub stars~1.9k tokensUpdated 8 days ago
    Auto-check passed
  • Reconcile Roadmap

    ayoubben18/ab-method

    Cross-plan coherence critic for a whole roadmap. An agent skill from ayoubben18/ab-method.

    192 GitHub stars~2.8k tokensUpdated 8 days ago
    Auto-check passed
  • Review Implementation

    ayoubben18/ab-method

    Post-implementation review. An agent skill from ayoubben18/ab-method.

    192 GitHub stars~1.5k tokensUpdated 8 days ago
    Auto-check passed

Questions about Change Map

What does Change Map do?

Draw a task's blast radius twice. An agent skill from ayoubben18/ab-method. Change Map is an agent skill from ayoubben18/ab-method. Draw a task's blast radius twice.

How do I install Change Map in Claude Code?

Run `npx skills add ayoubben18/ab-method --skill change-map -a claude-code`. Or copy the skill folder (.agents/skills/change-map in ayoubben18/ab-method) into .claude/skills/change-map in your project. Claude Code loads it when a task matches its description.

How do I install Change Map in Codex?

Run `npx skills add ayoubben18/ab-method --skill change-map -a codex`. Or copy the skill folder (.agents/skills/change-map in ayoubben18/ab-method) into .agents/skills/change-map in your project. Codex loads it when a task matches its description.

Can I use Change Map 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 ayoubben18/ab-method --skill change-map -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/change-map, .gemini/skills/change-map, .github/skills/change-map and .opencode/skills/change-map in your project.

What does Change Map need to run?

Going by SKILL.md and its folder, Change Map needs the command-line tools its instructions call (git and npx). Our summary lists: Node.js.

Does Change Map access the network?

SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Change Map 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 Change Map use?

Change Map 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 Change Map use?

About 2.9k tokens (SKILL.md is roughly 12k 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 Change Map?

Skills that share tags, products or a category with Change Map: Data Breach Blast Radius (github/awesome-copilot, 40k stars), Blast Radius Check (cursor/plugins, 10k stars), Blast Radius (pedrohcgs/claude-code-my-workflow, 1.7k stars) and Token Map (nexu-io/open-design, 100k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Change Map?

ayoubben18 (a GitHub user) maintains it in ayoubben18/ab-method, which has 192 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 1, 2026.

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