Claude Code · Agent Skill · MIT

Architecture as code, the way the standards intend.

One Claude Code skill that unifies four open-source standards — C4 + Structurizr, ArchiMate, TOGAF ADM, and arc42 + ADRs — to diagram, document, review, and model architecture, with one traceable model underneath.

C4 · ArchiMate · TOGAF · arc42 Diagrams + docs + review MIT licensed

Four standards, four altitudes.

They aren't competitors — they answer different questions. The skill picks the right one.

FrameworkAnswersBest forProduces
C4 + Structurizr How is this system built? A single service or system Context / Container / Component — Structurizr DSL, Mermaid or PlantUML
ArchiMate 3.x How does the enterprise fit? Cross-system: capabilities → apps → tech Layered & capability views (Archi / Mermaid)
TOGAF ADM How do we deliver change? Running an engagement; portfolio Vision, roadmaps, TIME portfolio (Tolerate/Invest/Migrate/Eliminate)
arc42 + ADR/MADR How do we write it down? Documenting a system; decisions arc42 docs + decision records, docs-as-code

Ask in plain language. It routes to the right artifact.

No need to name a framework — the skill maps your request to a mode and produces the right output as code.

01
Diagram
C4 / Structurizr DSL / Mermaid / PlantUML — Context → Container → Component, at the right altitude.
“draw the container diagram”
02
Document
arc42 sections (LEAN / ESSENTIAL / THOROUGH) and ADR/MADR decision records with the trade-offs captured.
“write an ADR for Kafka”
03
Review / assess
ISO/IEC 25010 quality attributes + EA principles → severity-graded findings, each with evidence and a fix, plus a verdict.
“is this design sound?”
04
Model the enterprise
Capability → app → technology with realization links; TOGAF ADM structure and portfolio rationalization.
“map capabilities to apps”

Tested with the skill vs without it.

Each prompt ran twice and was graded against objective assertions. The examples below are the actual, unedited skill outputs.

Test caseBaselineWith skillWhat the skill changed
C4 diagram 3 / 5 5 / 5 Real C4 notation (Context + Container) and a Structurizr source-of-truth. Baseline drew a generic flowchart.
ADR 4 / 5 5 / 5 Correct MADR format (status, drivers, options, consequences). Baseline wrote good analysis, not an ADR.
Review 6 / 6* 6 / 6 Both strong. *Globally-installed skills are discoverable, so the baseline used the skill anyway — not a clean baseline.

Honesty note: because installed skills are globally discoverable, a baseline agent can find and use the skill anyway (it did on the review case). So the measured gap is a conservative lower bound on the skill's effect.

Real outputs, rendered live.

Mode 1 · Diagram · C4 model

Order checkout service

“Customers use a React SPA that talks to a Spring Boot API. The API stores orders in PostgreSQL, publishes order events to Kafka, and charges cards via Stripe. Draw me the architecture diagram.”
names C4 + levelsall 5 elementsexternals taggedlabelled relationshipsStructurizr source-of-truth
C4 Container view
C4Container
    Person(customer, "Customer", "Buys")
    System_Boundary(checkout, "Order Checkout Service") {
        Container(spa, "SPA", "React")
        Container(api, "Checkout API", "Spring Boot")
        ContainerDb(db, "Orders DB", "PostgreSQL")
        Container(kafka, "Event Bus", "Kafka")
    }
    System_Ext(stripe, "Stripe", "Payments")
    Rel(customer, spa, "Uses", "HTTPS")
    Rel(spa, api, "Calls", "JSON/HTTPS")
    Rel(api, db, "Reads/writes", "JDBC")
    Rel(api, kafka, "Publishes events", "Kafka")
    Rel(api, stripe, "Charges via", "REST")
    UpdateLayoutConfig($c4ShapeInRow="2", $c4BoundaryInRow="1")
        
Mode 2 · Document · MADR

Choosing a messaging system

“We're weighing Kafka, RabbitMQ, and AWS SNS/SQS. The team has no Kafka ops experience but we expect ~10k events/sec and want event replay. Write up the decision.”
MADR structure + statusdecision drivers3 options w/ pros & consjustified outcometrade-offs recorded
# 0001. Use AWS SNS/SQS for order events

- Status: proposed
- Date: 2026-06-18
- Tags: messaging, order-events, eventing

## Decision Drivers
- Throughput: ~10k events/sec with headroom
- Event replay: re-read history from an arbitrary point
- Operational burden: team has no Kafka ops experience
- Time-to-value; ordering & delivery semantics; cost; reversibility

## Considered Options
1. Apache Kafka (self-managed / MSK / Confluent)
2. RabbitMQ (with streams plugin)
3. AWS SNS + SQS (+ Kinesis / EventBridge Archive for replay)

## Decision Outcome
Chosen: "AWS SNS/SQS with a managed log for replay where needed" —
best fit for a team with no Kafka ops while still meeting throughput
and giving a credible replay story without operating brokers.

### Consequences
- Good: minimal ops; elastic & managed; fast time-to-value; pay-per-use
- Bad: replay isn't uniform (needs Kinesis layer); AWS lock-in; FIFO quotas to verify
- Neutral: requires idempotent consumers & an explicit ordering key (orderId)
Mode 3 · Review / assess

Django monolith, ~50k DAU

“A single Django monolith on one EC2 instance, one PostgreSQL with no replica, secrets in committed settings.py, no caching, a synchronous email call in the request path, no logging/metrics. Is this design sound?”
explicit verdictseverity-gradedevidence + fix per findingbalanced + prioritized

Verdict: Needs revision — the monolith is the right altitude for 50k DAU; the problems are security & operational hygiene, not the decomposition.

  • 🔴 Critical — committed secrets in settings.py → rotate now, move to Secrets Manager/SSM, purge history, add a pre-commit scanner.
  • 🔴 Critical — single EC2 instance = SPOF → ≥2 instances across ≥2 AZs behind an ALB in an ASG.
  • 🔴 Critical — single un-replicated Postgres → RDS/Aurora Multi-AZ + tested PITR backups.
  • 🟠 Major — no observability → structured logs + RED metrics + Sentry + one alert.
  • 🟠 Major — synchronous email in request path → move to a Celery/SQS queue with retries & timeouts.
  • 🔵 Suggestionstay a monolith; record infra decisions as ADRs (Mode 2); draw the target-state C4 diagram (Mode 1).

Add it to Claude Code
in two commands.

Install straight from the plugin marketplace — no clone needed. Then just ask in your own words.

/plugin marketplace add gauravs19/enterprise-architecture-skill
/plugin install enterprise-architecture@gauravs19-skills

Prefer to clone? git clone … ~/.claude/skills/enterprise-architecture — or download the .skill package.