@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,474 @@
|
|
|
1
|
+
---
|
|
2
|
+
version: 0.1.0
|
|
3
|
+
name: "[Design System Name]"
|
|
4
|
+
description: "[Design System Name] is a [adjective — e.g., minimal, high-contrast, playful] design system for [project/product name]. This is the Light theme."
|
|
5
|
+
|
|
6
|
+
colors:
|
|
7
|
+
# ── Background surfaces ──
|
|
8
|
+
# Level 1 — primary page/card surface (REQUIRED)
|
|
9
|
+
background-100: "[#ffffff]"
|
|
10
|
+
|
|
11
|
+
# LEVEL2_PLACEHOLDER: secondary surface, active surface — uncomment and fill when upgrading to Level 2
|
|
12
|
+
# background-200: "[#f5f5f5]"
|
|
13
|
+
# background-300: "[#e5e5e5]"
|
|
14
|
+
|
|
15
|
+
# ── Gray (solid — text and opaque fills) ──
|
|
16
|
+
# Level 1 — primary and secondary text (REQUIRED)
|
|
17
|
+
gray-1000: "[#111111]"
|
|
18
|
+
gray-900: "[#666666]"
|
|
19
|
+
|
|
20
|
+
# LEVEL2_PLACEHOLDER: full 10-step gray scale — uncomment and fill values for steps 100–800
|
|
21
|
+
# gray-100: "[#f2f2f2]"
|
|
22
|
+
# gray-200: "[#ebebeb]"
|
|
23
|
+
# gray-300: "[#e6e6e6]"
|
|
24
|
+
# gray-400: "[#eaeaea]"
|
|
25
|
+
# gray-500: "[#c9c9c9]"
|
|
26
|
+
# gray-600: "[#a8a8a8]"
|
|
27
|
+
# gray-700: "[#8f8f8f]"
|
|
28
|
+
# gray-800: "[#7d7d7d]"
|
|
29
|
+
|
|
30
|
+
# LEVEL2_PLACEHOLDER: gray alpha (translucent) scale — uncomment and fill
|
|
31
|
+
# gray-alpha-100: "#0000000d"
|
|
32
|
+
# gray-alpha-200: "#00000015"
|
|
33
|
+
# gray-alpha-300: "#0000001a"
|
|
34
|
+
# gray-alpha-400: "#00000014"
|
|
35
|
+
# gray-alpha-500: "#00000036"
|
|
36
|
+
# gray-alpha-600: "#0000003d"
|
|
37
|
+
# gray-alpha-700: "#00000070"
|
|
38
|
+
# gray-alpha-800: "#00000082"
|
|
39
|
+
# gray-alpha-900: "#000000b3"
|
|
40
|
+
# gray-alpha-1000: "#000000e8"
|
|
41
|
+
|
|
42
|
+
# ── Accent — Blue (links, focus, primary actions) ──
|
|
43
|
+
# Level 1 — at minimum blue-700 for interactive elements (REQUIRED)
|
|
44
|
+
blue-700: "[#0066ff]"
|
|
45
|
+
|
|
46
|
+
# LEVEL2_PLACEHOLDER: full blue scale — uncomment and fill
|
|
47
|
+
# blue-100: "[#f0f7ff]"
|
|
48
|
+
# blue-200: "[#e9f4ff]"
|
|
49
|
+
# blue-300: "[#dfefff]"
|
|
50
|
+
# blue-400: "[#cae7ff]"
|
|
51
|
+
# blue-500: "[#94ccff]"
|
|
52
|
+
# blue-600: "[#48aeff]"
|
|
53
|
+
# blue-700: "[#006bff]"
|
|
54
|
+
# blue-800: "[#0059ec]"
|
|
55
|
+
# blue-900: "[#005ff2]"
|
|
56
|
+
# blue-1000: "[#002359]"
|
|
57
|
+
|
|
58
|
+
# ── Accent — Red (errors, destructive actions) ──
|
|
59
|
+
# Level 1 — at minimum red-700 for errors (REQUIRED)
|
|
60
|
+
red-700: "[#e60000]"
|
|
61
|
+
|
|
62
|
+
# LEVEL2_PLACEHOLDER: full red scale — uncomment and fill
|
|
63
|
+
# red-100: "[#ffeeef]"
|
|
64
|
+
# red-200: "[#ffe8ea]"
|
|
65
|
+
# red-300: "[#ffe3e4]"
|
|
66
|
+
# red-400: "[#ffd7d6]"
|
|
67
|
+
# red-500: "[#ffb1b3]"
|
|
68
|
+
# red-600: "[#ff676d]"
|
|
69
|
+
# red-700: "[#fc0035]"
|
|
70
|
+
# red-800: "[#ea001d]"
|
|
71
|
+
# red-900: "[#d8001b]"
|
|
72
|
+
# red-1000: "[#47000c]"
|
|
73
|
+
|
|
74
|
+
# ── Accent — Amber (warnings) ──
|
|
75
|
+
# Level 1 — at minimum amber-700 for warnings (REQUIRED)
|
|
76
|
+
amber-700: "[#ffaa00]"
|
|
77
|
+
|
|
78
|
+
# LEVEL2_PLACEHOLDER: full amber scale — uncomment and fill
|
|
79
|
+
# amber-100: "[#fff6de]"
|
|
80
|
+
# amber-200: "[#fff4cf]"
|
|
81
|
+
# amber-300: "[#fff1c1]"
|
|
82
|
+
# amber-400: "[#ffdc73]"
|
|
83
|
+
# amber-500: "[#ffc543]"
|
|
84
|
+
# amber-600: "[#ffa600]"
|
|
85
|
+
# amber-700: "[#ffae00]"
|
|
86
|
+
# amber-800: "[#ff9300]"
|
|
87
|
+
# amber-900: "[#aa4d00]"
|
|
88
|
+
# amber-1000: "[#561900]"
|
|
89
|
+
|
|
90
|
+
# LEVEL2_PLACEHOLDER: additional accent scales — uncomment and fill
|
|
91
|
+
# green-100: "[#ecfdec]"
|
|
92
|
+
# green-200: "[#e5fce7]"
|
|
93
|
+
# green-300: "[#d3fad1]"
|
|
94
|
+
# green-400: "[#b9f5bc]"
|
|
95
|
+
# green-500: "[#82eb8d]"
|
|
96
|
+
# green-600: "[#4ce15e]"
|
|
97
|
+
# green-700: "[#28a948]"
|
|
98
|
+
# green-800: "[#279141]"
|
|
99
|
+
# green-900: "[#107d32]"
|
|
100
|
+
# green-1000: "[#003a00]"
|
|
101
|
+
|
|
102
|
+
# teal-100: "[#defffb]"
|
|
103
|
+
# teal-200: "[#ddfef6]"
|
|
104
|
+
# teal-300: "[#ccf9f1]"
|
|
105
|
+
# teal-400: "[#b1f7ec]"
|
|
106
|
+
# teal-500: "[#52f0db]"
|
|
107
|
+
# teal-600: "[#00e3c4]"
|
|
108
|
+
# teal-700: "[#00ac96]"
|
|
109
|
+
# teal-800: "[#00927f]"
|
|
110
|
+
# teal-900: "[#007f70]"
|
|
111
|
+
# teal-1000: "[#003f34]"
|
|
112
|
+
|
|
113
|
+
# purple-100: "[#faf0ff]"
|
|
114
|
+
# purple-200: "[#f9f0ff]"
|
|
115
|
+
# purple-300: "[#f6e8ff]"
|
|
116
|
+
# purple-400: "[#f2d9ff]"
|
|
117
|
+
# purple-500: "[#dfa7ff]"
|
|
118
|
+
# purple-600: "[#c979ff]"
|
|
119
|
+
# purple-700: "[#a000f8]"
|
|
120
|
+
# purple-800: "[#8500d1]"
|
|
121
|
+
# purple-900: "[#7d00cc]"
|
|
122
|
+
# purple-1000: "[#2f004e]"
|
|
123
|
+
|
|
124
|
+
# pink-100: "[#ffe8f6]"
|
|
125
|
+
# pink-200: "[#ffe8f3]"
|
|
126
|
+
# pink-300: "[#ffdfeb]"
|
|
127
|
+
# pink-400: "[#ffd3e1]"
|
|
128
|
+
# pink-500: "[#fdb3cc]"
|
|
129
|
+
# pink-600: "[#f97ea7]"
|
|
130
|
+
# pink-700: "[#f22782]"
|
|
131
|
+
# pink-800: "[#e4106e]"
|
|
132
|
+
# pink-900: "[#c41562]"
|
|
133
|
+
# pink-1000: "[#460523]"
|
|
134
|
+
|
|
135
|
+
# LEVEL3_PLACEHOLDER: wide-gamut P3 equivalents — uncomment and fill for Display P3 screens
|
|
136
|
+
# blue-100-p3: "oklch(…)"
|
|
137
|
+
# blue-200-p3: "oklch(…)"
|
|
138
|
+
# …
|
|
139
|
+
|
|
140
|
+
typography:
|
|
141
|
+
# ── Body text (multi-line, taller line-height) ──
|
|
142
|
+
# Level 1 — at minimum one body token (REQUIRED)
|
|
143
|
+
copy-16:
|
|
144
|
+
fontFamily: "[font-family]"
|
|
145
|
+
fontSize: 16px
|
|
146
|
+
fontWeight: 400
|
|
147
|
+
lineHeight: 1.6
|
|
148
|
+
letterSpacing: 0
|
|
149
|
+
|
|
150
|
+
# LEVEL2_PLACEHOLDER: additional body sizes — uncomment and fill
|
|
151
|
+
# copy-24:
|
|
152
|
+
# fontFamily: "[font-family]"
|
|
153
|
+
# fontSize: 24px
|
|
154
|
+
# fontWeight: 400
|
|
155
|
+
# lineHeight: 36px
|
|
156
|
+
# letterSpacing: 0
|
|
157
|
+
# copy-20:
|
|
158
|
+
# fontFamily: "[font-family]"
|
|
159
|
+
# fontSize: 20px
|
|
160
|
+
# fontWeight: 400
|
|
161
|
+
# lineHeight: 36px
|
|
162
|
+
# letterSpacing: 0
|
|
163
|
+
# copy-14:
|
|
164
|
+
# fontFamily: "[font-family]"
|
|
165
|
+
# fontSize: 14px
|
|
166
|
+
# fontWeight: 400
|
|
167
|
+
# lineHeight: 20px
|
|
168
|
+
# letterSpacing: 0
|
|
169
|
+
|
|
170
|
+
# ── Headings ──
|
|
171
|
+
# Level 1 — at minimum one heading token (REQUIRED)
|
|
172
|
+
heading-32:
|
|
173
|
+
fontFamily: "[font-family]"
|
|
174
|
+
fontSize: 32px
|
|
175
|
+
fontWeight: 600
|
|
176
|
+
lineHeight: 1.2
|
|
177
|
+
letterSpacing: -0.02em
|
|
178
|
+
|
|
179
|
+
# LEVEL2_PLACEHOLDER: full heading scale — uncomment and fill
|
|
180
|
+
# heading-72:
|
|
181
|
+
# fontFamily: "[font-family]"
|
|
182
|
+
# fontSize: 72px
|
|
183
|
+
# fontWeight: 600
|
|
184
|
+
# lineHeight: 72px
|
|
185
|
+
# letterSpacing: -0.04em
|
|
186
|
+
# heading-48:
|
|
187
|
+
# fontFamily: "[font-family]"
|
|
188
|
+
# fontSize: 48px
|
|
189
|
+
# fontWeight: 600
|
|
190
|
+
# lineHeight: 56px
|
|
191
|
+
# letterSpacing: -0.03em
|
|
192
|
+
# heading-24:
|
|
193
|
+
# fontFamily: "[font-family]"
|
|
194
|
+
# fontSize: 24px
|
|
195
|
+
# fontWeight: 600
|
|
196
|
+
# lineHeight: 32px
|
|
197
|
+
# letterSpacing: -0.01em
|
|
198
|
+
# heading-20:
|
|
199
|
+
# fontFamily: "[font-family]"
|
|
200
|
+
# fontSize: 20px
|
|
201
|
+
# fontWeight: 600
|
|
202
|
+
# lineHeight: 26px
|
|
203
|
+
# letterSpacing: -0.005em
|
|
204
|
+
|
|
205
|
+
# LEVEL2_PLACEHOLDER: label typography (single-line, scannable) — uncomment and fill
|
|
206
|
+
# label-14:
|
|
207
|
+
# fontFamily: "[font-family]"
|
|
208
|
+
# fontSize: 14px
|
|
209
|
+
# fontWeight: 400
|
|
210
|
+
# lineHeight: 20px
|
|
211
|
+
# letterSpacing: 0
|
|
212
|
+
|
|
213
|
+
# LEVEL2_PLACEHOLDER: button typography — uncomment and fill
|
|
214
|
+
# button-14:
|
|
215
|
+
# fontFamily: "[font-family]"
|
|
216
|
+
# fontSize: 14px
|
|
217
|
+
# fontWeight: 500
|
|
218
|
+
# lineHeight: 20px
|
|
219
|
+
# letterSpacing: 0
|
|
220
|
+
|
|
221
|
+
spacing:
|
|
222
|
+
base: 4px
|
|
223
|
+
# Level 1 — at minimum 5 scale steps (REQUIRED)
|
|
224
|
+
1: 4px
|
|
225
|
+
2: 8px
|
|
226
|
+
3: 12px
|
|
227
|
+
4: 16px
|
|
228
|
+
6: 24px
|
|
229
|
+
|
|
230
|
+
# LEVEL2_PLACEHOLDER: full 9-step scale — uncomment and fill
|
|
231
|
+
# 8: 32px
|
|
232
|
+
# 10: 40px
|
|
233
|
+
# 16: 64px
|
|
234
|
+
# 24: 96px
|
|
235
|
+
|
|
236
|
+
rounded:
|
|
237
|
+
# Level 1 — at minimum one radius for everyday controls (REQUIRED)
|
|
238
|
+
sm: 6px
|
|
239
|
+
|
|
240
|
+
# LEVEL2_PLACEHOLDER: additional radius tokens — uncomment and fill
|
|
241
|
+
# md: 12px
|
|
242
|
+
# lg: 16px
|
|
243
|
+
# full: 9999px
|
|
244
|
+
|
|
245
|
+
# LEVEL2_PLACEHOLDER: component tokens — uncomment full section when upgrading to Level 2
|
|
246
|
+
# components:
|
|
247
|
+
# button-primary:
|
|
248
|
+
# backgroundColor: "{colors.gray-1000}"
|
|
249
|
+
# textColor: "{colors.background-100}"
|
|
250
|
+
# typography: "{typography.button-14}"
|
|
251
|
+
# rounded: "{rounded.sm}"
|
|
252
|
+
# padding: "0 10px"
|
|
253
|
+
# height: 40px
|
|
254
|
+
# button-secondary:
|
|
255
|
+
# backgroundColor: "{colors.background-100}"
|
|
256
|
+
# textColor: "{colors.gray-1000}"
|
|
257
|
+
# typography: "{typography.button-14}"
|
|
258
|
+
# rounded: "{rounded.sm}"
|
|
259
|
+
# padding: "0 10px"
|
|
260
|
+
# height: 40px
|
|
261
|
+
# button-tertiary:
|
|
262
|
+
# textColor: "{colors.gray-1000}"
|
|
263
|
+
# typography: "{typography.button-14}"
|
|
264
|
+
# rounded: "{rounded.sm}"
|
|
265
|
+
# padding: "0 10px"
|
|
266
|
+
# height: 40px
|
|
267
|
+
# button-error:
|
|
268
|
+
# backgroundColor: "{colors.red-800}"
|
|
269
|
+
# textColor: "#ffffff"
|
|
270
|
+
# typography: "{typography.button-14}"
|
|
271
|
+
# rounded: "{rounded.sm}"
|
|
272
|
+
# padding: "0 10px"
|
|
273
|
+
# height: 40px
|
|
274
|
+
# button-small:
|
|
275
|
+
# typography: "{typography.button-14}"
|
|
276
|
+
# rounded: "{rounded.sm}"
|
|
277
|
+
# padding: "0 6px"
|
|
278
|
+
# height: 32px
|
|
279
|
+
# button-large:
|
|
280
|
+
# typography: "{typography.button-16}"
|
|
281
|
+
# rounded: "{rounded.sm}"
|
|
282
|
+
# padding: "0 14px"
|
|
283
|
+
# height: 48px
|
|
284
|
+
# input:
|
|
285
|
+
# backgroundColor: "{colors.background-100}"
|
|
286
|
+
# textColor: "{colors.gray-1000}"
|
|
287
|
+
# typography: "{typography.label-14}"
|
|
288
|
+
# rounded: "{rounded.sm}"
|
|
289
|
+
# padding: "0 12px"
|
|
290
|
+
# height: 40px
|
|
291
|
+
# input-small:
|
|
292
|
+
# typography: "{typography.label-14}"
|
|
293
|
+
# rounded: "{rounded.sm}"
|
|
294
|
+
# padding: "0 12px"
|
|
295
|
+
# height: 32px
|
|
296
|
+
# input-large:
|
|
297
|
+
# typography: "{typography.label-16}"
|
|
298
|
+
# rounded: "{rounded.sm}"
|
|
299
|
+
# padding: "0 12px"
|
|
300
|
+
# height: 48px
|
|
301
|
+
---
|
|
302
|
+
|
|
303
|
+
<!-- COMPLETENESS_LEVEL: 1 — last audited [DATE] -->
|
|
304
|
+
|
|
305
|
+
# [Design System Name]
|
|
306
|
+
|
|
307
|
+
## Overview
|
|
308
|
+
|
|
309
|
+
[Design System Name] is a [adjective, e.g., minimal, playful, bold] design system for [project/product name].
|
|
310
|
+
[Aesthetic principles — one sentence describing the visual identity: e.g., "Prioritize readability and clarity with plenty of whitespace and restrained color."]
|
|
311
|
+
|
|
312
|
+
All concrete token values live in the YAML frontmatter above (colors, typography, spacing, rounded, components). The sections below explain usage rules, design intent, and agent guidance.
|
|
313
|
+
|
|
314
|
+
This is the Light theme.
|
|
315
|
+
<!-- LEVEL2_PLACEHOLDER: When ready for dark theme, create DESIGN.dark.md with same token names and different values. See references/completeness-checklist.md § Level 3. -->
|
|
316
|
+
<!-- Uncomment when dark theme exists: The Dark theme uses the same token names with different values and lives at /DESIGN.dark.md. -->
|
|
317
|
+
|
|
318
|
+
## Colors
|
|
319
|
+
|
|
320
|
+
Token values are defined in the frontmatter `colors:` map. Each non-background scale runs 10 steps (`100`–`1000`), and the step encodes intent, not just lightness:
|
|
321
|
+
|
|
322
|
+
- `100` default background
|
|
323
|
+
- `200` hover background
|
|
324
|
+
- `300` active background
|
|
325
|
+
- `400` default border
|
|
326
|
+
- `500` hover border
|
|
327
|
+
- `600` active border
|
|
328
|
+
- `700` solid fill, high contrast
|
|
329
|
+
- `800` solid fill, hover
|
|
330
|
+
- `900` secondary text and icons
|
|
331
|
+
- `1000` primary text and icons
|
|
332
|
+
|
|
333
|
+
`background-100` is the primary page and card surface. The `gray-alpha-*` tokens are translucent, so they layer over any background; use them for borders, dividers, overlays, and hover states. Solid `gray-*` holds its contrast on any surface, so use it for text and opaque fills. Accent scales carry meaning: `blue` for links and focus; `red` for errors; `amber` for warnings; plus `green`, `teal`, `purple`, and `pink`.
|
|
334
|
+
|
|
335
|
+
<!-- LEVEL2_PLACEHOLDER: Complete the full 10-step gray scale and add all accent scales to the frontmatter. See references/completeness-checklist.md § Level 2/Colors. -->
|
|
336
|
+
<!-- LEVEL2_PLACEHOLDER: Add gray-alpha scale for translucent borders, overlays, and hover states. See references/design-md-spec.md § Colors. -->
|
|
337
|
+
<!-- LEVEL3_PLACEHOLDER: Add wide-gamut P3 equivalents (`*-p3`) in oklch() to the frontmatter. -->
|
|
338
|
+
|
|
339
|
+
## Typography
|
|
340
|
+
|
|
341
|
+
Token values are defined in the frontmatter `typography:` map. Token naming: `{role}-{size}` where role is `heading`, `label`, `copy`, or `button` and size is approximate font size in px.
|
|
342
|
+
|
|
343
|
+
- **Headings** (`heading-72` through `heading-14`): title pages and sections; `letterSpacing` tightens as the size grows.
|
|
344
|
+
- **Labels** (`label-20` through `label-12`): single-line, scannable text — navigation, form labels, table headers, metadata.
|
|
345
|
+
- **Copy** (`copy-24` through `copy-13`): multi-line body text with a taller `lineHeight`.
|
|
346
|
+
- **Buttons** (`button-16` through `button-12`): medium-weight labels for buttons and compact controls.
|
|
347
|
+
- **Mono tokens** (`-mono` suffix): same metrics with a monospace font for code and data; prefer tabular figures when numbers need to align.
|
|
348
|
+
|
|
349
|
+
<!-- LEVEL2_PLACEHOLDER: Complete the typography scale in the frontmatter. Add at least 3 heading levels, 1 label token, and 1 button typography token. See references/completeness-checklist.md § Level 2/Typography. -->
|
|
350
|
+
|
|
351
|
+
## Spacing & Layout
|
|
352
|
+
|
|
353
|
+
Token values are defined in the frontmatter `spacing:` and `rounded:` maps.
|
|
354
|
+
|
|
355
|
+
### Spacing scale
|
|
356
|
+
|
|
357
|
+
Keep a three-step rhythm:
|
|
358
|
+
- [small, e.g., 8px] inside a group (label + input, icon + text)
|
|
359
|
+
- [medium, e.g., 16px] between related groups
|
|
360
|
+
- [large, e.g., 32-40px] between sections
|
|
361
|
+
|
|
362
|
+
Cards use 24px padding, 16px when compact and 32px for hero areas. Center content in a responsive column with side padding that grows at wider breakpoints.
|
|
363
|
+
|
|
364
|
+
<!-- LEVEL2_PLACEHOLDER: Complete the full 9-step spacing scale in the frontmatter. See references/completeness-checklist.md § Level 2/Spacing. -->
|
|
365
|
+
|
|
366
|
+
### Breakpoints
|
|
367
|
+
|
|
368
|
+
<!-- Level 1 — At least 2 breakpoints for responsive layout. -->
|
|
369
|
+
|
|
370
|
+
| Name | Min Width | Target |
|
|
371
|
+
|------|-----------|--------|
|
|
372
|
+
| sm | 401px | Mobile landscape |
|
|
373
|
+
| lg | 961px | Desktop |
|
|
374
|
+
|
|
375
|
+
<!-- LEVEL2_PLACEHOLDER: Add intermediate breakpoints (md, xl, 2xl). See references/completeness-checklist.md § Level 2/Breakpoints. -->
|
|
376
|
+
<!--
|
|
377
|
+
| md | 601px | Tablet |
|
|
378
|
+
| xl | 1200px | Large desktop |
|
|
379
|
+
| 2xl | 1400px | Ultra-wide |
|
|
380
|
+
-->
|
|
381
|
+
|
|
382
|
+
<!-- LEVEL2_PLACEHOLDER: Add Components section — at minimum Button (primary, secondary, tertiary, error) and Input tokens in the frontmatter `components:` map with size variants and all states. See references/design-md-spec.md § Components. -->
|
|
383
|
+
<!--
|
|
384
|
+
## Components
|
|
385
|
+
|
|
386
|
+
Component tokens are defined in the frontmatter `components:` map. They reference other frontmatter keys via `{colors.*}` and `{typography.*}` syntax.
|
|
387
|
+
|
|
388
|
+
### Button
|
|
389
|
+
|
|
390
|
+
**Variants** are defined in frontmatter as `button-primary`, `button-secondary`, `button-tertiary`, `button-error`.
|
|
391
|
+
|
|
392
|
+
**Size variants** (`button-small`, `button-large`) inherit variant properties and override only typography, padding, and height.
|
|
393
|
+
|
|
394
|
+
**States:** Fill steps up: 100→200 (hover), 100→300 (active). Border steps up: 400→500→600. Disabled: 100 fill, 700 text, not-allowed cursor. Focus: `0 0 0 2px {colors.background-100}, 0 0 0 4px {colors.blue-700}`.
|
|
395
|
+
|
|
396
|
+
### Input
|
|
397
|
+
|
|
398
|
+
**Variants** are defined in frontmatter as `input`.
|
|
399
|
+
|
|
400
|
+
**Size variants** (`input-small`, `input-large`) same pattern as Button.
|
|
401
|
+
|
|
402
|
+
**States:** Same state progression as Button. Error: border `red-700`, add error message below.
|
|
403
|
+
-->
|
|
404
|
+
|
|
405
|
+
<!-- LEVEL3_PLACEHOLDER: Add Elevation & Depth, Motion, Shapes, Voice & Content, and extended Component library. See references/completeness-checklist.md § Level 3. -->
|
|
406
|
+
<!--
|
|
407
|
+
## Elevation & Depth
|
|
408
|
+
|
|
409
|
+
Hierarchy comes from tonal surfaces and borders first; shadows stay subtle.
|
|
410
|
+
|
|
411
|
+
### Shadows (light theme)
|
|
412
|
+
|
|
413
|
+
| Element | Value |
|
|
414
|
+
|---------|-------|
|
|
415
|
+
| Card | 0 2px 2px rgba(0, 0, 0, 0.04) |
|
|
416
|
+
| 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) |
|
|
417
|
+
| 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) |
|
|
418
|
+
|
|
419
|
+
Pair each elevation with the matching radius from `rounded:` frontmatter.
|
|
420
|
+
|
|
421
|
+
## Motion
|
|
422
|
+
|
|
423
|
+
Motion clarifies change, never decorates. Default 0ms is often the best choice.
|
|
424
|
+
|
|
425
|
+
### Easing
|
|
426
|
+
|
|
427
|
+
Default: cubic-bezier(0.175, 0.885, 0.32, 1.1)
|
|
428
|
+
|
|
429
|
+
### Durations
|
|
430
|
+
|
|
431
|
+
| Context | Duration |
|
|
432
|
+
|---------|----------|
|
|
433
|
+
| State change | 150ms |
|
|
434
|
+
| Popover/Tooltip | 200ms |
|
|
435
|
+
| Modal/Overlay | 300ms |
|
|
436
|
+
|
|
437
|
+
Honor prefers-reduced-motion: drop nonessential motion.
|
|
438
|
+
|
|
439
|
+
## Shapes
|
|
440
|
+
|
|
441
|
+
Border radius values are defined in the frontmatter `rounded:` map. Keep one radius family per view; never mix rounded and sharp corners.
|
|
442
|
+
|
|
443
|
+
## Components — Extended
|
|
444
|
+
|
|
445
|
+
Add Card, Modal, Tooltip, Menu/Dropdown, Badge tokens to the frontmatter `components:` map following the same structure as Button/Input.
|
|
446
|
+
|
|
447
|
+
## Voice & Content
|
|
448
|
+
|
|
449
|
+
Copy is part of the design; keep it precise and free of filler.
|
|
450
|
+
|
|
451
|
+
- Use Title Case for labels, buttons, titles, and tabs
|
|
452
|
+
- Sentence case for body, helper text, and toasts
|
|
453
|
+
- Name actions with a verb and a noun: [Create Project], [Delete Item]
|
|
454
|
+
- Write errors as what happened + what to do: [Error description. Suggested fix.]
|
|
455
|
+
- Toasts name the specific thing, no trailing period, no "successfully": [Item deleted]
|
|
456
|
+
- Empty states point to the first action: [No items yet. Create one to get started.]
|
|
457
|
+
- In-progress states: present participle + ellipsis: [Saving…], [Loading…]
|
|
458
|
+
- Use numerals, curly quotes, the ellipsis character
|
|
459
|
+
- Skip "please" and marketing superlatives
|
|
460
|
+
-->
|
|
461
|
+
|
|
462
|
+
## Do's and Don'ts
|
|
463
|
+
|
|
464
|
+
<!-- Fill in with rules specific to this design system. Examples to customize: -->
|
|
465
|
+
|
|
466
|
+
- Use `gray-1000` for primary text, `gray-900` for secondary.
|
|
467
|
+
- Keep accent color for state and the single most important action on a view.
|
|
468
|
+
- Hold WCAG AA contrast (4.5:1 for body text).
|
|
469
|
+
- Show focus ring on every interactive element at `:focus-visible`.
|
|
470
|
+
- Use token values from the frontmatter — never set font size, line height, or color by hand.
|
|
471
|
+
- Don't signal state with color alone; pair it with an icon or text label.
|
|
472
|
+
- Don't use more than two font weights in one view.
|
|
473
|
+
- Don't mix rounded and sharp corners in one view.
|
|
474
|
+
- Don't swap `gray-*` for `background-*`; they are separate scales.
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mstar-dispatch-gates
|
|
3
|
+
description: Morning Star 派发与委派门禁 —— 仅 PM 可增派 subagent、`Execute as` 与 `Delegation`、承接方反递归 NEVER 红线、SDD implement 串行派发、**SDD 路径 plan QC 强制 tri-review(N=3)**、inline 单席 QC 例外、Assignment 文案≠派发、未齐不发、**invoke 角色字段必填(漏写=静默 generic 回退=派发未完成)**。`project-manager` 派发时必读;leaf 动手前必读反递归。worktree 见 `mstar-branch-worktree`;SDD 见 `mstar-sdd`;宿主见 `mstar-host`。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
## Load order(必读顺序)
|
|
7
|
+
|
|
8
|
+
**首次 Read 本 skill 前:必须先 Read `mstar-harness-core`(SKILL.md)。** 同仓 worktree、QC/QA 检出字段 → **`mstar-branch-worktree`**。冲突时 **以 `mstar-harness-core` 为准**。
|
|
9
|
+
|
|
10
|
+
## 🚨 承接方:如果你是 leaf executor,先读本节!(你的 Assignment 开头 IDENTITY 块已告诉你身份)
|
|
11
|
+
|
|
12
|
+
> **如果你此刻的 Assignment 中 `Delegation: forbidden`(或未写 `Delegation: allowed`),则你属于 leaf executor。本节是你的行为边界,必须在你做任何决定之前读完。**
|
|
13
|
+
>
|
|
14
|
+
> **先回到你 Assignment 最顶部的 `**IDENTITY**` 块重读一遍** —— 那里已经告诉你:你是谁、你不是谁、Task 工具不属于你。本节是那个身份断言的加固版。
|
|
15
|
+
|
|
16
|
+
**身份断言(牢记,不动摇):**
|
|
17
|
+
- **你就是** `Execute as` 写的那个角色。你**不是 PM**,不是调度者,不是 parallel-agent dispatch 的使用者。
|
|
18
|
+
- Task/subagent 工具即使在你的工具列表里出现,它**不属于你**。把它当作你没见过的工具 —— 不是"不能用",是"你没有"。
|
|
19
|
+
- 所有工作由你**本人**在当前会话内完成(Read / Write / Edit / Shell / Grep / Glob)。任何"这样做更高效"的想法都不构成 dispatch 的理由。
|
|
20
|
+
- 遇到超出能力范围的需求 → 写 `## Blocked` 回报 PM,**不是**尝试 dispatch。Blocked 是你能发出的正确信号,dispatch 不是。
|
|
21
|
+
|
|
22
|
+
## 承接方反递归红线(NEVER / DO NOT;leaf executor 必读)
|
|
23
|
+
|
|
24
|
+
下列行为易触发递归误派;`project-manager` 之外的角色一旦命中,须立即停止并改为本会话内可交付物,或 **`Blocked`** 回报 PM。**禁止**以「更高效」「Assignment 像 PM 编排」等理由绕开:
|
|
25
|
+
|
|
26
|
+
- **NEVER** 在本会话内调用 Task / subagent,且其 `subagent_type` **等于**你当前的 **`Execute as`** 角色 id。
|
|
27
|
+
- **NEVER** 把 Assignment 里出现的 **任何** plain `role-id` 提及、反引号 `` `<role-id>` ``、**Handoff**、**QA gate**、**Completion Report** 模板里的角色名、路由表下游角色当成「立刻 invoke」的指令;这些是**叙事 / 路由文档 / 后续 PM 编排意图**,不是命令。
|
|
28
|
+
- **NEVER** 把「分解为多个计划 / 多 phase / 多 track」等**设计产物层面**的并行或拆分读成「应 invoke 与子会话数量对应的多个 subagent」。**纸面产物**由本会话写盘完成;并行**调度**由 PM 在后续轮次决定。
|
|
29
|
+
- **NEVER** 因宿主**暴露**了 `Task` 或若干 `subagent_type` 名称就推断可以调用。**工具可用 ≠ 授权使用**;授权只来自 **`Delegation: allowed (...)`**。
|
|
30
|
+
- **NEVER**(非 PM)主动执行 parallel-agent dispatch 来分派子代理;需要并行时回报 PM。
|
|
31
|
+
- **DO NOT** 在 Assignment 缺少 `Execute as` / `Delegation` / `Who runs this turn` 时自行「补齐」为 PM;缺字段时按 **leaf executor** 解释:亲自完成或 **`Blocked`**。
|
|
32
|
+
- **DO NOT** 用「Assignment 太长 / 像编排稿」当作分派依据;先交付本会话任务再回报,分派由 PM 下一轮决定。
|
|
33
|
+
|
|
34
|
+
**自检(动手前)**:
|
|
35
|
+
|
|
36
|
+
1. 我此刻的 **`Execute as`** 是什么?
|
|
37
|
+
2. Assignment 是否写了 **`Delegation: allowed (...)`**?没有 → **禁止**任何 Task / subagent。
|
|
38
|
+
3. 下一动作是不是「Task / subagent_type=…」?是 → 停手,改为 Read / Write / Shell / Edit,或 **`Blocked`**。
|
|
39
|
+
4. 命中任一 NEVER → 写 `## Blocked — recursive dispatch refused (<which NEVER>)` 回报 PM,**不**继续 invoke。
|
|
40
|
+
|
|
41
|
+
**Assignment 顶部反模式块**:每个 PM Assignment 开头均有 **`**You are a leaf executor. You MUST NOT:**`** 块(含 IDENTITY + CAPABILITY BOUNDARY + prohibitions),PM 按此 Assignment 的角色+上下文定制反模式清单。leaf executor 收到 Assignment 后须 **首先** 阅读该块;命中任一条 → **停止**(亲自完成或 `Blocked`)。详见 **`mstar-roles/references/project-manager/dispatch-and-assignment.md`**。
|
|
42
|
+
|
|
43
|
+
> **Engine 执行范围(caller-scoped,#156)**:engine `antiRecursionPrecheck` 比较的是**派发方自身角色**(caller)与新 Assignment 的 `Execute as`(target)。只有 **dsh**(Config `dispatchBinding`)能观察派发方身份并在 engine 层硬执行(含 `callerRequired` 空绑定 fail-closed);omp / OpenCode / Cursor 的角色绑定字段是**派发目标**——目标 == `Execute as` 正是 C5 合规派发模式——这些宿主上红线保持 prompt 级约束(本节),engine 不做判定。
|
|
44
|
+
|
|
45
|
+
## 调度防串扰(强制;leaf executor 已在上方读过反递归红线,此处为完整规则供 PM/对照用)
|
|
46
|
+
|
|
47
|
+
- 只有 **`project-manager`** 可以决定增加/并行 subagent;承接方**默认不得二次分派**。
|
|
48
|
+
- **`Execute as: <role-id>`** = 承接方**亲自**完成本单,**不是**再起同名 subagent 或嵌套同 `subagent_type` 的 Task(禁止**递归误派**)。
|
|
49
|
+
- 额外代理仅以 **`Delegation: allowed (...)`** 为准;未显式写时视为 **`Delegation: forbidden`**。
|
|
50
|
+
- Assignment 正文中的 role 引用:默认 **plain id**(`product-manager`);OpenCode 见 **`mstar-host/references/opencode.md`** § Role-mention hygiene。
|
|
51
|
+
- 承接方若判断必须增加 subagent,应先回报 **`Blocked`** 请 PM 重分派。
|
|
52
|
+
- Per-task informal review, when PM explicitly allows it, must not use `qc-specialist*`; use `code-reviewer` (generic fallback only when the role agent is absent on the host) or PM-marked informal `qa-engineer`. Formal QC remains `mstar-review-qc`.
|
|
53
|
+
|
|
54
|
+
## 并发分派完整性门禁(PM 强制 · Evidence)
|
|
55
|
+
|
|
56
|
+
当 PM 声明「并发分派」时,须同时满足**文案并发**与**工具并发**:
|
|
57
|
+
|
|
58
|
+
- **工具并发**:同一调度轮次内,多个 subagent 调用须在**同一条 assistant 消息**里一次性发出(宿主允许时)。
|
|
59
|
+
- **QC tri-review(SDD 强制)**:`Execution mode: sdd` 且全部 task 完成后 → `qc-specialist` / `qc-specialist-2` / `qc-specialist-3` 同条消息 **N=3**(写 `{SDD_DIR}/review/qc1.md`…`qc3.md`;PM 汇总 `qc-consolidated.md` + durable plan summary)。Assignment 须含 branch **review-package** 路径与 report paths。适用于**单 plan 与 iteration**。
|
|
60
|
+
- **QC 单席(例外)**:`Execution mode: inline`(hotfix 等),或 Assignment 显式 `QC mode: single` / `QC mode: single — override: <reason>` → `qc-specialist` ×1,`N=1`,写 `{SDD_DIR}/review/qc.md`。
|
|
61
|
+
- **QC targeted re-review**:Assignment 含 **`QC re-review: targeted — reviewers: …`** 时,**N** = 所列席位数(1–3),同条消息发满 **N**。
|
|
62
|
+
- **先自检再发送**:发送前核对「Assignment 条数 = 本条消息中的实际 **派发** 调用条数」。
|
|
63
|
+
- **先自检字段再发送(与 count 同级门禁)**:核对**每条** invoke 都携带与 **`Execute as`** 匹配的角色绑定字段——omp **`agent`** / Cursor **`subagent_type`** / OpenCode **`subagent`** / Kimi·ZCode **`subagent_type`**;宿主列以 **`mstar-host`** §Detect active host 的 tool-shape 检测为准(禁以 config 路径/仓库内容判定)。**漏写或取默认通用值**(omp 漏 `agent` ⇒ 自动回退 generic `task`,无报错)= **派发未完成**,与 paste-only(零 invoke)**同等级**:当场补齐重发,不得进入下一 gate。**N=1 顺序链(Review & Edit)不豁免**——count 门在 N=1 恒过,**字段门是唯一保护**。
|
|
64
|
+
- **前置步骤与派发回合分离(防串行 rollout)**:为派发准备的 **`bash` / `read` / `glob` / `grep`**(如 `merge-base`、`Review range`、`git rev-parse`)**不计入** `N` 次派发;可在上一条仅含准备的消息完成。准备完成后,**下一条派发消息**须**一次性**含 **`N` 次** Task / subagent invoke。**禁止**先发 `1` 次、等返回再补发其余 `N-1` 次。
|
|
65
|
+
- **未齐不发(emit zero until batch-ready)**:需并发 `N≥2` 而当前只能发 `1` 条时,本条应发 **`0` 条派发 invoke`**(可继续 read/bash 补齐),**禁止**「先发一个顶一下」;`N` 份 payload 就绪后**单次消息发满 `N`**。见 **`mstar-host`** → `references/parallel-dispatch.md`(具备 invoke / Task / subagent 工具的宿主共用)。
|
|
66
|
+
|
|
67
|
+
### 具名 subagent 宿主:文案分派 ≠ 调度完成
|
|
68
|
+
|
|
69
|
+
在支持具名角色 / Task 的宿主上,`## Assignment` **正文不会**拉起子会话。PM 须在**同一条 assistant 消息**(或宿主等价机制)发出与 Assignment **条数一致**的 invoke / Task;仅打印 Markdown = **分派未完成**。**几条 Assignment ⇒ 几次 tool 调用**(默认同消息并行)。
|
|
70
|
+
|
|
71
|
+
> **Engine check (when available):** run `mstar dispatch validate <assignment-file> [--branch <branch>]` (or `import { validateAssignmentFields, assertDefaultBranchProtected } from "@mstar-harness/engine"` in a host hook) to validate the Assignment field contract and the default-branch gate (normative default-branch prose: **`mstar-branch-worktree`** SKILL.md § "Git 功能分支门禁(业务仓库)" — this skill covers dispatch mechanics only). On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
72
|
+
|
|
73
|
+
## SDD implement 波次(PM only)
|
|
74
|
+
|
|
75
|
+
When **`Execution mode: sdd`** (`mstar-sdd`):
|
|
76
|
+
|
|
77
|
+
- **串行**:one implementer at a time; one **fresh** task reviewer after each — **never** parallel implementers (write conflicts).
|
|
78
|
+
- **`SDD implementer session: sticky`**:same implementer subagent may **resume** across tasks when host supports it; **reviewers never resume** — see **`mstar-sdd/references/sticky-implementer-session.md`**.
|
|
79
|
+
- File handoffs only — no pasted plan/diff/history in dispatch prompts.
|
|
80
|
+
- Record per-task BASE SHA; use `review-package` for diffs — **never `HEAD~1`**.
|
|
81
|
+
- After all tasks: branch `review-package` in `{SDD_DIR}/review/` → **mandatory tri-review N=3** when `Execution mode: sdd`; **N=1** only for `inline` / explicit single override.
|
|
82
|
+
|
|
83
|
+
> **QC seats Engine-check 唯一规范体:** `mstar-review-qc` `SKILL.md`(Engine-check seats 行)。
|
|
84
|
+
|
|
85
|
+
## 并行规则(摘要)
|
|
86
|
+
|
|
87
|
+
**两条独立门禁(均须满足,不可互相替代)**:
|
|
88
|
+
|
|
89
|
+
| 门禁 | SSOT | 常见误满足 |
|
|
90
|
+
|------|------|------------|
|
|
91
|
+
| **工具并发** | 同条消息发满 N 次 invoke | 已发 2 个 Task ⇒ 误以为「并行合规」 |
|
|
92
|
+
| **同仓写隔离** | 派发 **前** 每轨独立 `Worktree path` | 只写了 `Working branch` / `checkout -b` |
|
|
93
|
+
|
|
94
|
+
- 独立模块可并行 **implement 轨道**(不同 dev Assignment);**同仓 ≥2 可写并发** → **`mstar-branch-worktree`** **`references/parallel-writable-pre-dispatch.md`**(先于 invoke;同 plan 多轨 = L2)。
|
|
95
|
+
- **SDD 单 plan 内**:task / implementer **仍串行**(`mstar-sdd`);**禁止**同一 plan 内并行 SDD implementer(写冲突)。
|
|
96
|
+
- **跨 plan(迭代 Phase 2)≠ 单 plan 内并行**:不同 `plan_id` 的 feature implement **允许** lease 门控并行(每 plan 独立 verified snapshot `plans[].execution_lease` + feature worktree,L1)**仅当** coordination 路径 same-host 独占写锁可用且每次协调变更持锁 → **`mstar-iteration`** §2.0 #5 · **`mstar-artifacts`**。**跨主机 / 无共享 flock** → 默认 **`Plan parallelism: serial`** 或 Assignment 仍写并行 → **Blocked**(用户本轮 `Cross-host lease race: accepted` + audit `notes` 除外)。**无 flock 不豁免** control/feature worktree 或 lease。**`Worktree mode: waived` 不豁免**跨 plan 并行安全闸。**禁止**因默认 gitignore 导致 feature 缺 plans 而 waive worktree(harness 经 control 绝对路径)→ **`mstar-branch-worktree`**。**禁止**无 lease 的跨 plan 可写派发(lease 闸未 waive 时)。
|
|
97
|
+
- **`integration_merge_lease`**:`spec_integration_branch` 上的 merge **始终串行**(一次仅一 holder)→ **`mstar-iteration`** · **`mstar-artifacts`**。
|
|
98
|
+
- **`Plan parallelism: serial`**:仅强制跨 plan implement **调度串行**;**不** waive control worktree / `execution_lease` / `integration_merge_lease`(`Worktree mode: waived` 才是 lease/worktree 豁免)→ **`mstar-iteration`** §2.0 #5。
|
|
99
|
+
- **Plan QC tri** after SDD task loop(`Execution mode: sdd`);**单席**仅 `inline` / hotfix。共用 `Review cwd` / `Working branch` / `plan_id` / `Review range`(**`mstar-branch-worktree`**)。
|
|
100
|
+
- **Tri 同消息规则**:plan QC tri(SDD 或 Assignment 显式 `QC mode: full tri-review`)时三席 **同一条消息**、**同一套** scope 字段。
|
|
101
|
+
|
|
102
|
+
> **Engine check (when available):** run `mstar worktree check <plan-id> --workflow <id>` (L1) / `mstar worktree check --l2 --tracks <json>` (L2) (or `import { l1PreDispatchCheck, l2PreDispatchCheck } from "@mstar-harness/engine"` in a host hook) to verify the 同仓写隔离 gate above (per-track feature worktree, branch alignment) before parallel dispatch. On `fail` -> do not proceed; fix and re-run. Skill text below remains authoritative when the runtime is absent.
|
|
103
|
+
|
|
104
|
+
## Specialist review-and-edit dispatch
|
|
105
|
+
|
|
106
|
+
当 PM 派发**文档编辑类**专业角色(如 product-manager、architect、writing-specialist)直接修订 harness 产物时:
|
|
107
|
+
|
|
108
|
+
- PM 写初稿;各角色通过宿主 invoke **直接编辑**目标文件(**不**另写仅评论式 `reports/` 替代修订)。
|
|
109
|
+
- **1 Assignment ⇒ 1 invoke**。
|
|
110
|
+
- **Phase 1 Review & Edit chain**(`mstar-iteration` §1.6):主产出 **`{SPECS_DIR}/`** + **`{ITERATION_DIR}/<iteration-id>/`** package;**禁止** start 链向 `{KNOWLEDGE_DIR}/` 新增。close 时 **`mstar-compound`** 提升 package → knowledge。
|
|
111
|
+
- 其他彼此独立、无先后依赖的文档编辑任务:可并行(同条消息发满 N),见 **`parallel-dispatch.md`**。
|
|
112
|
+
- PM 线程代做全部专业编辑 = **反模式**(`mstar-iteration` §1.6、`mstar-harness-core` 反模式索引)。
|
|
113
|
+
- PM merge / lock(如 compass `status: locked`)在链末 subagent 返回后于 PM 线程完成。**不得**在 review-and-edit 链完成前 commit integration 分支。
|
|
114
|
+
|
|
115
|
+
## 反模式(派发)
|
|
116
|
+
|
|
117
|
+
完整反模式索引见 **`mstar-harness-core`**;lease / worktree / Phase 相关反模式见 **`mstar-branch-worktree`** 与 **`mstar-iteration`**。本节仅列派发机制专属:
|
|
118
|
+
|
|
119
|
+
- QC 三审拆在多条消息(tri 模式)或单席却未附 review-package 路径。
|
|
120
|
+
- 仅 1 次 invoke 却声称「tri-review 已并行启动」(tri 模式 N=3)。
|
|
121
|
+
- SDD 并行 implementer dispatch(**同一 plan 内**多 task)— **不同于**跨 plan lease 门控并行(后者见上节 L1 / **`mstar-branch-worktree`**)。
|
|
122
|
+
- 递归同角色 subagent;把 Handoff / 多轨编排措辞当 invoke。
|
|
123
|
+
- Review-and-edit 链未完成即 commit integration 分支;PM 代做专业角色编辑而不 invoke。
|
|
124
|
+
- Phase 1 review-and-edit 链三角色并行派发,或未等上一角色返回即派发下一角色。
|
|
125
|
+
- Assignment 已写、invoke 为零(paste-only)却进入下一 gate。
|
|
126
|
+
- Task/subagent item 漏写角色绑定字段(omp 漏 `agent` / Cursor 漏 `subagent_type` / OpenCode 漏 `subagent`)⇒ **静默回退 generic worker**,却因 count=N 通过而误判「派发完成」;属 paste-only 同级的 **dispatch-incomplete**。N=1 顺序 Review-&-Edit 链最易在此漏字段。
|
|
127
|
+
|
|
128
|
+
## Workflow
|
|
129
|
+
|
|
130
|
+
派发检查顺序:承接方先读 Assignment 顶部 **IDENTITY / 反模式块**确认 leaf 身份(反递归红线)→ PM 核对字段契约(`Execute as` / `Delegation` / 角色绑定字段;**先自检字段再发送**)→ 同一条消息**一次性发满 N 次** invoke(工具并发;N 按 `Execution mode` 映射)→ 派发前完成同仓写隔离(L1/L2 worktree)→ SDD 波次**串行** implement + fresh reviewer → task 全完成后 `{SDD_DIR}/review/` review-package → **强制 tri-review N=3**(或 inline 单席 N=1)。准备用 read/bash 不计入 N,且与派发回合分离(**未齐不发**)。
|
|
131
|
+
|
|
132
|
+
## References
|
|
133
|
+
|
|
134
|
+
- `references/leaf-executor-checklist.md` — 承接方一页自检清单。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Leaf executor dispatch checklist
|
|
2
|
+
|
|
3
|
+
> Load **`mstar-harness-core`** first, then **`mstar-dispatch-gates`** SKILL.md.
|
|
4
|
+
>
|
|
5
|
+
> **First**: read the `**IDENTITY**` and `**CAPABILITY BOUNDARY**` blocks at the top of your Assignment. Those tell you who you ARE and what tools are NOT yours. Then read the `**You are a leaf executor. You MUST NOT:**` prohibitions. Those anti-patterns are customized for your specific role+context and are the authoritative dispatch boundaries for this assignment.
|
|
6
|
+
|
|
7
|
+
**Preamble — internalize before any action:**
|
|
8
|
+
|
|
9
|
+
I am a leaf executor. I personally complete all work. Task/subagent is NOT my tool. If I think about dispatching, I stop and return to my direct work or write `Blocked`.
|
|
10
|
+
|
|
11
|
+
Before any Task/subagent call (if I somehow forget the preamble):
|
|
12
|
+
|
|
13
|
+
1. What is my **`Execute as`**?
|
|
14
|
+
2. Does the Assignment include **`Delegation: allowed (...)`**? If no → **no** Task/subagent.
|
|
15
|
+
3. Is my next step a Task/subagent invoke? If yes without (2) → **stop**; use Read/Write/Shell/Edit in-session or **`Blocked`**.
|
|
16
|
+
4. Is `subagent_type` equal to my `Execute as`? If yes → **forbidden** (recursive dispatch).
|
|
17
|
+
5. Am I treating plain `role-id` mentions, Handoff, QA gate, Completion Report roles, or multi-plan/multi-track **design text** as invoke commands? If yes → **stop**; deliver in-session.
|
|
18
|
+
6. Am I invoking because the tool exists? **Available ≠ authorized.**
|
|
19
|
+
7. Need parallel work or PM-only dispatch? → **`Blocked`**; PM dispatches on the next round.
|
|
20
|
+
|
|
21
|
+
If blocked, report: `## Blocked — recursive dispatch refused (<which NEVER or reason>)`
|
|
22
|
+
|
|
23
|
+
Full NEVER/DO NOT list → **`mstar-dispatch-gates` SKILL.md**「承接方反递归红线」.
|