From c4
Edit a C4 workspace — add or change elements (server, service, container, database, actor), relationships, views, styles, deployment, ADRs, and docs. Use when the user describes a new or missing server/service, adds a dependency between systems, or makes any model change. Auto-validates after every workspace.dsl edit.
How this skill is triggered — by the user, by Claude, or both
Slash command
/c4:updateThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A single editing skill for **any** change to the C4 workspace: model, views, relationships, styles, deployment, ADRs, supplementary docs. Designed to be the everyday command — the user describes the change in natural language and you make it happen.
A single editing skill for any change to the C4 workspace: model, views, relationships, styles, deployment, ADRs, supplementary docs. Designed to be the everyday command — the user describes the change in natural language and you make it happen.
workspace.dsl at the repo root, then under architecture/. If neither exists, suggest running /c4:structurize first.model { ... } block-> inside the relevant scopeviews { ... } blockviews { styles { ... } }model { deploymentEnvironment ... } + a views { deployment ... }adrs/ (or architecture/adrs/), preserving numberingdocs/ (or architecture/docs/)${CLAUDE_PLUGIN_ROOT}/references/. Examples:
model-elements.md, relationships.mdviews.md, possibly expressions.mdstyles-and-themes.mddeployment.md, views.mdadrs-and-docs.mdEdit (preferred) or Write (only for new files).scripts/validate-dsl.sh <path-to-workspace.dsl>.The validation step is the default. Skip only when one of these is true:
--no-validate in the prompt.127; surface this once, then fall back to a syntax-only review)..md file under adrs/ or docs/ only (no DSL touched).When the user asks for a C4 model of an existing codebase, switch into discovery mode before writing any DSL:
Dockerfile, docker-compose.yml, Procfile, fly.toml, vercel.jsonpackage.json (workspaces/services), pyproject.toml, go.mod, Cargo.toml, pom.xmlapp/**, routes/**, pages/api/**, cmd/**prisma/schema.prisma, migrations/**, *.sql, env vars like *_DATABASE_URLterraform/**, pulumi/**, k8s/**, helm/**.github/workflows/**, gitlab-ci.yml, circleci/**External tag.Stored at ${CLAUDE_PLUGIN_ROOT}/references/:
basics.md — DSL rules, identifiers, constants, comments, workspace, !includemodel-elements.md — model, person, softwareSystem, container, component, group, element, archetypesrelationships.md — ->, scope-based syntax, implied relationships, -/>, archetypesviews.md — all view types + include/exclude/autoLayoutexpressions.md — element.* and relationship.* expressionsstyles-and-themes.md — element/relationship styles, light/dark, themes, terminologydeployment.md — deployment environments, nodes, instances, health checksadrs-and-docs.md — !docs, !adrs, Nygard ADR template, doc structure, filenamesOnly read the files you actually need for the current request.
When adding an ADR (see adrs-and-docs.md for the full template):
- + kebab-case slug, e.g. 0004-introduce-kafka.md. (3-digit names cause NumberFormatException in the Structurizr importer — always use 4 digits.)Proposed unless the user says it's already agreed.Superseded by [ADR-NNNN](NNNN-slug.md). Do not edit any other line of the old ADR.Every edit ends with the validation result. State whether the workspace is currently valid and, if not, what's still wrong.
npx claudepluginhub alexcristea/over-engineering-plugins --plugin c4Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.