design-change
Skill0 starsChanged 40 days agoMITView on GitHub
Determine where an intended software change belongs, what should own it, which collaborators it may need, and the expected architectural blast radius. Use before realizing a consequential change when placement, ownership, or locality is not already obvious.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- CsHeng/agent-skillstheir own version, first seen Nov 4, 2026
- maxatwork/skillstheir own version, first seen Oct 13, 2026
- BanKnight/claude-templatetheir own version, first seen May 23, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- CsHeng/agent-skills★ 3same name
- BanKnight/claude-template★ 0same name
- maxatwork/skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository16 other files it gives its agents.
- create-checkSkill
- decideSkill
- design-moduleSkill
- groundSkill
- harden-boundarySkill
- harden-checkSkill
- intentSkill
- investigateSkill
- learnSkill
- pave-pathSkill
- ratchetSkill
- realizeSkill
- specifySkill
- validateSkill
- verifySkill
- wire-checkSkill
The file
Files
Design Change
Make the intended change obvious and local before writing it. Architecture should reduce the contributor's search space, not merely describe the finished system.
Work
- Start from the change, not the folder tree. State the behavior or capability that must change and the governing intent/specification. Do not choose a module merely because its name resembles the request.
- Find the dominant unit of change. Inspect domain language, nearby behavior, public APIs, dependency rules, tests, recent relevant changes, and existing ownership. Ask which design decision should be independently changeable. Prefer observed change patterns over aesthetic symmetry.
- Name the owner. Identify the module/subsystem that gives the behavior meaning. Reuse an existing owner when one is coherent; do not create a new module to avoid making a placement decision.
- Identify the supported surface. Determine the public operation/API the change should enter through and which implementation details should remain hidden. If the required capability does not exist, say whether extending the surface is part of the change.
- Map collaborators and boundaries. Record dependencies the owner may legitimately use and architectural boundaries it should not cross. Distinguish visibility (who may access an implementation) from direction (who may depend on whom).
- Predict blast radius. List the paths/modules expected to change and the important areas expected to remain untouched. Optimize for few ownership boundaries crossed, not merely few files.
- Challenge the placement. Ask whether the proposed shape creates horizontal scattering, a shared/common sink, a shallow pass-through module, a speculative abstraction, or an unexpected cross-domain dependency. Trace a representative operation: does placement reduce the layers a reader must follow and the state/invariants they must hold, or merely move coordination across files? If consequential uncertainty remains, route to
investigateordesign-modulerather than guessing. - Make the hypothesis falsifiable. Preserve the expected blast radius so
verifycan compare it with the actual diff. Unexpected movement is evidence to investigate, not automatically a violation.
Return
- Change
- Owner
- Supported surface
- Allowed collaborators
- Expected blast radius — paths/modules likely to change
- Expected containment — important areas that should not need changes
- Open design uncertainty, if any
Failure signals
Watch for choosing a technical layer instead of an owner, defaulting everything to shared/utils, creating a module because a directory would look tidy, prescribing vertical slices regardless of the system's real unit of change, counting files instead of boundaries, and treating the predicted blast radius as unquestionable architecture.
Done when
An unfamiliar contributor has a defensible, evidence-backed answer to where the change belongs, how it enters the owning module, what it may depend on, and what architectural movement would be surprising enough to investigate during verification.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

