From coding
Plans system structure — layers, modules, contexts — driven by complexity forces, not fixed patterns. Follows recorded architecture or decides structure for new features.
How this skill is triggered — by the user, by Claude, or both
Slash command
/coding:architectureThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill owns **structural planning** — how the system is organised. Two neighbouring concerns are different *kinds* of problem and stay separate:
This skill owns structural planning — how the system is organised. Two neighbouring concerns are different kinds of problem and stay separate:
A design-forces memo, when one exists, is the input to this skill: it carries the force signals that decide whether and what to structure. Principles (KISS, SOLID, DRY, YAGNI, fail-fast) are how every structure is implemented, never something a structure replaces.
Start from the position that the feature needs no architectural ceremony beyond what the framework already gives you. A framework is itself an architecture; following its grain plainly is a legitimate, often correct, answer. Structure earns its place only when forces make the absence of it more expensive than the cost of adding it.
Resist mapping a framework to a named style by reflex ("Rails, so DCI"; "Spring, so layers"). That is mechanical correspondence wearing a different hat — it bypasses the judgement that makes structure fit. The framework's nature is one input to the force judgement, not a lookup that pre-decides the answer.
docs/architecture.md is a deliberately cheap, maintainable signal. When it exists and covers the area being touched:
No fresh analysis — this is what makes a structural decision persist across features instead of being re-litigated every time.
When there is no record covering this area, or a revisit trigger has fired, the question is not "is docs/architecture.md missing?" — it is "is this now complex enough to need structural planning?"
Read the force signals — from the design-forces memo if present, otherwise a light read of the same lenses. Rule complexity, change rate, blast radius, and team fragmentation push toward structure; delivery pressure and code maturity pull back.
Forces are quiet → stay with the default: framework as-is, no extra structure.
Forces are loud → they surface as a concrete symptom. Recognise it, then read the technique that answers it (the reference explains how):
references/clean-architecture.mdreferences/ddd.mdreferences/dci.mdThese are starting points, not a menu; they compose, and a symptom matching none means reasoning from forces and principles directly.
After committing, record the decision so Mode A applies next time (see Recording below).
Pick once per package; it decides whether the source is the documentation or whether signatures must carry intent. Feeds the principles Commenting rules.
| Module type | Audience | Public symbols |
|---|---|---|
| Application | Operators, end users | Source is the documentation |
| Library / shared module | Other developers via IDE | Signatures carry doc comments stating intent |
| Monorepo with both | Both | Decide per package, not per file |
A fresh Mode B decision should leave a trace, so the next feature reads it instead of re-deciding. Match the weight of the record to the weight of the decision:
docs/architecture.md (~6–10 lines): name in this project's vocabulary / when to apply / shape / canonical example / forces it resolves / revisit-if.docs/architecture.md when the choice sets a project-wide default (e.g. "layered with an inward dependency rule").docs/decisions/ only when the decision is large-blast-radius, multi-team, or hard to reverse.If docs/architecture.md does not exist and a structure was chosen, create it with the style declaration, a directory→structure mapping, and the dependency guidelines for the chosen technique.
| Criterion | Pass |
|---|---|
| Record respected | An existing structure in docs/architecture.md is followed without re-analysis; a fresh decision leaves a record sized to it (Patterns entry, style declaration, or ADR) |
| Structure earned | Default is no extra structure; it is added only on a loud force named as a symptom — never from a missing doc or a framework→style reflex |
| Boundaries follow the model | Context/module partitioning aligns with aggregate boundaries from domain-modeling |
| Dependency direction sound | If a layered/CA technique was chosen, dependencies point inward; no circular references |
| Principles as baseline | KISS / SOLID / DRY / YAGNI treated as how the structure is built, never as something it defers |
npx claudepluginhub elct9620/claudekit --plugin codingProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.