From c4
Scaffold a C4 architecture workspace. Standalone mode for an empty directory; embedded mode adds an architecture/ subdirectory to an existing project.
How this skill is triggered — by the user, by Claude, or both
Slash command
/c4:structurizeThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Create the minimal file layout required to start authoring a Structurizr DSL workspace alongside ADRs and supplementary docs.
Create the minimal file layout required to start authoring a Structurizr DSL workspace alongside ADRs and supplementary docs.
Pick the mode automatically from the current working directory:
.git, .gitignore, LICENSE, README.md) or the user explicitly says "new repo" / "standalone".package.json, pyproject.toml, Cargo.toml, go.mod, Dockerfile, etc.).If you're unsure, ask the user which mode they want.
Create at the repo root:
.
├── workspace.dsl
├── README.md # short pointer to the workspace + how to render it
├── .gitignore # adds .structurizr/ and build/
├── adrs/
│ └── 0001-use-c4-model-with-structurizr.md
├── docs/
│ ├── 0001-system-overview.md
│ ├── 0002-actors.md
│ └── 0003-use-cases.md
└── bin/local/run.sh # convenience: starts Structurizr Local for previewing
Create under architecture/ so the existing project's root stays clean:
architecture/
├── workspace.dsl
├── README.md # explains what this subdirectory is, for anyone browsing the host project
├── .gitignore # ignores architecture/.structurizr/ and architecture/build/
├── adrs/
│ └── 0001-use-c4-model-with-structurizr.md
├── docs/
│ ├── 0001-system-overview.md
│ ├── 0002-actors.md
│ └── 0003-use-cases.md
└── bin/local/run.sh # convenience: starts Structurizr Local for previewing
The nested architecture/.gitignore makes the subdirectory self-contained. As a belt-and-suspenders measure, if the project root already has a .gitignore, also append architecture/.structurizr/ and architecture/build/ to it — idempotent, skip if already present.
The seed files live in a single source tree and are identical for both modes — only the destination differs:
${CLAUDE_PLUGIN_ROOT}/templates/workspace/
├── workspace.dsl
├── README.md
├── .gitignore
├── adrs/
│ └── 0001-use-c4-model-with-structurizr.md
├── docs/
│ ├── 0001-system-overview.md
│ ├── 0002-actors.md
│ └── 0003-use-cases.md
└── bin/local/run.sh
Copy the entire tree to:
.)./architecture/After copying, replace the placeholders in the copied files:
{{PROJECT_NAME}} — derive from the cwd directory name unless the user provides one{{TODAY}} — current date in YYYY-MM-DDgit init and never create a commit./c4:update, /c4:validate, /c4:preview.If the user asks anything about file naming, ADR format, or doc structure during scaffolding, consult:
${CLAUDE_PLUGIN_ROOT}/references/adrs-and-docs.mdAfter copying and placeholder substitution, validate the seeded workspace.dsl to catch template corruption or bad substitution before the user starts editing:
${CLAUDE_PLUGIN_ROOT}/scripts/validate-dsl.sh <path-to-workspace.dsl>
Handle the result:
127) → skip validation, print Docker not detected — workspace validation skipped. Run /c4:validate when Docker is available. and continue.End by listing the files that were created and reporting the validation status (passed / skipped / failed).
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