oop-architect
Skill81 starsChanged 7 months agoMITView on GitHub
OOP architecture planning and progress tracking for software projects. Generates Mermaid UML (class, sequence, component, state, and ER diagrams) inside CLAUDE.md with full typed signatures, visibility markers, implementation status on every class/method/relationship, and special notes for constraints. CLAUDE.md becomes a self-maintaining architecture blueprint. Use this skill whenever: the user starts a new project needing architecture planning; says "plan", "architect", "design the classes", "OOP", "UML", or "class diagram"; is building a multi-file project; asks to resume a project; wants to sync/refresh architecture after changes; triggers manually (e.g. /oop-architect); says "update CLAUDE.md", "update UML", or "sync architecture". Even if OOP isn't mentioned explicitly — if the project benefits from structured class design, suggest this skill.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- lucsedirae/agent_skill_librarytheir own version, first seen May 2, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- lucsedirae/agent_skill_library★ 2same 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.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
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 32
If the project is a single-file script, a one-off data transformation, a purely functional pipeline, or has no shared state between …
≈ “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
OOP Architect
A skill for designing, documenting, and tracking object-oriented software architecture using Mermaid UML diagrams inside CLAUDE.md.
Core Philosophy
This skill exists because vibe coding sessions get interrupted. When you return after hours or days, CLAUDE.md with live-updated UML lets you instantly see: what's built, what's not, how things connect, and what constraints exist.
The architecture should be language-agnostic in principle but language-aware in practice — the same OOP thinking applies everywhere, but UML adapts to each language's idioms.
Step 0 — Before Anything: Two Checks
Check A: Is OOP appropriate?
If the project is a single-file script, a one-off data transformation, a purely functional pipeline, or has no shared state between components — OOP adds complexity without value. In that case, tell the user directly and suggest a simpler approach. Do not force a class hierarchy.
Check B: Detect the mode
Assess the situation, then read the corresponding reference:
| CLAUDE.md exists? | Code exists? | Mode |
| No | No | Phase 1 — Read references/new-project.md |
| No | Yes | Phase 3 — Read references/generate-from-code.md |
| Yes | Yes, user wants to add a feature | Phase 4 — Read references/extend-design.md |
| Yes | Yes, code has changed | Phase 2 — Read references/resync.md |
Phase 2 vs Phase 4 disambiguation — when CLAUDE.md exists and both could apply, use these signals:
- User describes something new to build ("add X", "design Y", "I want to implement Z") → Phase 4
- User mentions drift, scanning, or syncing ("resync", "update CLAUDE.md", "scan the project", "things have changed") → Phase 2
- User says something ambiguous ("let's continue", "keep going", "what's next") → ask: "Do you want to design a new feature, or sync the architecture with the current state of the code?"
Check C: Load language reference
Detect the primary language from file extensions, imports, or user statement. Read the matching file before generating any UML. If the language is not listed, read references/langs/generic.md.
| Language | Reference |
| Python | references/langs/python.md |
| Java / C# / Kotlin | references/langs/java-csharp-kotlin.md |
| TypeScript / JavaScript | references/langs/typescript-javascript.md |
| Go | references/langs/go.md |
| Rust | references/langs/rust.md |
| C++ | references/langs/cpp.md |
| Swift | references/langs/swift.md |
| Ruby | references/langs/ruby.md |
| PHP | references/langs/php.md |
| Other | references/langs/generic.md |
For multi-language projects, read all relevant language files and apply principle 8 (separate diagrams per layer).
Phase 1: Design from Scratch
Read references/new-project.md.
Important Principles
- UML is the source of truth for architecture. Code is the source of truth for implementation. CLAUDE.md bridges them.
- Keep diagrams readable. More than 15–20 classes in one diagram → split by module. Name each section after its module (
### Class Diagram — Auth,### Class Diagram — Payment). Cross-module relationships go in the component diagram, not across split class diagrams. - Special notes are precious. They capture constraints that can't be derived from code.
- Status tracking enables resume. ✅/🔶/🔲 lets anyone instantly see what's done, what's next.
- Extensibility is designed, not accidental. Abstract base methods should be needed by every subclass — if only some subclasses need it, it belongs in a mixin or separate interface.
- CLAUDE.md is self-maintaining. The generated file contains its own update rules — this skill only runs for initial planning and full resyncs.
- Test code stays out of UML. Mock classes, fakes, and test fixtures don't belong in architecture diagrams. Exception: a test double that ships as part of the production library (e.g., an in-memory adapter intended for downstream users) should be included.
- Multi-language projects: separate diagrams per layer. For a project with e.g. a Python backend and TypeScript frontend, create one class diagram per language layer and label each section clearly. Cross-language boundaries (REST API, message queue) go in the component diagram, not in class relationships. Shared data contracts (request/response schemas) go in a dedicated section using the most expressive type system available.
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.

