@mstar-harness/omp 3.6.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/agents/architect.md +35 -0
- package/agents/code-reviewer.md +90 -0
- package/agents/frontend-dev.md +33 -0
- package/agents/fullstack-dev-2.md +33 -0
- package/agents/fullstack-dev.md +33 -0
- package/agents/ops-engineer.md +33 -0
- package/agents/product-manager.md +35 -0
- package/agents/project-manager.md +32 -0
- package/agents/prompt-engineer.md +33 -0
- package/agents/qa-engineer.md +35 -0
- package/agents/qc-specialist-2.md +62 -0
- package/agents/qc-specialist-3.md +62 -0
- package/agents/qc-specialist.md +62 -0
- package/agents/writing-specialist.md +35 -0
- package/assets/icon.png +0 -0
- package/assets/logo-dark.png +0 -0
- package/assets/logo-dark.svg +6 -0
- package/assets/logo.png +0 -0
- package/assets/logo.svg +6 -0
- package/commands/amazing-pr-review.md +31 -0
- package/commands/codebase-audit.md +40 -0
- package/commands/iteration-drive.md +48 -0
- package/commands/iteration-loop.md +99 -0
- package/commands/iteration-start.md +122 -0
- package/dist/hooks/pre/mstar-gates.js +6579 -0
- package/dist/tools/mstar_dispatch_validate/index.js +6291 -0
- package/dist/tools/mstar_iteration_gate/index.js +6321 -0
- package/dist/tools/mstar_lease_verify/index.js +6343 -0
- package/dist/tools/mstar_path_resolve/index.js +6297 -0
- package/dist/tools/mstar_status_validate/index.js +6402 -0
- package/dist/tools/mstar_worktree_check/index.js +6343 -0
- package/harness-agents/architect.md +35 -0
- package/harness-agents/code-reviewer.md +90 -0
- package/harness-agents/frontend-dev.md +33 -0
- package/harness-agents/fullstack-dev-2.md +33 -0
- package/harness-agents/fullstack-dev.md +33 -0
- package/harness-agents/ops-engineer.md +33 -0
- package/harness-agents/product-manager.md +35 -0
- package/harness-agents/project-manager.md +32 -0
- package/harness-agents/prompt-engineer.md +33 -0
- package/harness-agents/qa-engineer.md +35 -0
- package/harness-agents/qc-specialist-2.md +62 -0
- package/harness-agents/qc-specialist-3.md +62 -0
- package/harness-agents/qc-specialist.md +62 -0
- package/harness-agents/writing-specialist.md +35 -0
- package/harness-commands/amazing-pr-review.md +31 -0
- package/harness-commands/codebase-audit.md +40 -0
- package/harness-commands/iteration-drive.md +48 -0
- package/harness-commands/iteration-loop.md +99 -0
- package/harness-commands/iteration-start.md +122 -0
- package/harness-skills/grill-me/SKILL.md +10 -0
- package/harness-skills/mstar-artifacts/SKILL.md +66 -0
- package/harness-skills/mstar-artifacts/references/knowledge-and-designs.md +110 -0
- package/harness-skills/mstar-artifacts/references/plan-files-and-reports.md +98 -0
- package/harness-skills/mstar-artifacts/references/plan-quality-bar.md +99 -0
- package/harness-skills/mstar-artifacts/references/status-and-residuals.md +472 -0
- package/harness-skills/mstar-artifacts/templates/README.md +7 -0
- package/harness-skills/mstar-artifacts/templates/plan.main.md +54 -0
- package/harness-skills/mstar-artifacts/templates/status.empty.json +5 -0
- package/harness-skills/mstar-audit/SKILL.md +151 -0
- package/harness-skills/mstar-audit/references/audit-playbook.md +175 -0
- package/harness-skills/mstar-audit/references/codebase-audit.md +103 -0
- package/harness-skills/mstar-audit/references/finding-format.md +69 -0
- package/harness-skills/mstar-audit/references/pr-review-seat-evidence.md +28 -0
- package/harness-skills/mstar-audit/references/pr-review.md +475 -0
- package/harness-skills/mstar-audit/references/security-review.md +219 -0
- package/harness-skills/mstar-branch-worktree/SKILL.md +236 -0
- package/harness-skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +68 -0
- package/harness-skills/mstar-coding-behavior/SKILL.md +167 -0
- package/harness-skills/mstar-compound/SKILL.md +109 -0
- package/harness-skills/mstar-compound/assets/resolution-template.md +94 -0
- package/harness-skills/mstar-compound/references/category-mapping.md +37 -0
- package/harness-skills/mstar-compound/references/compound-workflow.md +171 -0
- package/harness-skills/mstar-compound/references/concepts-vocabulary.md +44 -0
- package/harness-skills/mstar-compound/references/schema.yaml +122 -0
- package/harness-skills/mstar-compound-refresh/SKILL.md +154 -0
- package/harness-skills/mstar-compound-refresh/references/project-knowledge-bootstrap.md +164 -0
- package/harness-skills/mstar-conventions/SKILL.md +215 -0
- package/harness-skills/mstar-conventions/references/artifact-storage-paths.md +53 -0
- package/harness-skills/mstar-conventions/references/effort-estimation.md +38 -0
- package/harness-skills/mstar-conventions/references/harness-bootstrap-and-agents-layering.md +96 -0
- package/harness-skills/mstar-design-md/SKILL.md +142 -0
- package/harness-skills/mstar-design-md/references/completeness-checklist.md +181 -0
- package/harness-skills/mstar-design-md/references/design-md-spec.md +508 -0
- package/harness-skills/mstar-design-md/references/vercel-example.md +200 -0
- package/harness-skills/mstar-design-md/templates/DESIGN.dark.md.template +354 -0
- package/harness-skills/mstar-design-md/templates/DESIGN.md.template +474 -0
- package/harness-skills/mstar-dispatch-gates/SKILL.md +134 -0
- package/harness-skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +23 -0
- package/harness-skills/mstar-engine-legacy/SKILL.md +53 -0
- package/harness-skills/mstar-engine-legacy/references/anti-recursion-checklists.md +58 -0
- package/harness-skills/mstar-engine-legacy/references/engine-check-boilerplate.md +26 -0
- package/harness-skills/mstar-engine-legacy/references/lease-protocol.md +92 -0
- package/harness-skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +57 -0
- package/harness-skills/mstar-engine-legacy/references/status-field-history.md +186 -0
- package/harness-skills/mstar-harness-core/SKILL.md +196 -0
- package/harness-skills/mstar-host/SKILL.md +96 -0
- package/harness-skills/mstar-host/references/_shared/host-role-binding-core.md +51 -0
- package/harness-skills/mstar-host/references/_shared/plan-mode-bridge-core.md +91 -0
- package/harness-skills/mstar-host/references/codex.md +61 -0
- package/harness-skills/mstar-host/references/cursor-plan-mode-bridge.md +170 -0
- package/harness-skills/mstar-host/references/cursor.md +183 -0
- package/harness-skills/mstar-host/references/dsh.md +507 -0
- package/harness-skills/mstar-host/references/kimi-plan-mode-bridge.md +36 -0
- package/harness-skills/mstar-host/references/kimi.md +136 -0
- package/harness-skills/mstar-host/references/omp-plan-mode-bridge.md +32 -0
- package/harness-skills/mstar-host/references/omp.md +245 -0
- package/harness-skills/mstar-host/references/opencode.md +76 -0
- package/harness-skills/mstar-host/references/parallel-dispatch.md +68 -0
- package/harness-skills/mstar-host/references/zcode-plan-mode-bridge.md +36 -0
- package/harness-skills/mstar-host/references/zcode.md +129 -0
- package/harness-skills/mstar-iteration/SKILL.md +408 -0
- package/harness-skills/mstar-iteration/references/autonomous-direction-lock.md +90 -0
- package/harness-skills/mstar-iteration/references/command-shared-invariants.md +62 -0
- package/harness-skills/mstar-iteration/references/iteration-artifact-boundaries.md +103 -0
- package/harness-skills/mstar-iteration/references/iteration-compass-template.md +142 -0
- package/harness-skills/mstar-iteration/references/iteration-corpus-hygiene.md +45 -0
- package/harness-skills/mstar-iteration/references/iteration-workspace-readme-template.md +27 -0
- package/harness-skills/mstar-iteration/references/phase-2-worktree-lease.md +205 -0
- package/harness-skills/mstar-iteration/references/phase-3-iteration-close.md +105 -0
- package/harness-skills/mstar-iteration/references/phase-4-5-pr-delivery.md +85 -0
- package/harness-skills/mstar-iteration/references/phase5-helper-discovery.md +24 -0
- package/harness-skills/mstar-phase-gates/SKILL.md +118 -0
- package/harness-skills/mstar-project-governance/SKILL.md +119 -0
- package/harness-skills/mstar-review-qc/SKILL.md +76 -0
- package/harness-skills/mstar-review-qc/references/review-responsibility-boundaries.md +54 -0
- package/harness-skills/mstar-roles/SKILL.md +103 -0
- package/harness-skills/mstar-roles/references/_shared/leaf-executor-core.md +65 -0
- package/harness-skills/mstar-roles/references/architect.md +109 -0
- package/harness-skills/mstar-roles/references/code-reviewer.md +118 -0
- package/harness-skills/mstar-roles/references/frontend-dev.md +70 -0
- package/harness-skills/mstar-roles/references/fullstack-dev-shared.md +89 -0
- package/harness-skills/mstar-roles/references/ops-engineer.md +72 -0
- package/harness-skills/mstar-roles/references/product-manager.md +102 -0
- package/harness-skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +200 -0
- package/harness-skills/mstar-roles/references/project-manager/plan-management.md +59 -0
- package/harness-skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +56 -0
- package/harness-skills/mstar-roles/references/project-manager/qc-and-residuals.md +99 -0
- package/harness-skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +99 -0
- package/harness-skills/mstar-roles/references/project-manager.md +310 -0
- package/harness-skills/mstar-roles/references/prompt-engineer.md +65 -0
- package/harness-skills/mstar-roles/references/qa-engineer/acceptance-gate.md +62 -0
- package/harness-skills/mstar-roles/references/qa-engineer.md +71 -0
- package/harness-skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +104 -0
- package/harness-skills/mstar-roles/references/qc-specialist/report-template.md +88 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +44 -0
- package/harness-skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +57 -0
- package/harness-skills/mstar-roles/references/qc-specialist-shared.md +120 -0
- package/harness-skills/mstar-roles/references/writing-specialist.md +88 -0
- package/harness-skills/mstar-sdd/SKILL.md +137 -0
- package/harness-skills/mstar-sdd/references/file-handoffs.md +85 -0
- package/harness-skills/mstar-sdd/references/implementer-continuation-prompt.md +44 -0
- package/harness-skills/mstar-sdd/references/implementer-prompt.md +56 -0
- package/harness-skills/mstar-sdd/references/sticky-implementer-session.md +103 -0
- package/harness-skills/mstar-sdd/references/task-reviewer-prompt.md +53 -0
- package/harness-skills/mstar-skill-authoring/SKILL.md +182 -0
- package/harness-skills/mstar-skill-authoring/references/regression-fixation.md +46 -0
- package/harness-skills/mstar-skill-authoring/references/skillsbench-authoring.md +154 -0
- package/harness-skills/mstar-strategy/SKILL.md +114 -0
- package/harness-skills/pm/SKILL.md +40 -0
- package/hooks/pre/mstar-gates.js +6579 -0
- package/package.json +45 -0
- package/plugin.json +49 -0
- package/skills/grill-me/SKILL.md +10 -0
- package/skills/mstar-artifacts/SKILL.md +66 -0
- package/skills/mstar-artifacts/references/knowledge-and-designs.md +110 -0
- package/skills/mstar-artifacts/references/plan-files-and-reports.md +98 -0
- package/skills/mstar-artifacts/references/plan-quality-bar.md +99 -0
- package/skills/mstar-artifacts/references/status-and-residuals.md +472 -0
- package/skills/mstar-artifacts/templates/README.md +7 -0
- package/skills/mstar-artifacts/templates/plan.main.md +54 -0
- package/skills/mstar-artifacts/templates/status.empty.json +5 -0
- package/skills/mstar-audit/SKILL.md +151 -0
- package/skills/mstar-audit/references/audit-playbook.md +175 -0
- package/skills/mstar-audit/references/codebase-audit.md +103 -0
- package/skills/mstar-audit/references/finding-format.md +69 -0
- package/skills/mstar-audit/references/pr-review-seat-evidence.md +28 -0
- package/skills/mstar-audit/references/pr-review.md +475 -0
- package/skills/mstar-audit/references/security-review.md +219 -0
- package/skills/mstar-branch-worktree/SKILL.md +236 -0
- package/skills/mstar-branch-worktree/references/parallel-writable-pre-dispatch.md +68 -0
- package/skills/mstar-coding-behavior/SKILL.md +167 -0
- package/skills/mstar-compound/SKILL.md +109 -0
- package/skills/mstar-compound/assets/resolution-template.md +94 -0
- package/skills/mstar-compound/references/category-mapping.md +37 -0
- package/skills/mstar-compound/references/compound-workflow.md +171 -0
- package/skills/mstar-compound/references/concepts-vocabulary.md +44 -0
- package/skills/mstar-compound/references/schema.yaml +122 -0
- package/skills/mstar-compound-refresh/SKILL.md +154 -0
- package/skills/mstar-compound-refresh/references/project-knowledge-bootstrap.md +164 -0
- package/skills/mstar-conventions/SKILL.md +215 -0
- package/skills/mstar-conventions/references/artifact-storage-paths.md +53 -0
- package/skills/mstar-conventions/references/effort-estimation.md +38 -0
- package/skills/mstar-conventions/references/harness-bootstrap-and-agents-layering.md +96 -0
- package/skills/mstar-design-md/SKILL.md +142 -0
- package/skills/mstar-design-md/references/completeness-checklist.md +181 -0
- package/skills/mstar-design-md/references/design-md-spec.md +508 -0
- package/skills/mstar-design-md/references/vercel-example.md +200 -0
- package/skills/mstar-design-md/templates/DESIGN.dark.md.template +354 -0
- package/skills/mstar-design-md/templates/DESIGN.md.template +474 -0
- package/skills/mstar-dispatch-gates/SKILL.md +134 -0
- package/skills/mstar-dispatch-gates/references/leaf-executor-checklist.md +23 -0
- package/skills/mstar-engine-legacy/SKILL.md +53 -0
- package/skills/mstar-engine-legacy/references/anti-recursion-checklists.md +58 -0
- package/skills/mstar-engine-legacy/references/engine-check-boilerplate.md +26 -0
- package/skills/mstar-engine-legacy/references/lease-protocol.md +92 -0
- package/skills/mstar-engine-legacy/references/qc-seat-n-restatements.md +57 -0
- package/skills/mstar-engine-legacy/references/status-field-history.md +186 -0
- package/skills/mstar-harness-core/SKILL.md +196 -0
- package/skills/mstar-host/SKILL.md +96 -0
- package/skills/mstar-host/references/_shared/host-role-binding-core.md +51 -0
- package/skills/mstar-host/references/_shared/plan-mode-bridge-core.md +91 -0
- package/skills/mstar-host/references/codex.md +61 -0
- package/skills/mstar-host/references/cursor-plan-mode-bridge.md +170 -0
- package/skills/mstar-host/references/cursor.md +183 -0
- package/skills/mstar-host/references/dsh.md +507 -0
- package/skills/mstar-host/references/kimi-plan-mode-bridge.md +36 -0
- package/skills/mstar-host/references/kimi.md +136 -0
- package/skills/mstar-host/references/omp-plan-mode-bridge.md +32 -0
- package/skills/mstar-host/references/omp.md +245 -0
- package/skills/mstar-host/references/opencode.md +76 -0
- package/skills/mstar-host/references/parallel-dispatch.md +68 -0
- package/skills/mstar-host/references/zcode-plan-mode-bridge.md +36 -0
- package/skills/mstar-host/references/zcode.md +129 -0
- package/skills/mstar-iteration/SKILL.md +408 -0
- package/skills/mstar-iteration/references/autonomous-direction-lock.md +90 -0
- package/skills/mstar-iteration/references/command-shared-invariants.md +62 -0
- package/skills/mstar-iteration/references/iteration-artifact-boundaries.md +103 -0
- package/skills/mstar-iteration/references/iteration-compass-template.md +142 -0
- package/skills/mstar-iteration/references/iteration-corpus-hygiene.md +45 -0
- package/skills/mstar-iteration/references/iteration-workspace-readme-template.md +27 -0
- package/skills/mstar-iteration/references/phase-2-worktree-lease.md +205 -0
- package/skills/mstar-iteration/references/phase-3-iteration-close.md +105 -0
- package/skills/mstar-iteration/references/phase-4-5-pr-delivery.md +85 -0
- package/skills/mstar-iteration/references/phase5-helper-discovery.md +24 -0
- package/skills/mstar-phase-gates/SKILL.md +118 -0
- package/skills/mstar-project-governance/SKILL.md +119 -0
- package/skills/mstar-review-qc/SKILL.md +76 -0
- package/skills/mstar-review-qc/references/review-responsibility-boundaries.md +54 -0
- package/skills/mstar-roles/SKILL.md +103 -0
- package/skills/mstar-roles/references/_shared/leaf-executor-core.md +65 -0
- package/skills/mstar-roles/references/architect.md +109 -0
- package/skills/mstar-roles/references/code-reviewer.md +118 -0
- package/skills/mstar-roles/references/frontend-dev.md +70 -0
- package/skills/mstar-roles/references/fullstack-dev-shared.md +89 -0
- package/skills/mstar-roles/references/ops-engineer.md +72 -0
- package/skills/mstar-roles/references/product-manager.md +102 -0
- package/skills/mstar-roles/references/project-manager/dispatch-and-assignment.md +200 -0
- package/skills/mstar-roles/references/project-manager/plan-management.md +59 -0
- package/skills/mstar-roles/references/project-manager/qa-trigger-matrix.md +56 -0
- package/skills/mstar-roles/references/project-manager/qc-and-residuals.md +99 -0
- package/skills/mstar-roles/references/project-manager/routing-and-dev-allocation.md +99 -0
- package/skills/mstar-roles/references/project-manager.md +310 -0
- package/skills/mstar-roles/references/prompt-engineer.md +65 -0
- package/skills/mstar-roles/references/qa-engineer/acceptance-gate.md +62 -0
- package/skills/mstar-roles/references/qa-engineer.md +71 -0
- package/skills/mstar-roles/references/qc-specialist/deep-review-lenses.md +104 -0
- package/skills/mstar-roles/references/qc-specialist/report-template.md +88 -0
- package/skills/mstar-roles/references/qc-specialist/reviewer-checklist.md +44 -0
- package/skills/mstar-roles/references/qc-specialist/reviewer-workflow.md +57 -0
- package/skills/mstar-roles/references/qc-specialist-shared.md +120 -0
- package/skills/mstar-roles/references/writing-specialist.md +88 -0
- package/skills/mstar-sdd/SKILL.md +137 -0
- package/skills/mstar-sdd/references/file-handoffs.md +85 -0
- package/skills/mstar-sdd/references/implementer-continuation-prompt.md +44 -0
- package/skills/mstar-sdd/references/implementer-prompt.md +56 -0
- package/skills/mstar-sdd/references/sticky-implementer-session.md +103 -0
- package/skills/mstar-sdd/references/task-reviewer-prompt.md +53 -0
- package/skills/mstar-skill-authoring/SKILL.md +182 -0
- package/skills/mstar-skill-authoring/references/regression-fixation.md +46 -0
- package/skills/mstar-skill-authoring/references/skillsbench-authoring.md +154 -0
- package/skills/mstar-strategy/SKILL.md +114 -0
- package/skills/pm/SKILL.md +40 -0
- package/tools/mstar_dispatch_validate.js +6291 -0
- package/tools/mstar_iteration_gate.js +6321 -0
- package/tools/mstar_lease_verify.js +6343 -0
- package/tools/mstar_path_resolve.js +6297 -0
- package/tools/mstar_status_validate.js +6402 -0
- package/tools/mstar_worktree_check.js +6343 -0
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
# DESIGN.md Normative Spec
|
|
2
|
+
|
|
3
|
+
This document defines the normative structure, token naming conventions, and rules for a properly formed `DESIGN.md` file. It is the single source of truth for what each section means and how tokens should be defined.
|
|
4
|
+
|
|
5
|
+
## 1. File format
|
|
6
|
+
|
|
7
|
+
- Markdown (`.md`) with YAML frontmatter in project root
|
|
8
|
+
- UTF-8 encoding
|
|
9
|
+
- **YAML frontmatter** (`---` delimited block at top) contains structured, machine-readable token values
|
|
10
|
+
- **Markdown body** (everything after the `---` closing delimiter) contains human/agent-readable documentation, usage rules, and design intent
|
|
11
|
+
- Multi-theme: `DESIGN.md` (light/default) + `DESIGN.dark.md` (dark variant, same token names)
|
|
12
|
+
|
|
13
|
+
## 1.5. YAML Frontmatter — Structured Token Store
|
|
14
|
+
|
|
15
|
+
The YAML frontmatter is the **single source of truth** for token values. The Markdown body is supplementary documentation. Tools and agents MUST parse the frontmatter for token resolution; the body prose explains intent and rules.
|
|
16
|
+
|
|
17
|
+
### Version field
|
|
18
|
+
|
|
19
|
+
```yaml
|
|
20
|
+
version: 0.1.0
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Format version identifier. Current value: `0.1.0`.
|
|
24
|
+
|
|
25
|
+
### Name and description
|
|
26
|
+
|
|
27
|
+
```yaml
|
|
28
|
+
name: "[Design System Name]"
|
|
29
|
+
description: "[Brief description, noting light/dark theme relationship]"
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Colors (`colors:`)
|
|
33
|
+
|
|
34
|
+
Flat map of token names to hex (or `oklch()` for P3) values. All scales are flat — not nested:
|
|
35
|
+
|
|
36
|
+
```yaml
|
|
37
|
+
colors:
|
|
38
|
+
background-100: "#ffffff"
|
|
39
|
+
gray-1000: "#171717"
|
|
40
|
+
blue-700: "#006bff"
|
|
41
|
+
blue-700-p3: "oklch(57.61% 0.2508 258.23)"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
- Color token names follow the `{namespace}-{step}` convention (see §3)
|
|
45
|
+
- `*-p3` variants are optional wide-gamut equivalents in `oklch()` for Display P3 screens
|
|
46
|
+
- Alpha tokens use `#rrggbbaa` hex-with-alpha format (8 hex digits)
|
|
47
|
+
- All tokens are at the top level of `colors:` — no sub-grouping by family
|
|
48
|
+
|
|
49
|
+
### Typography (`typography:`)
|
|
50
|
+
|
|
51
|
+
Map of tokens to structured sub-objects:
|
|
52
|
+
|
|
53
|
+
```yaml
|
|
54
|
+
typography:
|
|
55
|
+
copy-16:
|
|
56
|
+
fontFamily: Geist Sans
|
|
57
|
+
fontSize: 16px
|
|
58
|
+
fontWeight: 400
|
|
59
|
+
lineHeight: 1.6
|
|
60
|
+
letterSpacing: 0
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Each typography token sub-object contains exactly five properties: `fontFamily`, `fontSize`, `fontWeight`, `lineHeight`, `letterSpacing`. Typography token names follow the `{role}-{size}` convention (see §3).
|
|
64
|
+
|
|
65
|
+
### Spacing (`spacing:`)
|
|
66
|
+
|
|
67
|
+
Flat map of numeric keys to pixel values:
|
|
68
|
+
|
|
69
|
+
```yaml
|
|
70
|
+
spacing:
|
|
71
|
+
base: 4px
|
|
72
|
+
1: 4px
|
|
73
|
+
2: 8px
|
|
74
|
+
3: 12px
|
|
75
|
+
4: 16px
|
|
76
|
+
6: 24px
|
|
77
|
+
8: 32px
|
|
78
|
+
10: 40px
|
|
79
|
+
16: 64px
|
|
80
|
+
24: 96px
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
- `base` declares the base unit (typically `4px` or `8px`)
|
|
84
|
+
- Numeric keys are multipliers on the base unit
|
|
85
|
+
|
|
86
|
+
### Border radius (`rounded:`)
|
|
87
|
+
|
|
88
|
+
Flat map of semantic keys to pixel values:
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
rounded:
|
|
92
|
+
sm: 6px
|
|
93
|
+
md: 12px
|
|
94
|
+
lg: 16px
|
|
95
|
+
full: 9999px
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Components (`components:`)
|
|
99
|
+
|
|
100
|
+
Map of component variant names to structured sub-objects. Values reference other frontmatter keys using `{path}` syntax:
|
|
101
|
+
|
|
102
|
+
```yaml
|
|
103
|
+
components:
|
|
104
|
+
button-primary:
|
|
105
|
+
backgroundColor: "{colors.gray-1000}"
|
|
106
|
+
textColor: "{colors.background-100}"
|
|
107
|
+
typography: "{typography.button-14}"
|
|
108
|
+
rounded: "{rounded.sm}"
|
|
109
|
+
padding: "0 10px"
|
|
110
|
+
height: 40px
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
- `{colors.X}` resolves to the value of `colors.X` in the same file's frontmatter
|
|
114
|
+
- `{typography.X}` resolves to the typography object (not a single value — consumers use the full object)
|
|
115
|
+
- `{rounded.X}` resolves to the border-radius value
|
|
116
|
+
- Direct values (like `"#ffffff"` or `40px`) are literal and do not reference other keys
|
|
117
|
+
|
|
118
|
+
### Completeness level in frontmatter
|
|
119
|
+
|
|
120
|
+
The frontmatter always contains the full key structure for every level. Level 2+ keys that are not yet filled are YAML-commented out with `# LEVEL2_PLACEHOLDER:` comments. The audit workflow (see `completeness-checklist.md`) checks which keys are active (uncommented) vs. placeholder (commented or containing `[LEVEL` / placeholder values).
|
|
121
|
+
|
|
122
|
+
### Frontmatter vs. body contract
|
|
123
|
+
|
|
124
|
+
| Aspect | Frontmatter (YAML) | Body (Markdown) |
|
|
125
|
+
|--------|-------------------|-----------------|
|
|
126
|
+
| Token values | **SSOT** — parse here | Descriptive prose referencing tokens |
|
|
127
|
+
| Color hex values | All active tokens here | Explanation of scale intent, usage rules |
|
|
128
|
+
| Typography specs | Exact CSS properties | Role descriptions, intent encoding |
|
|
129
|
+
| Spacing scale | Exact pixel values | Rhythm rules, usage patterns |
|
|
130
|
+
| Component tokens | Variants with references | State rules, size descriptions, focus patterns |
|
|
131
|
+
| Elevation | N/A (body-only) | box-shadow values per element |
|
|
132
|
+
| Motion | N/A (body-only) | Duration and easing tables |
|
|
133
|
+
| Voice rules | N/A (body-only) | Copy conventions and examples |
|
|
134
|
+
|
|
135
|
+
## 2. Section definitions
|
|
136
|
+
|
|
137
|
+
Each section below maps to one heading in `DESIGN.md`. Sections are ordered as shown in Vercel Geist (recommended), but projects may omit sections not yet relevant. Where a section has corresponding YAML frontmatter fields, the frontmatter holds the canonical values and the body provides documentation.
|
|
138
|
+
|
|
139
|
+
### 2.1 Overview
|
|
140
|
+
|
|
141
|
+
**Purpose:** Declare the design system's identity — a short statement that grounds all downstream decisions.
|
|
142
|
+
|
|
143
|
+
**What to include:**
|
|
144
|
+
- Name of the design system
|
|
145
|
+
- Core aesthetic principles (e.g., minimal, high-contrast, playful)
|
|
146
|
+
- Primary audience (developer tools, consumer app, dashboard, etc.)
|
|
147
|
+
- Note whether this is a light theme, dark theme, or references another file for the opposite theme
|
|
148
|
+
|
|
149
|
+
**Example (minimal):**
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
# Acme Design
|
|
153
|
+
|
|
154
|
+
Acme Design is a minimal, high-contrast design system for our developer dashboard.
|
|
155
|
+
Prioritize readability and signal state through color and iconography, not decoration.
|
|
156
|
+
|
|
157
|
+
This is the Light theme. The Dark theme lives at `/DESIGN.dark.md`.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**Level relevance:** Level 1+
|
|
161
|
+
|
|
162
|
+
### 2.2 Colors
|
|
163
|
+
|
|
164
|
+
**Purpose:** Define every color used in the UI, organized into scales.
|
|
165
|
+
|
|
166
|
+
**SSOT:** All concrete color values live in the frontmatter `colors:` map. The body prose below explains scale conventions and usage intent.
|
|
167
|
+
|
|
168
|
+
**Conventions:**
|
|
169
|
+
- Each color scale has 10 steps (`100`–`1000`), encoding intent:
|
|
170
|
+
- `100`: default background
|
|
171
|
+
- `200`: hover background
|
|
172
|
+
- `300`: active background
|
|
173
|
+
- `400`: default border
|
|
174
|
+
- `500`: hover border
|
|
175
|
+
- `600`: active border
|
|
176
|
+
- `700`: solid fill
|
|
177
|
+
- `800`: solid fill hover
|
|
178
|
+
- `900`: secondary text/icons
|
|
179
|
+
- `1000`: primary text/icons
|
|
180
|
+
- **Background scales** (`background-100`, `background-200`): page/card surfaces
|
|
181
|
+
- **Alpha scales** (`gray-alpha-*`): translucent overlays, borders, dividers — layer over any background; use `#rrggbbaa` hex-with-alpha or `rgba()` notation
|
|
182
|
+
- **Solid scales** (`gray-*`): text, opaque fills — hold contrast on any surface
|
|
183
|
+
- **Accent scales** (`blue`, `red`, `amber`, `green`, `teal`, `purple`, `pink`): carry meaning — success, error, warning, links, focus
|
|
184
|
+
- Accent scales may use fewer steps if not all needed
|
|
185
|
+
|
|
186
|
+
**Values:** sRGB hex (`#ffffff`), optionally with wide-gamut equivalents in `oklch()` as `*-p3` suffix keys.
|
|
187
|
+
|
|
188
|
+
**Example frontmatter:**
|
|
189
|
+
|
|
190
|
+
```yaml
|
|
191
|
+
colors:
|
|
192
|
+
background-100: "#ffffff"
|
|
193
|
+
background-200: "#f5f5f5"
|
|
194
|
+
gray-100: "#f5f5f5"
|
|
195
|
+
gray-700: "#333333"
|
|
196
|
+
gray-1000: "#111111"
|
|
197
|
+
blue-700: "#0066ff"
|
|
198
|
+
red-700: "#e60000"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**Level relevance:** Level 1+ requires at least background, text (gray-900/1000), and one accent (blue-700, red-700, amber-700) active in frontmatter. Level 2+ requires all color scales uncommented and filled.
|
|
202
|
+
|
|
203
|
+
### 2.3 Typography
|
|
204
|
+
|
|
205
|
+
**Purpose:** Define font families, sizes, weights, line heights, and letter spacing for every text role.
|
|
206
|
+
|
|
207
|
+
**SSOT:** All concrete typography values live in the frontmatter `typography:` map. The body prose explains role semantics and usage intent.
|
|
208
|
+
|
|
209
|
+
**Conventions:**
|
|
210
|
+
- **Heading tokens** (`heading-72` through `heading-14`): title pages and section headings
|
|
211
|
+
- **Label tokens** (`label-20` through `label-12`): single-line scannable text — navigation, form labels, table headers
|
|
212
|
+
- **Copy tokens** (`copy-24` through `copy-13`): multi-line body text with taller line height
|
|
213
|
+
- **Button tokens** (`button-16` through `button-12`): medium-weight labels for buttons
|
|
214
|
+
- **Mono tokens**: same metrics with monospace font for code/data
|
|
215
|
+
- Each token carries: `fontFamily`, `fontSize`, `fontWeight`, `lineHeight`, `letterSpacing`
|
|
216
|
+
- Token name encodes intended font size (e.g., `copy-14` ≈ 14px body copy)
|
|
217
|
+
- Use tabular figures for numbers that need alignment
|
|
218
|
+
|
|
219
|
+
**Example frontmatter (minimal):**
|
|
220
|
+
|
|
221
|
+
```yaml
|
|
222
|
+
typography:
|
|
223
|
+
heading-32:
|
|
224
|
+
fontFamily: Inter
|
|
225
|
+
fontSize: 32px
|
|
226
|
+
fontWeight: 600
|
|
227
|
+
lineHeight: 1.2
|
|
228
|
+
letterSpacing: -0.02em
|
|
229
|
+
copy-16:
|
|
230
|
+
fontFamily: Inter
|
|
231
|
+
fontSize: 16px
|
|
232
|
+
fontWeight: 400
|
|
233
|
+
lineHeight: 1.6
|
|
234
|
+
letterSpacing: 0
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**Level relevance:** Level 1+ requires at least one copy and one heading token active in frontmatter. Level 2+ requires heading, label, copy, and button typography tokens.
|
|
238
|
+
|
|
239
|
+
### 2.4 Spacing & Layout
|
|
240
|
+
|
|
241
|
+
**Purpose:** Define the spatial grid and responsive breakpoints.
|
|
242
|
+
|
|
243
|
+
**SSOT:** Spacing scale values live in the frontmatter `spacing:` map. Border radius values live in `rounded:`. Breakpoints are documented in the body.
|
|
244
|
+
|
|
245
|
+
**Conventions:**
|
|
246
|
+
- Base unit: 4px or 8px (declared as `spacing.base` in frontmatter)
|
|
247
|
+
- Scale: `4, 8, 12, 16, 24, 32, 40, 64, 96` (on 4px) or equivalent on 8px
|
|
248
|
+
- Three-step rhythm: small inside group → medium between groups → large between sections
|
|
249
|
+
- Card padding: 24px default, 16px compact, 32px hero
|
|
250
|
+
- Content max-width with responsive side padding
|
|
251
|
+
- Breakpoints: provide explicit pixel values and names
|
|
252
|
+
|
|
253
|
+
**Example frontmatter:**
|
|
254
|
+
|
|
255
|
+
```yaml
|
|
256
|
+
spacing:
|
|
257
|
+
base: 4px
|
|
258
|
+
1: 4px
|
|
259
|
+
2: 8px
|
|
260
|
+
3: 12px
|
|
261
|
+
4: 16px
|
|
262
|
+
6: 24px
|
|
263
|
+
8: 32px
|
|
264
|
+
10: 40px
|
|
265
|
+
16: 64px
|
|
266
|
+
24: 96px
|
|
267
|
+
|
|
268
|
+
rounded:
|
|
269
|
+
sm: 6px
|
|
270
|
+
md: 12px
|
|
271
|
+
lg: 16px
|
|
272
|
+
full: 9999px
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
**Level relevance:** Level 1+ requires `spacing.base` and at least 5 scale steps in frontmatter, plus at least 2 breakpoints in body.
|
|
276
|
+
|
|
277
|
+
### 2.5 Elevation & Depth
|
|
278
|
+
|
|
279
|
+
**Purpose:** Define shadow values for layered UI elements.
|
|
280
|
+
|
|
281
|
+
**Conventions:**
|
|
282
|
+
- Use tonal surfaces first, shadows second — keep shadows subtle
|
|
283
|
+
- Define shadow values per elevation level: cards, popovers, modals
|
|
284
|
+
- Pair each elevation with a matching border radius
|
|
285
|
+
|
|
286
|
+
**Example:**
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
## Elevation
|
|
290
|
+
|
|
291
|
+
### Shadows
|
|
292
|
+
| Level | Value |
|
|
293
|
+
|-------|-------|
|
|
294
|
+
| Card | 0 2px 2px rgba(0,0,0,0.04) |
|
|
295
|
+
| Popover | 0 1px 1px rgba(0,0,0,0.02), 0 4px 8px -4px rgba(0,0,0,0.04), 0 16px 24px -8px rgba(0,0,0,0.06) |
|
|
296
|
+
| Modal | 0 1px 1px rgba(0,0,0,0.02), 0 8px 16px -4px rgba(0,0,0,0.04), 0 24px 32px -8px rgba(0,0,0,0.06) |
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Level relevance:** Level 3 only.
|
|
300
|
+
|
|
301
|
+
### 2.6 Motion
|
|
302
|
+
|
|
303
|
+
**Purpose:** Define animation durations and easing curves.
|
|
304
|
+
|
|
305
|
+
**Conventions:**
|
|
306
|
+
- Motion clarifies change, never decorates
|
|
307
|
+
- Default: 0ms (instant) is often the best choice
|
|
308
|
+
- When needed: short, physical easing — roughly 150ms state, 200ms popover, 300ms modal
|
|
309
|
+
- Honor `prefers-reduced-motion`
|
|
310
|
+
- No looping or attention-grabbing animations
|
|
311
|
+
|
|
312
|
+
**Example:**
|
|
313
|
+
|
|
314
|
+
```
|
|
315
|
+
## Motion
|
|
316
|
+
|
|
317
|
+
### Easing
|
|
318
|
+
Default: cubic-bezier(0.175, 0.885, 0.32, 1.1)
|
|
319
|
+
|
|
320
|
+
### Durations
|
|
321
|
+
| Context | Duration |
|
|
322
|
+
|---------|----------|
|
|
323
|
+
| State change | 150ms |
|
|
324
|
+
| Popover/Tooltip | 200ms |
|
|
325
|
+
| Modal/Overlay | 300ms |
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
**Level relevance:** Level 3 only.
|
|
329
|
+
|
|
330
|
+
### 2.7 Shapes
|
|
331
|
+
|
|
332
|
+
**Purpose:** Define border radius values.
|
|
333
|
+
|
|
334
|
+
**Conventions:**
|
|
335
|
+
- Keep radii tight and consistent
|
|
336
|
+
- One radius family per view, never mix rounded and sharp corners
|
|
337
|
+
- Common values: 6px (surfaces), 12px (menus/modals), 16px (fullscreen), 9999px (pills)
|
|
338
|
+
|
|
339
|
+
**Example:**
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
## Shapes
|
|
343
|
+
|
|
344
|
+
### Border Radius
|
|
345
|
+
| Context | Value |
|
|
346
|
+
|---------|-------|
|
|
347
|
+
| Surface, Input, Button | 6px |
|
|
348
|
+
| Menu, Modal, Popover | 12px |
|
|
349
|
+
| Fullscreen | 16px |
|
|
350
|
+
| Pill, Avatar | 9999px |
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
**Level relevance:** Level 3 only.
|
|
354
|
+
|
|
355
|
+
### 2.8 Components
|
|
356
|
+
|
|
357
|
+
**Purpose:** Define ready-to-use token values for common components.
|
|
358
|
+
|
|
359
|
+
**SSOT:** Component variant tokens live in the frontmatter `components:` map. Values reference other frontmatter keys using `{colors.X}`, `{typography.X}`, `{rounded.X}` syntax. The body prose documents state rules (hover/active/disabled/focus) and size variants.
|
|
360
|
+
|
|
361
|
+
**Conventions:**
|
|
362
|
+
- Each component variant gets: `backgroundColor`, `textColor`, `typography`, `rounded`, `height` (and `padding`, `borderColor` where applicable)
|
|
363
|
+
- Size variants: default (40px), small (32px), large (48px) — override only typography/padding/height
|
|
364
|
+
- State mappings: hover steps foreground up one, active steps up two; border from 400→500→600
|
|
365
|
+
- Focus ring: two-layer box-shadow (surface gap + accent ring)
|
|
366
|
+
- Disabled: 100 fill + 700 text + not-allowed cursor
|
|
367
|
+
|
|
368
|
+
**Example frontmatter:**
|
|
369
|
+
|
|
370
|
+
```yaml
|
|
371
|
+
components:
|
|
372
|
+
button-primary:
|
|
373
|
+
backgroundColor: "{colors.gray-1000}"
|
|
374
|
+
textColor: "{colors.background-100}"
|
|
375
|
+
typography: "{typography.button-14}"
|
|
376
|
+
rounded: "{rounded.sm}"
|
|
377
|
+
padding: "0 10px"
|
|
378
|
+
height: 40px
|
|
379
|
+
button-secondary:
|
|
380
|
+
backgroundColor: "{colors.background-100}"
|
|
381
|
+
textColor: "{colors.gray-1000}"
|
|
382
|
+
typography: "{typography.button-14}"
|
|
383
|
+
rounded: "{rounded.sm}"
|
|
384
|
+
padding: "0 10px"
|
|
385
|
+
height: 40px
|
|
386
|
+
input:
|
|
387
|
+
backgroundColor: "{colors.background-100}"
|
|
388
|
+
textColor: "{colors.gray-1000}"
|
|
389
|
+
typography: "{typography.label-14}"
|
|
390
|
+
rounded: "{rounded.sm}"
|
|
391
|
+
padding: "0 12px"
|
|
392
|
+
height: 40px
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
**Level relevance:** Level 2+ requires at least Button (primary, secondary) and Input tokens in frontmatter. Level 3 requires full component library.
|
|
396
|
+
|
|
397
|
+
### 2.9 Voice & Content
|
|
398
|
+
|
|
399
|
+
**Purpose:** Define content writing rules for the UI.
|
|
400
|
+
|
|
401
|
+
**Conventions:**
|
|
402
|
+
- Title Case for labels, buttons, titles, tabs
|
|
403
|
+
- Sentence case for body, helper text, toasts
|
|
404
|
+
- Verb + Noun for actions (`Deploy Project`, never `Confirm`)
|
|
405
|
+
- Errors: what happened + what to do
|
|
406
|
+
- Toasts: specific thing + no trailing period + no `successfully`
|
|
407
|
+
- Empty states: describe the first action
|
|
408
|
+
- In-progress: present participle + ellipsis (`Deploying…`)
|
|
409
|
+
- Use numerals, curly quotes, the ellipsis character
|
|
410
|
+
|
|
411
|
+
**Example:**
|
|
412
|
+
|
|
413
|
+
```
|
|
414
|
+
## Voice & Content
|
|
415
|
+
|
|
416
|
+
- Use Title Case for labels, buttons, titles, and tabs
|
|
417
|
+
- Sentence case for body, helper text, and toasts
|
|
418
|
+
- Name actions with a verb and a noun: `Deploy Project`, `Delete Member`
|
|
419
|
+
- Write errors as what happened plus what to do next
|
|
420
|
+
- Toasts name the specific thing that changed, drop the trailing period
|
|
421
|
+
- Empty states point to the first action: `No deployments yet. Push to your Git repository to create one.`
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Level relevance:** Level 3 only.
|
|
425
|
+
|
|
426
|
+
## 3. Token naming conventions
|
|
427
|
+
|
|
428
|
+
### Color tokens
|
|
429
|
+
|
|
430
|
+
```
|
|
431
|
+
{namespace}-{step}
|
|
432
|
+
```
|
|
433
|
+
|
|
434
|
+
- `namespace`: `background`, `gray`, `gray-alpha`, `blue`, `red`, `amber`, `green`, `teal`, `purple`, `pink`
|
|
435
|
+
- `step`: `100`–`1000` (10-step scale encoding intent as defined in §2.2)
|
|
436
|
+
|
|
437
|
+
### Typography tokens
|
|
438
|
+
|
|
439
|
+
```
|
|
440
|
+
{role}-{size}
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
- `role`: `heading`, `label`, `copy`, `button`
|
|
444
|
+
- `size`: approximate font size in pixels
|
|
445
|
+
- Mono variant: `{role}-{size}-mono`
|
|
446
|
+
|
|
447
|
+
### Breakpoint tokens
|
|
448
|
+
|
|
449
|
+
Lowercase short names: `sm`, `md`, `lg`, `xl`, `2xl`
|
|
450
|
+
|
|
451
|
+
## 4. Light/Dark dual-theme rules
|
|
452
|
+
|
|
453
|
+
### Contract
|
|
454
|
+
|
|
455
|
+
Dual theme uses **same token names with different values** in two separate files:
|
|
456
|
+
|
|
457
|
+
- `DESIGN.md` — light (or default) theme
|
|
458
|
+
- `DESIGN.dark.md` — dark theme
|
|
459
|
+
|
|
460
|
+
### Rules
|
|
461
|
+
|
|
462
|
+
1. **Token names are identical** across both files
|
|
463
|
+
2. **Only the values differ** — a light `background-100: #ffffff` becomes dark `background-100: #111111`
|
|
464
|
+
3. **Both files define the same token set** — no token can exist in only one file
|
|
465
|
+
4. **DESIGN.md is always the SSOT for token names** — DESIGN.dark.md copies the structure
|
|
466
|
+
5. If a token isn't relevant to dark mode (e.g., a light-only accent), include it in DESIGN.dark.md anyway with a sensible dark-equivalent value
|
|
467
|
+
6. Add `DESIGN.dark.md` path reference in DESIGN.md Overview
|
|
468
|
+
|
|
469
|
+
### Naming
|
|
470
|
+
|
|
471
|
+
Dark theme file must be named `DESIGN.dark.md` (not `design-dark.md` or `DESIGN_DARK.md`).
|
|
472
|
+
|
|
473
|
+
## 5. Upgrade placeholders
|
|
474
|
+
|
|
475
|
+
Sections not yet filled should use HTML comment markers:
|
|
476
|
+
|
|
477
|
+
```
|
|
478
|
+
<!-- LEVEL2_PLACEHOLDER: Complete the 10-step color scales and add alpha scale when the design matures. See `references/completeness-checklist.md` § Level 2. -->
|
|
479
|
+
```
|
|
480
|
+
|
|
481
|
+
```
|
|
482
|
+
<!-- LEVEL3_PLACEHOLDER: Add Elevation, Motion, Shapes, Voice & Content, and full Component library when ready for production design system. See `references/completeness-checklist.md` § Level 3. -->
|
|
483
|
+
```
|
|
484
|
+
|
|
485
|
+
Agents encountering these placeholders understand that:
|
|
486
|
+
- The section is intentionally deferred, not accidentally empty
|
|
487
|
+
- The placeholder describes what's missing and when to revisit
|
|
488
|
+
- An upgrade workflow can detect these markers and recommend progression
|
|
489
|
+
|
|
490
|
+
## 6. Mapping to implementation
|
|
491
|
+
|
|
492
|
+
DESIGN.md tokens should map to implementation as follows:
|
|
493
|
+
|
|
494
|
+
| DESIGN.md | Implementation |
|
|
495
|
+
|-----------|---------------|
|
|
496
|
+
| Frontmatter `colors:` | CSS custom properties (`--color-gray-100`) or theme object |
|
|
497
|
+
| Frontmatter `typography:` | CSS classes or Tailwind prose config |
|
|
498
|
+
| Frontmatter `spacing:` | CSS custom properties or Tailwind spacing config |
|
|
499
|
+
| Frontmatter `rounded:` | CSS custom properties or Tailwind radius config |
|
|
500
|
+
| Body breakpoints | CSS media queries or Tailwind screens |
|
|
501
|
+
| Frontmatter `components:` | Component prop defaults or CSS classes |
|
|
502
|
+
| Body elevation | `box-shadow` or Tailwind shadow config |
|
|
503
|
+
| Body motion | `transition` or animation library config |
|
|
504
|
+
| Body voice rules | Linter rules or prompt context for copy generation |
|
|
505
|
+
|
|
506
|
+
**Frontmatter references** in `components:` (e.g., `"{colors.gray-1000}"`) MUST be resolved by tracing the `{path}` back to the frontmatter key. For example, `"{colors.gray-1000}"` → `colors.gray-1000` → `"#171717"`.
|
|
507
|
+
|
|
508
|
+
The agent consuming DESIGN.md is responsible for frontmatter parsing and reference resolution, not DESIGN.md itself. DESIGN.md stays implementation-agnostic.
|