SAC × C4 model
Critical naming
- C4 Container =
SoftwareContainer(or Service/WebApp/Database stand-ins) - Docker/OCI =
ContainerImage— different concept
Commands
# Inventory how the bundle maps to C4 abstractions
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sac_c4.py" --bundle knowledge --inventory
# Generate L1–L4 diagram concepts + Structurizr DSL export
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sac_c4.py" --bundle knowledge --generate --system "My System"
# Print DSL only
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sac_c4.py" --bundle knowledge --dsl
# Scan existing Structurizr workspaces
python3 "${CLAUDE_PLUGIN_ROOT}/scripts/sac_scan_structurizr.py" --root . --json
When designing
- L1 — who uses the system; external systems
- L2 — where does the new app/service/DB sit as a SoftwareContainer?
- L3 — components inside that container
- L4 — modules/classes when coding
Deep doc: docs/c4-integration.md.