Canonical JSON Schemas (draft 2020-12) for the WorkSpec artifact family.
Bind an artifact to its schema with a yaml-language-server directive:
# yaml-language-server: $schema=https://schema.workspec.io/v1alpha1/decision.schema.json
| Artifact | File suffix | Schema |
|---|---|---|
| Decision record | .workspec/decisions/<slug>.yaml |
v1alpha1/decision.schema.json |
| Catalog | *.catalog.yaml |
v1alpha1/catalog.schema.json |
The C4 artifact family (elements, diagrams, layouts, and the project
spec). Element schemas bind by directory convention
(.workspec/<type-dir>/<slug>.yaml) rather than a
filename suffix.
| Artifact | File suffix | Schema |
|---|---|---|
| Actor | .workspec/actors/<slug>.yaml |
v1alpha1/c4/actor.schema.json |
| System | .workspec/system/<slug>.yaml |
v1alpha1/c4/system.schema.json |
| External system | .workspec/external-systems/<slug>.yaml |
v1alpha1/c4/external-system.schema.json |
| Container | .workspec/containers/<slug>.yaml |
v1alpha1/c4/container.schema.json |
| Component | .workspec/components/<slug>.yaml |
v1alpha1/c4/component.schema.json |
| Database | .workspec/databases/<slug>.yaml |
v1alpha1/c4/database.schema.json |
| Queue | .workspec/queues/<slug>.yaml |
v1alpha1/c4/queue.schema.json |
| Domain | .workspec/domains/<slug>.yaml |
v1alpha1/c4/domain.schema.json |
| Feature | .workspec/features/<slug>.yaml |
v1alpha1/c4/feature.schema.json |
| Diagram | .workspec/diagrams/*.yaml |
v1alpha1/c4/diagram.schema.json |
| Layout | .workspec/diagrams/.layout/*.yaml |
v1alpha1/c4/layout.schema.json |
| Spec | .workspec/spec.yaml |
v1alpha1/c4/spec.schema.json |