Architecture Quality logo

Architecture Quality

Community
AnastasiyaW
architecture-quality

Keep web applications, APIs and services readable as they grow: choose feature or domain seams, assign state ownership, enforce dependency direction, keep adapters thin, and verify file shape. Use when starting or extending a web app, backend, frontend, API or multi-page product; when a change makes a module hard to read; when architecture review finds a god file, cross-feature imports, a circular dependency or a framework-heavy domain. Load architecture-first first for a new system, and refactoring-safely for an existing oversized module. Do not use for a one-file script, throwaway spike or a purely local naming change.

Overview

PublisherAnastasiyaW
Repositorycodex-claude-code-config
Skill namearchitecture-quality
Stars
212
Forks
32
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by AnastasiyaW on GitHub. Read the source before you install it.

Installation

Install the Architecture Quality AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/development/architecture-quality
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/AnastasiyaW/codex-claude-code-config.git /tmp/codex-claude-code-config
mkdir -p .claude/skills
cp -r /tmp/codex-claude-code-config/skills/development/architecture-quality .claude/skills/architecture-quality
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Architecture Quality in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Architecture Quality on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Architecture Quality is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Architecture quality — readable by construction

This skill turns the architecture decision into a small, repeatable delivery contract. It complements architecture-first; it does not add layers for their own sake.

Working contract

Before a non-trivial web or service change, record these five facts in ARCHITECTURE.md or docs/architecture/README.md:

  1. Feature/domain modules — name them by reason to change, not by a generic utils, helpers or services bucket.
  2. Ownership — each mutable state, database table boundary and external side effect has one owner.
  3. Dependency direction — policy/domain code is independent of the web framework, ORM, queue and filesystem; adapters point inward through small ports.
  4. Vertical slice — prove one user-visible path from entry point to state and test before multiplying layers or pages.
  5. Verification boundary — list the architecture checks and the test command that must remain green after the change.

If the project is a small script or a single-module experiment, state that scope and skip the document. A missing document is a finding only once the project has enough shape to need one, not a reason to create ceremony around a toy.

Web application shape

  • Keep routes/controllers thin: parse input, call a use-case or feature API, map the result and return. Do not put business policy, SQL and provider retries in a route.
  • Keep domain/use-case code framework-free where practical. Inject ports for storage, clocks, queues and providers; keep concrete adapters at the edge.
  • Organize user-facing behavior by feature or bounded context. A page may compose features, but one feature must not reach into another feature's private state.
  • Give each page a stable route-level composition boundary. Shared UI primitives are visual primitives, not a second business-logic layer.
  • Treat a utils or common import that keeps growing as a boundary question. Move code to the module that owns its reason to change; do not create a universal bag.
  • Prefer a modular monolith until an independently deployable or scalable boundary is proven. A microservice split is not a substitute for a missing internal boundary.

Shape checks

Run the repository audit before broadening a new app and after a structural change:

powershell
python scripts/architecture_audit.py --root .

The audit is intentionally conservative. It reports, rather than invents, findings:

  • a sizeable application with no ARCHITECTURE.md or architecture directory;
  • a source file crossing the calibrated shape thresholds;
  • an explicitly declared project marker without a readable architecture anchor.

The live module-shape-advisor.py hook repeats the file-shape check after Write|Edit|MultiEdit in both Codex and Claude. It is advisory: acknowledge the finding, split at an ownership boundary, or record why the file is intentionally large. CLAUDE_ALLOW_BIG_MODULES=1 is an explicit, reviewable escape hatch, not a default.

For dependency rules, use the tool native to the stack when the project has earned it:

  • Python: import-linter contracts for allowed import direction;
  • JavaScript/TypeScript: dependency-cruiser for cycles, orphans and forbidden folder edges;
  • Java: ArchUnit architecture tests alongside unit tests;
  • C/C++: compiler/include tooling plus explicit CMake target boundaries; do not infer a domain architecture from a raw include graph alone.

Do not install all four. Pick one boundary mechanism, commit its rules, and run it in the same CI lane as the tests that prove the behavior.

Review questions

  • Can a new feature be changed without editing an unrelated feature's internals?
  • Does a route, page or controller own policy that belongs inside a use-case/domain?
  • Is state ownership named, or are modules reaching into shared mutable objects?
  • Are imports crossing a documented boundary? If yes, is the exception recorded with a reason and expiry?
  • Is the file becoming large because one change is crossing multiple reasons to change? If yes, split the seam before adding more behavior.
  • Did the change update the architecture document and the focused architecture/test evidence together?

Gotchas

  • Folders are not boundaries. Moving files without changing imports or ownership only makes the same coupling harder to see.
  • Thin controllers can still hide a fat service. Inspect the next boundary; a generic ApplicationService is often a god module with a nicer name.
  • A metric is a signal, not a verdict. Generated code, migrations and large declarative tables need explicit exemptions; production logic needs an explanation before an exemption.
  • Microservices can multiply unreadability. Network boundaries add failure, deployment and observability costs; prove the module boundary first.

Troubleshooting

SymptomLikely causeAction
The audit reports a missing architecture anchorAn app marker and several source files exist, but the boundary is implicitWrite the small module/ownership/dependency map before adding more features
module-shape-advisor reports a large fileLocal edits accumulated in one ownership boundaryAdd characterization tests, split one named slice, then rerun the audit
A cycle appearsTwo modules own part of the same concept or one imports an implementation detailMove the concept behind an inner port or extract a genuinely shared concept
Every change touches many foldersLayer-first layout scatters a feature across technical layersRecut the next slice by feature; migrate incrementally with tests
The guard is noisy on generated codeThe file is outside the built-in exemption listAdd a narrow, documented project exemption; do not silence the whole hook

Frequently asked questions

What does the Architecture Quality AI skill do?

Keep web applications, APIs and services readable as they grow: choose feature or domain seams, assign state ownership, enforce dependency direction, keep adapters thin, and verify file shape. Use when starting or extending a web app, backend, frontend, API or multi-page product; when a change makes a module hard to read; when architecture review finds a god file, cross-feature imports, a circular dependency or a framework-heavy domain. Load architecture-first first for a new system, and refactoring-safely for an existing oversized module. Do not use for a one-file script, throwaway spike o...

Why use Architecture Quality on TypingMind?

Because you install it once and use it with any model. Architecture Quality is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Architecture Quality in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/AnastasiyaW/codex-claude-code-config/tree/main/skills/development/architecture-quality. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Architecture Quality?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Architecture Quality?

As many as you like. As long as a model supports skills, you can use Architecture Quality with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Architecture Quality AI skill free?

Yes. It is published on GitHub by AnastasiyaW under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇