kanso
Skill11 starsChanged 2 months agoMITView on GitHub
Choose simple, maintainable software designs by removing speculative complexity, comparing alternatives, and making explicit tradeoffs. Use for architecture, API, data-model, dependency, and scope decisions.
In this repository13 other files it gives its agents.
- andonSkill
- genchi-genbutsuSkill
- hanseiSkill
- jidokaSkill
- kaizenSkill
- kataSkill
- kodawariSkill
- monozukuri-blueprintSkill
- monozukuri-coreSkill
- monozukuri-routerSkill
- nemawashiSkill
- poka-yokeSkill
- shukkaSkill
The file
We split this skill into the rules it gives an agent
8 rules. About 0 are common, 8 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 64
Keep boundaries cohesive, contracts small, and complexity in the layer best able to own it.
- Distinctive: line 80
Every added abstraction, dependency, service, or configuration option needs a concrete requirement, constraint, or measured problem.
- Distinctive: line 86
Do not confuse extensibility with maintainability.
- Distinctive: line 87
Do not optimize theoretical scale before measuring required scale.
- Distinctive: line 88
Do not pursue aesthetic purity at the expense of clear delivery.
- Distinctive: line 89
Do not use “future-proof” as evidence.
- Distinctive: line 90
Do not force a rewrite when a small seam or incremental change is safer.
- Distinctive: line 99
If a referenced skill is not installed, apply its named lens inline instead of trying to invoke it.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Kanso
Kanso is deliberate simplicity. In software, choose the smallest complete design that solves the real problem and can be changed safely later. This is a Japanese-inspired engineering metaphor that complements YAGNI, KISS, and sound design practice.
Use this skill when
- selecting an architecture for a greenfield project;
- choosing between implementation or integration approaches;
- designing a public API, data model, module boundary, or extension point;
- deciding whether to add a dependency, abstraction, service, or configuration;
- a solution feels clever, generic, or larger than the requirement; or
- a successful first version is at risk of becoming an overbuilt second system.
Outcome
Produce a design decision that explains:
- the actual requirement and constraints;
- the simplest viable approach;
- alternatives considered and why they were rejected;
- complexity introduced and where it lives;
- invariants, failure behavior, and likely change points;
- how the design will be tested and observed; and
- what is explicitly out of scope.
Workflow
1. Name the problem
Separate the required behavior from imagined future capability. Identify the smallest useful user or system outcome and the constraints that make it real.
2. Generate bounded alternatives
Compare two or three materially different shapes only when the choice matters. For each, name concepts added, operational cost, failure modes, migration cost, and reversibility. Do not create a catalogue of theoretical architectures.
3. Apply the simplicity tests
Ask:
- Is this complexity required today?
- Does it reduce a known risk or future change cost?
- Does it make the behavior easier to understand and test?
- Can local duplication be clearer than a new abstraction?
- Can the design be removed or simplified if the assumption is wrong?
Reject speculative frameworks, wrappers, plugin points, generic serializers, configuration matrices, and distributed components unless a concrete need pays for them.
4. Preserve a useful seam
Make likely change local and explicit without guessing every future feature. Keep boundaries cohesive, contracts small, and complexity in the layer best able to own it. Document the reason for non-obvious placement.
Existing repository conventions take precedence over stylistic defaults when they are documented, coherent, and not causing the current problem. Change a convention only with evidence and a clear boundary. Do not reformat untouched code or apply broad lint fixes while making a focused design change.
5. Decide and verify
State the chosen approach, tradeoffs, and non-goals. Define the first vertical slice and the evidence that would prove the design works. Do not hide an unresolved decision behind implementation momentum.
Evidence standard
Every added abstraction, dependency, service, or configuration option needs a concrete requirement, constraint, or measured problem. Every rejected simpler option needs a reason grounded in the actual system.
Boundaries
- Do not confuse extensibility with maintainability.
- Do not optimize theoretical scale before measuring required scale.
- Do not pursue aesthetic purity at the expense of clear delivery.
- Do not use “future-proof” as evidence.
- Do not force a rewrite when a small seam or incremental change is safer.
Handoff
End with a short decision record and the first verifiable slice. Hand off to
kata when implementation is ready, or back to nemawashi when a requirement
or stakeholder decision remains open. Use kodawari after implementation to
check whether the design stayed as simple as promised.
If a referenced skill is not installed, apply its named lens inline instead of trying to invoke it.
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.

