agentleFS
gauravs19gauravs19/enterprise-architecture-skill/SKILL.md

enterprise-architecture

Skill15 starsChanged 4 months agoMITView on GitHub

Unified enterprise & software architecture skill grounded in four open-source standards — C4 + Structurizr DSL, ArchiMate 3.x, TOGAF ADM, and arc42 + ADRs (MADR). Use it whenever the user wants to: produce architecture diagrams as code (C4 context/container/component, Structurizr, PlantUML, Mermaid); write architecture docs or decision records (arc42, ADRs/MADRs, design docs); review or assess a design against quality attributes and EA principles; or model an enterprise (capabilities → applications → technology, app landscapes, portfolio rationalization). Trigger it even when no framework is named — e.g. "draw the architecture of this service", "give me a container diagram", "write an ADR for choosing Kafka", "is this design sound?", "map our capabilities to apps", "document my architecture in arc42", "create an HLD or LLD", "assess this design against ISO 25010 / quality attributes", "produce a solution design". Do NOT trigger it for writing application code or REST endpoints, IaC / cloud deployment (Terraform, Kubernetes), database or ER schema design, code-level UML or sequence diagrams, reviewing a pull request, or API reference docs.

2 other projects use a version of this.

Adopted by

Most recently taken up by

  • Other versions2 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 2

    1. magnus919/agent-skills★ 172same name
    2. saitarrun/Devforge-ai★ 4same 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.

  • In this repositoryOne other file it gives its agents.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 4 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈4

    Distinctive · estimate

    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
  1. Very specific:

    If the question is *which framework / how should we approach this* rather than a request for an artifact ("is TOGAF worth it?", "Zachman vs …

    line 48
  2. Distinctive:

    Keep one source of truth: When elements recur across diagrams/docs, give them stable IDs and reuse them (see *Traceability* below).

    line 58
  3. Distinctive:

    Default output: Structurizr DSL when the user wants a reusable model that generates multiple views.

    line 69
  4. Very specific:

    Read references/review-rubric.md.

    line 97
  5. Very specific:

    When a repo/workspace exists, persist these in an architecture/ folder (one file per significant artifact, or a Structurizr workspace as …

    line 131
  6. Distinctive:

    Before inventing a new element, check whether it already exists under another name and reuse the ID.

    line 134
  7. Distinctive:

    After generating diagrams or docs, sanity-check them.

    line 139

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Enterprise Architecture

A practical toolkit for doing real architecture work the way open-source EA standards intend it — diagrams as code, documentation as code, decisions as records, and a single traceable model underneath. It unifies four complementary frameworks so you reach for the right tool at the right altitude instead of forcing everything into one notation.

The mental model: four frameworks, four altitudes

These frameworks are not competitors — they answer different questions. Knowing which one fits the question is most of the skill.

FrameworkQuestion it answersAltitudeWhen to reach for it
C4 model"How is this software system structured?"System → codeA single system/service: context, containers, components
ArchiMate"How does the whole enterprise hang together?"Business → app → techCapabilities, app landscapes, cross-system flows
TOGAF ADM"How do we deliver an architecture change?"Process/governanceRunning an architecture engagement end-to-end
arc42 + ADRs"How do we write it down so others understand & decisions stick?"DocumentationDocumenting a system; recording a decision

A useful rule of thumb: C4 zooms into one system, ArchiMate zooms out to the enterprise, TOGAF is the method for changing it, and arc42/ADR is how you narrate it. They compose: an arc42 doc embeds C4 diagrams and links ADRs; a TOGAF engagement produces ArchiMate models and ADRs as deliverables.

How to use this skill

  1. Pick the mode (below) from what the user is asking for. If ambiguous, ask one short clarifying question rather than guessing — architecture work is expensive to redo. If the question is which framework / how should we approach this rather than a request for an artifact ("is TOGAF worth it?", "Zachman vs TOGAF?", "how do we structure this effort?"), read references/choosing-frameworks.md and answer with a grounded recommendation that routes into the right mode.
  2. Read the matching reference file(s) in references/ before producing output. They contain the real notation, element catalogs, templates, and gotchas. Do not work from memory of the standards — load the reference so the output is correct and idiomatic.
  3. Produce diagrams/docs as code, default to text formats that live in Git and render anywhere. Save artifacts to files when the user has a repo/workspace; otherwise emit inline.
  4. Keep one source of truth. When elements recur across diagrams/docs, give them stable IDs and reuse them (see Traceability below). Don't redraw the same box with a different name in two places.

The four modes

Mode 1 — Diagram (diagrams as code)

Triggers: "draw / diagram / visualize the architecture", "C4 container diagram", "Structurizr workspace", "show the components".

  • For a single software system, use C4 → read references/c4-structurizr.md.
    • Default output: Structurizr DSL when the user wants a reusable model that generates multiple views; Mermaid when they want something that renders inline immediately (chat, GitHub, Markdown docs); PlantUML (C4-PlantUML) when they're already in a PlantUML/Kroki toolchain.
    • Produce views in order of altitude: System Context → Container → Component (→ Code only if explicitly asked; it's usually noise). Stop at the level that answers the question.
  • For cross-system / enterprise views, use ArchiMate → read references/archimate.md.
  • Respect good-diagram hygiene from the reference: 5–20 elements per view, every external dependency shown, consistent naming, a title and a legend.

Mode 2 — Document (docs & decisions as code)

Triggers: "document this system", "write an ADR / decision record", "arc42 docs", "design doc / RFC for X".

  • Whole-system documentation → arc42. Read references/arc42.md. Use the discover → generate → validate loop and the detail-level knob (LEAN / ESSENTIAL / THOROUGH) so you write the right amount, not a 40-page tome nobody reads.
  • A single decision → ADR/MADR. Read references/adr-madr.md. Capture the context and the options considered with trade-offs, not just the chosen answer — the value of an ADR is the reasoning a future reader can't reconstruct.
  • Embed diagrams (Mode 1) rather than describing visuals in prose. Link ADRs from the relevant arc42 section (§9 Decisions).

Mode 3 — Review / assess

Triggers: "review my architecture", "is this design sound?", "assess this against best practice", "what are the risks in this design?".

  • Read references/review-rubric.md. Assess against quality attributes (the ISO/IEC 25010 set: performance, security, reliability, maintainability, etc.) and EA principles, not personal taste.
  • Output severity-categorized findings (Critical / Major / Minor / Suggestion), each with evidence and a concrete remediation, then a verdict (Approved / Approved-with-changes / Needs-revision). Avoid vague praise; an unhelpful "looks good" is worse than nothing.
  • Where a finding implies a fix, hand off to the right mode (e.g. "record this as an ADR", "redraw the container diagram to show the queue").

Mode 4 — Model the enterprise

Triggers: "map our business capabilities", "application landscape", "capability → app → technology", "enterprise architecture model", "rationalize our app portfolio".

  • This is the big-picture mode. Use ArchiMate for the model (references/archimate.md) and TOGAF ADM for the method/structure of the engagement (references/togaf-adm.md).
  • Work top-down through the layers: Strategy/Motivation → Business (capabilities, processes, services) → Application (apps, services, data) → Technology (nodes, platforms), then draw the realization links between layers (which app realizes which capability; which node hosts which app). The cross-layer links are the whole point — a capability map with no realization links is just a list.
  • For portfolio rationalization, add a TIME / quality assessment per application (Tolerate / Invest / Migrate / Eliminate) — see the TOGAF reference.

Traceability — keep one model under everything

Give every architectural element a stable, human-readable ID and reuse it across diagrams, docs, and ADRs. This is what turns a pile of pictures into an actual model.

  • Recommended ID scheme (URN-style): ea:{org}:{system}:{kind}:{name}
    • e.g. ea:acme:checkout:container:payment-api, ea:acme:enterprise:capability:billing
    • kind ∈ person, system, external, container, component, capability, app, node, decision …
  • When a repo/workspace exists, persist these in an architecture/ folder (one file per significant artifact, or a Structurizr workspace as the model-of-record) so they're diff-able and greppable. Reference the same ID from the arc42 doc and the ADRs.
  • Before inventing a new element, check whether it already exists under another name and reuse the ID. Two names for one thing is the most common EA documentation defect.

Validation

After generating diagrams or docs, sanity-check them. For cross-artifact consistency (IDs referenced but never defined, building blocks named in prose but missing from diagrams, quality goals with no scenario, ADRs not linked from any doc), run:

python scripts/ea_lint.py <path-to-architecture-dir-or-file>

It reports issues grouped by severity. Treat its output as advisory review feedback, not a hard gate — explain findings to the user rather than silently "fixing" their intent.

Output conventions

  • Diagrams: fenced code blocks with the right language tag (```mermaid, ```plantuml, or Structurizr DSL in ```text/a .dsl file). One view per block, each with a one-line caption stating what it shows and for whom.
  • Docs: Markdown, headings matching the standard's section structure. Diagrams as separate .puml/.dsl files referenced from the doc when a repo exists; inlined otherwise.
  • Always state which framework and view you're producing, so the user learns the map. Part of this skill's job is to make the user fluent in the frameworks, not just hand them artifacts.

Reference files (load as needed)

FileLoad when
references/c4-structurizr.mdAny C4 diagram; Structurizr DSL; Mermaid/PlantUML C4
references/archimate.mdArchiMate views; enterprise/cross-system modeling (Modes 1 & 4)
references/togaf-adm.mdRunning/structuring an architecture engagement; portfolio (Mode 4)
references/arc42.mdWhole-system documentation (Mode 2)
references/adr-madr.mdWriting a decision record (Mode 2)
references/review-rubric.mdReviewing/assessing an architecture (Mode 3)
references/choosing-frameworks.md"Which framework should I use?", framework comparisons, EA-approach strategy questions

Templates live in assets/templates/; the consistency linter in scripts/ea_lint.py.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.