Skip to content

[ci-gap][docs] Validate the Structurizr C4 model (workspace.dsl) in CI #377

Description

@claude

Current score → target

Docs & release hygiene / architecture documentation: 4/5 → 5/5.

Defect class prevented

A syntactically broken or dangling-reference C4 model merging silently — discovered only when someone next opens Structurizr Lite locally.

Evidence

  • workspace.dsl sits at the repo root; the dev stack ships structurizr/lite (docker-compose.override.yml:25); a repo skill (structurizr-architecture-sync) mandates updating the DSL on every architectural change.
  • grep -rn structurizr .github/ Makefilezero hits. Nothing parses the file in CI.

Proposed fix

# path-filtered on workspace.dsl, with a skip-fallback job so it can be required
structurizr-validate:
  timeout-minutes: 5
  steps:
    - uses: actions/checkout@<sha>
    - run: docker run --rm -v "$PWD":/usr/local/structurizr structurizr/cli:<ver>@sha256:<digest> validate -workspace workspace.dsl

~15s including image pull. Deterministic parser, zero false positives.

Effort

XS

Acceptance criteria

  • workspace.dsl parsed/validated on every PR that touches it, blocking
  • Proven: a test PR with a dangling element reference in workspace.dsl fails the check

Filed by an automated CI/CD verification-coverage audit (OpenSSF Scorecard baseline: aggregate 6.0/10, local mode — SAST 0, Fuzzing 0, Token-Permissions 0, Pinned-Dependencies 5, Vulnerabilities 4). Audit method: inventory → gap analysis → git-history evidence mining → 3-iteration adversarial critique loop.


Generated by Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciContinuous integration pipelinedocsDocumentation checksqualityQuality engineering / verification coverage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions