architecture-review
Skill0 starsChanged 10 days agoMITView on GitHub
Review the architecture of a codebase at module/package level - dependency cycles, layer violations (UI accessing the database, domain depending on infrastructure), god modules, modules reaching into other modules' internals, shared mutable global state, framework leakage into domain logic, high coupling, low cohesion and inconsistent project structure - judged against the intended architecture and with a dependency overview (Mermaid). Use when asked to review/check/analyze architecture, module structure, dependencies between packages, layering, coupling, circular dependencies or project structure.
78 other projects use a version of this.
Adopted by
Most recently taken up by
- kinhluan/skillstheir own version, first seen Nov 8, 2026
- AndersonAndrad/skillstheir own version, first seen Nov 8, 2026
- frnkgns/Overgeared-Skillstheir own version, first seen Nov 8, 2026
- striderZA/OpenCodeGameStudiostheir own version, first seen Nov 4, 2026
- nledford/engineering-review-boardtheir own version, first seen Nov 3, 2026
- m16khb-org/issueopstheir own version, first seen Nov 1, 2026
Used with
Projects with it also use create-stories, story-done and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
lilangMaxSkillcreate-stories
Break a single epic into implementable story files. Reads the epic, its GDD, governing ADRs, and control manifest. Each story embeds its GDD requirement TR-ID, ADR guidance, acceptance criteria, story type, and test evidence path. Run after /create-epics for each epic.
Also in 11 projects that use this
lilangMaxSkillstory-done
End-of-story completion review. Reads the story file, verifies each acceptance criterion against the implementation, checks for GDD/ADR deviations, prompts code review, updates story status to Complete, and surfaces the next ready story from the sprint.
Also in 11 projects that use this
- +10 more from lilangMax
Other versions78 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 78
- Donchitos/Claude-Code-Game-Studios★ 27ksame name
- langwatch/langwatch★ 5ksame name
- ghuntley/loom★ 1.7ksame name
- microsoft/hve-core★ 1.6ksame name
- DataDog/dd-trace-js★ 840same name
- decebals/claude-code-java★ 763same name
- borgbase/vykar★ 722same name
- appdevforall/CodeOnTheGo★ 586same name
- getsentry/warden★ 423same name
- owainlewis/blueprint★ 423same name
68 more not listed
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 repository28 other files it gives its agents.
- accessibility-auditSkill
- api-design-reviewSkill
- complexity-checkSkill
- concurrency-reviewSkill
- config-reviewSkill
- cpp-google-styleSkill
- csharp-google-styleSkill
- dead-code-finderSkill
- dependency-auditSkill
- doc-comment-auditSkill
- error-handling-reviewSkill
- full-reviewSkill
- java-google-styleSkill
- logging-reviewSkill
- markdown-readme-google-styleSkill
- naming-reviewSkill
- owasp-security-reviewSkill
- performance-reviewSkill
- privacy-reviewSkill
- python-google-styleSkill
- regex-reviewSkill
- repo-hygieneSkill
- review-without-fixingSkill
- secrets-scanSkill
- shell-google-styleSkill
- sql-reviewSkill
- test-coverage-reviewSkill
- todo-auditSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 2 are distinctive, and 3 are very specific to this project.
0
Common
Most of the 70 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Run (no pipe; output is capped): bash <skill-dir>/scripts/deps.sh <source-root> [depth=2]
- Very specific: line 19
Prefer a dedicated tool if installed (never install.
- Very specific: line 21
Check AR1-AR11, using git log --format= --name-only | sort | uniq -c | sort -rn | head -30 for change frequency where stability matters …
- Distinctive: line 48
Every finding has concrete evidence (edges with sample file:line).
- Distinctive: line 50
Do not change code. Restructure only when the user explicitly asks for it.
“Common” is measured: kept by at least 6 in 10 of the 70 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Architecture review
Review only: report findings and a dependency overview, never move files or restructure code unless the user explicitly asks. Architecture changes are expensive - each finding must say why it matters for this project, not only that a rule is broken.
Scope
The repo or the subproject the user names. Module = a package/namespace/directory at a sensible depth (usually 1-3 levels below the source root). Skip .git/, build output, vendor/, node_modules/, .venv/, generated code; tests are excluded from the dependency graph by default.
Steps
- Find the intended architecture first: README,
docs/, architecture decision records (docs/adr/), folder names (domain/,application/,infrastructure/,ui/,api/,core/, feature folders), framework conventions (MVC, Clean/Hexagonal, Godot scenes + autoloads). If nothing is documented, state the architecture you assume and judge against that. - Run (no pipe; output is capped):
bash <skill-dir>/scripts/deps.sh <source-root> [depth=2]- Extracts import/include relations for Python, JS/TS, Java/Kotlin, C#, C/C++, Go and GDScript (
res://paths,class_nameusage) and prints module edges, cycles (strongly connected components), fan-in/fan-out per module and unresolved internal-looking imports. INCLUDE_TESTS=1adds test code,MERMAID=1prints a Mermaid graph of the edges.- Limits: path aliases (
@/…other than@/→src/), dependency injection, reflection and dynamic imports are not visible - say so when they are used. - Prefer a dedicated tool if installed (never install; mention if helpful):
madge --circular/dependency-cruiser(JS/TS),pydeps/import-linter(Python), ArchUnit/jdepend (Java), NDepend/NetArchTest (C#),deptrac(PHP),goda/go list -deps(Go),cargo-modules(Rust).
- Extracts import/include relations for Python, JS/TS, Java/Kotlin, C#, C/C++, Go and GDScript (
- Draw a dependency overview of the main modules (≤ 15 nodes, Mermaid
graph LR), with problematic edges marked. - Check AR1-AR11, using
git log --format= --name-only | sort | uniq -c | sort -rn | head -30for change frequency where stability matters (AR8, AR11). - Report (format below). File-level complexity →
complexity-check; API surface →api-design-review; concurrency of shared state →concurrency-review.
Rules
- AR1 error: dependency cycle between modules (A → B → … → A)
- AR2 error: layer violation against the intended architecture (presentation → data access directly; domain → infrastructure/framework/UI; lower layer importing a higher one)
- AR3 warning: god module - very high fan-in and fan-out, or a large share of the code and responsibilities in one module
- AR4 warning: reaching into another module's internals (importing
internal/_private/implpaths, deep imports past a module's public entry point) - AR5 warning: shared mutable global state used across modules (singletons, static mutable fields, Godot autoloads holding mutable game state used everywhere)
- AR6 info: feature envy between modules - logic in A works mainly with B's data and belongs in B
- AR7 info: inconsistent structure - partly organized by layer, partly by feature; files in the wrong module; naming of modules inconsistent
- AR8 warning: high coupling - a module depended on by almost everything that also changes often (every change ripples); stable shared kernels/utilities are fine
- AR9 info: low cohesion - a module whose parts don't use each other and serve unrelated purposes (
utils,common,helpersdumping grounds) - AR10 warning: framework leakage - HTTP request objects, ORM entities, UI or engine types inside domain/business logic; persistence models used as API DTOs
- AR11 info: stable, widely used modules depending on volatile ones (dependencies should point towards stability)
False positives to drop
Cycles inside one module (only module-level cycles count) · type-only imports where the language erases them (TS import type) - report as info · composition roots/main/DI setup that legitimately know all layers · small projects where layering would be over-engineering (say so instead of demanding layers).
Report
In the user's language:
- Intended architecture (found or assumed) in 2-3 sentences.
- Dependency overview (Mermaid, problematic edges labeled with the rule ID).
- Findings, most severe first:
module or path/to/file:line - error|warning|info - <ID> <rule> - <evidence, e.g. "ui/ imports db/ in 14 files (ui/cart.ts:3, …)"> - <why it matters here> - direction: <where the dependency should point / what should move>- Every finding has concrete evidence (edges with sample file:line). Mark findings that depend on assumptions about the intended architecture as "possible".
- End with a summary: module count, cycles, findings per severity, then the 3 most valuable structural improvements first, each with an estimate of how invasive it is.
- Do not change code. Restructure only when the user explicitly asks for 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.

