From c4
Project-level conventions are loaded automatically whenever a .dsl file, an ADR, or a doc is edited. Not user-invocable.
How this skill is triggered — by the user, by Claude, or both
Slash command
/c4:conventions**/*.dsl**/adrs/****/docs/**This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill is **not** invoked manually. The `paths:` trigger loads it into context whenever the agent edits a Structurizr DSL file, an ADR, or a supplementary doc, so the rules below are always in mind.
This skill is not invoked manually. The paths: trigger loads it into context whenever the agent edits a Structurizr DSL file, an ADR, or a supplementary doc, so the rules below are always in mind.
This file is the source of truth for our project style on top of valid DSL. For the DSL grammar itself — what each keyword does and how it's spelled — read the relevant file under ${CLAUDE_PLUGIN_ROOT}/references/.
workspace.dsl per project. Use !include to split large workspaces — see ${CLAUDE_PLUGIN_ROOT}/references/basics.md.systemContext shop "ShopContext"). Auto-generated keys are unstable and break manual layout.api = container "API"). Anonymous elements cannot be linked."Order Service"). Identifiers are camelCase, lowercase first letter (orderService).person, softwareSystem, container, component. Aim for a single sentence describing what it does, not what it is.Java, Spring Boot, Node.js, Postgres, Redis, Kafka, Next.js. Not JS, K8s, or other abbreviations.External tag and a distinct style under views { styles { ... } } — see ${CLAUDE_PLUGIN_ROOT}/references/styles-and-themes.md.!identifiers hierarchical only when names genuinely collide across systems; otherwise leave it flat (the default)."Reads from", "Sends events to", "Authenticates via". Not "Read from" or "Reading"."Uses" — say how ("Persists data in", "Queries", "Publishes events to").technology on every relationship that crosses a process boundary ("HTTPS/JSON", "gRPC", "SQL/TCP", "Kafka protocol").${CLAUDE_PLUGIN_ROOT}/references/relationships.md for how the !impliedRelationships strategy works.autoLayout unless there's a curated layout to preserve.filtered views to surface focused perspectives (e.g. read-paths only) instead of cramming everything into one diagram. Syntax in ${CLAUDE_PLUGIN_ROOT}/references/views.md.deployment views: one per environment per system. Don't mix staging and production into a single diagram.ADR and supplementary-doc rules — filename pattern, Nygard template, status vocabulary, superseding/amending mechanics, doc base set, and cross-linking — are defined in detail in:
${CLAUDE_PLUGIN_ROOT}/references/adrs-and-docs.mdRead that file before adding or editing anything under adrs/ or docs/. The most important rules to keep in mind:
0001-use-c4-model-with-structurizr.md). The adr-tools-compatible importer used by Structurizr requires 4 digits — 3-digit names fail validation. Numbers are append-only, never renumbered.The update skill auto-validates after each edit. If you touch workspace.dsl directly via Edit / Write without going through update, manually run ${CLAUDE_PLUGIN_ROOT}/scripts/validate-dsl.sh before reporting completion.
Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub alexcristea/over-engineering-plugins --plugin c4