baldart 3.6.2
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/CHANGELOG.md +599 -0
- package/README.md +566 -0
- package/VERSION +1 -0
- package/bin/baldart.js +143 -0
- package/framework/.claude/agents/REGISTRY.md +169 -0
- package/framework/.claude/agents/api-perf-cost-auditor.md +291 -0
- package/framework/.claude/agents/code-reviewer.md +350 -0
- package/framework/.claude/agents/codebase-architect.md +391 -0
- package/framework/.claude/agents/coder.md +291 -0
- package/framework/.claude/agents/deep-human-insight.md +198 -0
- package/framework/.claude/agents/doc-reviewer.md +440 -0
- package/framework/.claude/agents/email-deliverability-architect.md +193 -0
- package/framework/.claude/agents/hybrid-ml-architect.md +285 -0
- package/framework/.claude/agents/hyper-gamification-designer.md +149 -0
- package/framework/.claude/agents/legal-counsel-gdpr.md +179 -0
- package/framework/.claude/agents/marketing-conversion-strategist.md +162 -0
- package/framework/.claude/agents/motion-expert.md +108 -0
- package/framework/.claude/agents/onboarding-architect-lead.md +230 -0
- package/framework/.claude/agents/plan-auditor.md +546 -0
- package/framework/.claude/agents/prd-card-writer.md +372 -0
- package/framework/.claude/agents/prd.md +744 -0
- package/framework/.claude/agents/qa-sentinel.md +305 -0
- package/framework/.claude/agents/remotion-animator-orchestrator.md +218 -0
- package/framework/.claude/agents/security-reviewer.md +276 -0
- package/framework/.claude/agents/senior-researcher.md +175 -0
- package/framework/.claude/agents/seo-analytics-strategist.md +156 -0
- package/framework/.claude/agents/skill-improver.md +61 -0
- package/framework/.claude/agents/ui-expert.md +191 -0
- package/framework/.claude/agents/visual-designer.md +190 -0
- package/framework/.claude/agents/website-orchestrator.md +118 -0
- package/framework/.claude/agents/wiki-curator.md +145 -0
- package/framework/.claude/commands/baldart-push.md +15 -0
- package/framework/.claude/commands/check.md +237 -0
- package/framework/.claude/commands/codexreview.md +203 -0
- package/framework/.claude/commands/design-review.md +11 -0
- package/framework/.claude/commands/issue-review.md +34 -0
- package/framework/.claude/commands/new.md +331 -0
- package/framework/.claude/commands/qa.md +257 -0
- package/framework/.claude/hooks/framework-edit-gate.js +208 -0
- package/framework/.claude/hooks/lint-before-commit.sh.template +66 -0
- package/framework/.claude/settings.local.json.example +32 -0
- package/framework/.claude/skills/api-design-principles/SKILL.md +567 -0
- package/framework/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.claude/skills/baldart-push/SKILL.md +222 -0
- package/framework/.claude/skills/bug/SKILL.md +200 -0
- package/framework/.claude/skills/bug/references/logging-patterns.md +174 -0
- package/framework/.claude/skills/capture/SKILL.md +125 -0
- package/framework/.claude/skills/capture/references/synthesis-template.md +42 -0
- package/framework/.claude/skills/context-primer/SKILL.md +189 -0
- package/framework/.claude/skills/copywriting/SKILL.md +273 -0
- package/framework/.claude/skills/copywriting/references/copy-frameworks.md +338 -0
- package/framework/.claude/skills/copywriting/references/natural-transitions.md +252 -0
- package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +119 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/before-after-examples.md +291 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/compact-templates.md +183 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/frontmatter-minimal.md +112 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/line-count-targets.md +110 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/schemas-and-errors.md +129 -0
- package/framework/.claude/skills/find-skills/SKILL.md +133 -0
- package/framework/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/framework/.claude/skills/frontend-design/SKILL.md +84 -0
- package/framework/.claude/skills/gamification-design/SKILL.md +130 -0
- package/framework/.claude/skills/issue-review/SKILL.md +45 -0
- package/framework/.claude/skills/kie-ai/SKILL.md +262 -0
- package/framework/.claude/skills/kie-ai/references/models-catalog.md +272 -0
- package/framework/.claude/skills/kie-ai/scripts/kie_api.sh +209 -0
- package/framework/.claude/skills/kie-ai/scripts/remove_greenscreen.py +69 -0
- package/framework/.claude/skills/kie-ai/scripts/setup_api_key.sh +77 -0
- package/framework/.claude/skills/motion-design/LICENSE +21 -0
- package/framework/.claude/skills/motion-design/README.md +82 -0
- package/framework/.claude/skills/motion-design/SKILL.md +336 -0
- package/framework/.claude/skills/motion-design/director/choreography.md +93 -0
- package/framework/.claude/skills/motion-design/director/context-adaptation.md +83 -0
- package/framework/.claude/skills/motion-design/director/core-philosophy.md +53 -0
- package/framework/.claude/skills/motion-design/director/decision-framework.md +91 -0
- package/framework/.claude/skills/motion-design/director/disney-principles.md +102 -0
- package/framework/.claude/skills/motion-design/director/emotion-mapping.md +71 -0
- package/framework/.claude/skills/motion-design/director/motion-personality.md +89 -0
- package/framework/.claude/skills/motion-design/director/narrative-structure.md +62 -0
- package/framework/.claude/skills/motion-design/patterns/ambient-continuous.md +81 -0
- package/framework/.claude/skills/motion-design/patterns/entrance-exit.md +82 -0
- package/framework/.claude/skills/motion-design/patterns/multi-element.md +69 -0
- package/framework/.claude/skills/motion-design/patterns/state-feedback.md +96 -0
- package/framework/.claude/skills/motion-design/reference/property-selection.md +95 -0
- package/framework/.claude/skills/motion-design/reference/quality-checklist.md +67 -0
- package/framework/.claude/skills/motion-design/reference/timing-easing-tables.md +106 -0
- package/framework/.claude/skills/motion-design/reference/troubleshooting.md +73 -0
- package/framework/.claude/skills/new/SKILL.md +1687 -0
- package/framework/.claude/skills/playwright-skill/API_REFERENCE.md +652 -0
- package/framework/.claude/skills/playwright-skill/SKILL.md +157 -0
- package/framework/.claude/skills/playwright-skill/package.json +26 -0
- package/framework/.claude/skills/prd/SKILL.md +228 -0
- package/framework/.claude/skills/prd/assets/card-template.yml +232 -0
- package/framework/.claude/skills/prd/assets/epic-template.yml +190 -0
- package/framework/.claude/skills/prd/assets/prd-template.md +230 -0
- package/framework/.claude/skills/prd/assets/state-template.md +78 -0
- package/framework/.claude/skills/prd/references/api-perf-gate.md +152 -0
- package/framework/.claude/skills/prd/references/audit-phase.md +478 -0
- package/framework/.claude/skills/prd/references/backlog-phase.md +145 -0
- package/framework/.claude/skills/prd/references/discovery-phase.md +359 -0
- package/framework/.claude/skills/prd/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/prd/references/prd-add-phase.md +214 -0
- package/framework/.claude/skills/prd/references/prd-writing-phase.md +145 -0
- package/framework/.claude/skills/prd/references/research-phase.md +216 -0
- package/framework/.claude/skills/prd/references/ui-design-phase.md +61 -0
- package/framework/.claude/skills/prd/references/validation-phase.md +72 -0
- package/framework/.claude/skills/prd-add/SKILL.md +222 -0
- package/framework/.claude/skills/prd-add/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/remotion-best-practices/SKILL.md +48 -0
- package/framework/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
- package/framework/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
- package/framework/.claude/skills/remotion-best-practices/rules/audio.md +169 -0
- package/framework/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/framework/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/framework/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/compositions.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/framework/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/framework/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/images.md +130 -0
- package/framework/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/framework/.claude/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/framework/.claude/skills/remotion-best-practices/rules/lottie.md +67 -0
- package/framework/.claude/skills/remotion-best-practices/rules/maps.md +401 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/framework/.claude/skills/remotion-best-practices/rules/parameters.md +98 -0
- package/framework/.claude/skills/remotion-best-practices/rules/sequencing.md +118 -0
- package/framework/.claude/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/framework/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/framework/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/framework/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/framework/.claude/skills/remotion-best-practices/rules/trimming.md +52 -0
- package/framework/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
- package/framework/.claude/skills/seo-audit/SKILL.md +394 -0
- package/framework/.claude/skills/seo-audit/references/aeo-geo-patterns.md +279 -0
- package/framework/.claude/skills/seo-audit/references/ai-writing-detection.md +190 -0
- package/framework/.claude/skills/simplify/SKILL.md +137 -0
- package/framework/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/framework/.claude/skills/skill-creator/SKILL.md +356 -0
- package/framework/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/framework/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/framework/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/framework/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/framework/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/framework/.claude/skills/ui-design/SKILL.md +199 -0
- package/framework/.claude/skills/ui-design/references/component-discovery.md +54 -0
- package/framework/.claude/skills/ui-design/references/evaluation.md +171 -0
- package/framework/.claude/skills/ui-design/references/generation.md +109 -0
- package/framework/.claude/skills/ui-design/references/inventory.md +59 -0
- package/framework/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/framework/.claude/skills/webapp-testing/SKILL.md +123 -0
- package/framework/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/framework/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/framework/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/framework/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/framework/.claude/skills/worktree-manager/SKILL.md +680 -0
- package/framework/AGENTS.md +240 -0
- package/framework/agents/api-contracts.md +137 -0
- package/framework/agents/architecture.md +145 -0
- package/framework/agents/coding-standards.md +148 -0
- package/framework/agents/data-model.md +110 -0
- package/framework/agents/deployment-protocol.md +232 -0
- package/framework/agents/design-review.md +172 -0
- package/framework/agents/env-reference.md +171 -0
- package/framework/agents/github-issue-subagent.md +252 -0
- package/framework/agents/index.md +261 -0
- package/framework/agents/llm-wiki-methodology.md +216 -0
- package/framework/agents/maintenance-protocol.md +305 -0
- package/framework/agents/observability.md +162 -0
- package/framework/agents/performance.md +155 -0
- package/framework/agents/project-context.md +145 -0
- package/framework/agents/runbook.md +208 -0
- package/framework/agents/security.md +168 -0
- package/framework/agents/skills-mapping.md +286 -0
- package/framework/agents/testing.md +111 -0
- package/framework/agents/workflows.md +215 -0
- package/framework/docs/PROJECT-CONFIGURATION.md +336 -0
- package/framework/docs/references/brand-guidelines.md +170 -0
- package/framework/docs/references/ui-guidelines.template.md +182 -0
- package/framework/routines/code-review.routine.yml +46 -0
- package/framework/routines/doc-review.routine.yml +45 -0
- package/framework/routines/ds-drift.routine.yml +52 -0
- package/framework/routines/full-sweep.routine.yml +51 -0
- package/framework/routines/index.yml +70 -0
- package/framework/routines/skill-improve.routine.yml +50 -0
- package/framework/routines/wiki-review.routine.yml +45 -0
- package/framework/templates/baldart.config.template.yml +113 -0
- package/framework/templates/breaking-change-checklist.md +484 -0
- package/framework/templates/feature-card.template.yml +125 -0
- package/framework/templates/overlays/README.md +44 -0
- package/framework/templates/overlays/copywriting.fidelity-example.md +62 -0
- package/framework/templates/overlays/ui-design.fidelity-example.md +75 -0
- package/framework/templates/skill-project-context.snippet.md +19 -0
- package/framework/templates/spec.template.md +208 -0
- package/package.json +51 -0
- package/src/commands/add.js +229 -0
- package/src/commands/configure.js +385 -0
- package/src/commands/doctor.js +486 -0
- package/src/commands/migrate.js +185 -0
- package/src/commands/push.js +0 -0
- package/src/commands/routines.js +269 -0
- package/src/commands/status.js +130 -0
- package/src/commands/update.js +419 -0
- package/src/commands/version.js +88 -0
- package/src/utils/contamination.js +400 -0
- package/src/utils/git.js +181 -0
- package/src/utils/hooks.js +152 -0
- package/src/utils/routine-adapters/claude-code-cloud.js +78 -0
- package/src/utils/routine-adapters/cron.js +138 -0
- package/src/utils/routine-adapters/github-actions.js +141 -0
- package/src/utils/routine-adapters/index.js +21 -0
- package/src/utils/routines.js +166 -0
- package/src/utils/state.js +143 -0
- package/src/utils/symlinks.js +425 -0
- package/src/utils/ui.js +133 -0
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
<!-- contamination-scan: skip
|
|
2
|
+
This guide deliberately shows literal `docs/design-system/INDEX.md`,
|
|
3
|
+
`src/components/ui/`, "Neo-Brutalism", etc. as examples of what
|
|
4
|
+
`baldart configure` autodetects and what consumers replace with config
|
|
5
|
+
keys. Autofixing them would destroy the guide's pedagogical value. -->
|
|
6
|
+
# BALDART Project Configuration
|
|
7
|
+
|
|
8
|
+
This guide explains the v3.x configuration system that lets you reuse the same BALDART skills across projects with different file layouts, design philosophies, technology stacks, and audience segments — without forking the framework.
|
|
9
|
+
|
|
10
|
+
If you are migrating an existing v2.x install, jump to **§ 9 Migration Cheat Sheet**.
|
|
11
|
+
|
|
12
|
+
## What changed in v3.1.0
|
|
13
|
+
|
|
14
|
+
v3.0.0 introduced the configuration system (`baldart.config.yml`, overlays, `${paths.X}` indirection). v3.1.0 added on top:
|
|
15
|
+
|
|
16
|
+
- **Centralized versioning** via `.baldart/state.json` — `baldart version` now reports installed version + install date + drift from remote + last-push info.
|
|
17
|
+
- **Automated contribution flow** — `baldart push` now auto-bumps `VERSION`, writes the CHANGELOG entry, creates the annotated tag, and runs a contamination scan with autofix (no more "next steps required" manual workflow).
|
|
18
|
+
- **`/baldart-push` skill** for conversational guidance through the contribution flow.
|
|
19
|
+
|
|
20
|
+
There are no config-schema changes between v3.0 and v3.1; existing `baldart.config.yml` files keep working. `state.json` is auto-seeded on the first `add` / `update` / `push` after upgrading.
|
|
21
|
+
|
|
22
|
+
## 1. Why this exists
|
|
23
|
+
|
|
24
|
+
Before v3.0.0, BALDART skills hard-coded the paths and opinions of a single reference project (a multi-merchant fidelity / loyalty platform). Examples that used to live inside `ui-design/SKILL.md`:
|
|
25
|
+
|
|
26
|
+
- `docs/design-system/INDEX.md` as a BLOCKING read
|
|
27
|
+
- `src/components/ui/` as the primitives root
|
|
28
|
+
- "Neo-Brutalism" as the design philosophy
|
|
29
|
+
- "Recharts v3 + `@nivo/heatmap` only" as the charting stack
|
|
30
|
+
- `merchant` and `customer` as the audience segments
|
|
31
|
+
|
|
32
|
+
Drop the same framework into a SaaS admin tool with no design system, a TypeScript backend with no UI, or a marketing site with shadcn defaults — and the skills broke or produced wrong output.
|
|
33
|
+
|
|
34
|
+
v3.0.0 solves this with **three layers**:
|
|
35
|
+
|
|
36
|
+
1. `baldart.config.yml` — structural facts (paths, identity, stack, feature flags).
|
|
37
|
+
2. Skills reference `${paths.X}` etc. instead of hard-coded paths.
|
|
38
|
+
3. `.baldart/overlays/<skill>.md` — project-specific opinions that extend or override base skill rules.
|
|
39
|
+
|
|
40
|
+
The protocol is documented in [`framework/agents/project-context.md`](../agents/project-context.md). This document is the practical user-facing guide.
|
|
41
|
+
|
|
42
|
+
## 2. The three layers at a glance
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
your-repo/
|
|
46
|
+
├── baldart.config.yml ← Layer 1: structural facts (committed, customizable)
|
|
47
|
+
├── .baldart/
|
|
48
|
+
│ └── overlays/ ← Layer 3: project-specific opinions (committed)
|
|
49
|
+
│ ├── ui-design.md
|
|
50
|
+
│ ├── copywriting.md
|
|
51
|
+
│ └── ...
|
|
52
|
+
└── .framework/ ← Layer 2: framework payload (do not edit)
|
|
53
|
+
└── .claude/skills/<name>/
|
|
54
|
+
└── SKILL.md ← Generic, references layer 1 keys
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
| Layer | File | Updated by `baldart update`? | Authored by |
|
|
58
|
+
|---|---|---|---|
|
|
59
|
+
| 1 — Variables | `baldart.config.yml` | Never | You (via `baldart configure`) |
|
|
60
|
+
| 2 — Skills (generic) | `.framework/.../SKILL.md` | Yes (symlinked) | Framework |
|
|
61
|
+
| 3 — Overlays | `.baldart/overlays/*.md` | Never | You |
|
|
62
|
+
|
|
63
|
+
## 3. First-run workflow
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
# 1. Install the framework
|
|
67
|
+
npx baldart add
|
|
68
|
+
|
|
69
|
+
# 2. Generate the config (interactive — autodetects ~80% of values)
|
|
70
|
+
# Already invoked at the end of `add` unless you skipped it.
|
|
71
|
+
npx baldart configure
|
|
72
|
+
|
|
73
|
+
# 3. (Optional) Author overlays for the skills that have project-specific opinions
|
|
74
|
+
cp .framework/templates/overlays/ui-design.fidelity-example.md \
|
|
75
|
+
.baldart/overlays/ui-design.md
|
|
76
|
+
$EDITOR .baldart/overlays/ui-design.md
|
|
77
|
+
|
|
78
|
+
# 4. Commit everything
|
|
79
|
+
git add baldart.config.yml .baldart/overlays/
|
|
80
|
+
git commit -m "chore: BALDART v3 project configuration"
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 4. `baldart.config.yml` schema
|
|
84
|
+
|
|
85
|
+
Source of truth: [`framework/templates/baldart.config.template.yml`](../templates/baldart.config.template.yml). The four top-level sections:
|
|
86
|
+
|
|
87
|
+
### 4.1 `version`
|
|
88
|
+
|
|
89
|
+
Schema version (integer). Bumped only when `paths.*` / `features.*` keys change in a backwards-incompatible way. `baldart update` warns if the framework expects a higher version than your config declares.
|
|
90
|
+
|
|
91
|
+
### 4.2 `paths` — where the project's canonical docs and source roots live
|
|
92
|
+
|
|
93
|
+
Empty string `""` means the concept doesn't exist in your project. Skills gated by the matching `features.*` flag will skip the related BLOCKING read when both the path is empty and the feature is `false`.
|
|
94
|
+
|
|
95
|
+
| Key | Typical value | Used by |
|
|
96
|
+
|---|---|---|
|
|
97
|
+
| `design_system` | `docs/design-system` | ui-design, frontend-design, prd, bug, kie-ai, simplify, playwright-skill, webapp-testing, gamification-design |
|
|
98
|
+
| `ui_guidelines` | `docs/references/ui-guidelines.md` | ui-design, frontend-design, copywriting, gamification-design |
|
|
99
|
+
| `api_index` | `docs/references/api/index.md` | doc-writing-for-rag |
|
|
100
|
+
| `api_schemas` | `docs/references/api/schemas.md` | doc-writing-for-rag |
|
|
101
|
+
| `api_errors` | `docs/references/errors.md` | doc-writing-for-rag |
|
|
102
|
+
| `components_primitives` | `src/components/ui` | ui-design, simplify |
|
|
103
|
+
| `components_root` | `src/components` | ui-design, simplify |
|
|
104
|
+
| `global_styles` | `src/app/globals.css` | ui-design |
|
|
105
|
+
| `backlog_dir` | `backlog` | new, prd, context-primer |
|
|
106
|
+
| `adrs_dir` | `docs/decisions` | prd, prd-add |
|
|
107
|
+
| `prd_dir` | `docs/prd` | prd, prd-add, ui-design |
|
|
108
|
+
| `references_dir` | `docs/references` | new, prd, context-primer, doc-writing-for-rag, simplify |
|
|
109
|
+
| `wiki_dir` | `docs/wiki` | capture, context-primer |
|
|
110
|
+
| `e2e_tests_dir` | `tests/e2e` | playwright-skill |
|
|
111
|
+
|
|
112
|
+
### 4.3 `identity` — brand and audience facts
|
|
113
|
+
|
|
114
|
+
| Key | Type | Notes |
|
|
115
|
+
|---|---|---|
|
|
116
|
+
| `brand_name` | string | Public product name |
|
|
117
|
+
| `design_philosophy` | string | Free-form, one line. Examples: `"Neo-Brutalism"`, `"Glassmorphism"`, `"Minimalist"`, `"Material 3"`, `""` (no opinion). Drives aesthetic decisions in `ui-design`, `frontend-design`, `kie-ai`, `motion-design`. |
|
|
118
|
+
| `language` | BCP-47 tag | `"en"`, `"it"`, etc. Drives copy register in `copywriting`, error-message language in `ui-design`. |
|
|
119
|
+
| `audience_segments` | array of strings | Domain split, e.g. `["merchant","customer"]` or `["b2b","b2c"]`. Empty `[]` = no segmentation. Drives prompts in `copywriting`, evaluation in `ui-design`. |
|
|
120
|
+
|
|
121
|
+
### 4.4 `stack` — technology choices skills must respect
|
|
122
|
+
|
|
123
|
+
```yaml
|
|
124
|
+
stack:
|
|
125
|
+
charting:
|
|
126
|
+
canonical: ["recharts", "@nivo/heatmap"]
|
|
127
|
+
forbidden: ["chart.js", "echarts", "victory"]
|
|
128
|
+
wrappers_root: "src/components/charts" # optional project wrappers
|
|
129
|
+
animation:
|
|
130
|
+
canonical: ["framer-motion"]
|
|
131
|
+
forbidden: []
|
|
132
|
+
testing:
|
|
133
|
+
e2e: "playwright" # or "cypress", or ""
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Skills propose only `canonical` libraries and refuse `forbidden` ones. Empty `canonical` = ask the user before proposing a library.
|
|
137
|
+
|
|
138
|
+
### 4.5 `features` — explicit booleans gating BLOCKING reads
|
|
139
|
+
|
|
140
|
+
Every flag MUST be present as `true` or `false` once `baldart configure` has run. **Never default to `false` from absence** — that breaks the always-ask contract. Skills prompt and persist if a flag is missing.
|
|
141
|
+
|
|
142
|
+
| Flag | Meaning |
|
|
143
|
+
|---|---|
|
|
144
|
+
| `has_design_system` | The project has docs rooted at `paths.design_system`. When `true`, `ui-design`, `bug`, `frontend-design`, `simplify`, `playwright-skill` etc. treat the INDEX as BLOCKING. |
|
|
145
|
+
| `multi_tenant_theming` | The project supports per-tenant theme overrides. Activates themed-surface text/bg pairing rules in `ui-design`, `playwright-skill`, `webapp-testing`. |
|
|
146
|
+
| `has_api_docs` | Canonical API docs at `paths.api_index`. Gates `doc-writing-for-rag` schemas/errors workflow. |
|
|
147
|
+
| `has_backlog` | Card-driven workflow (`paths.backlog_dir` + AGENTS.md card protocol). `new` skill refuses to run without it. |
|
|
148
|
+
| `has_adrs` | ADR workflow. Architectural decisions get logged in `paths.adrs_dir`. |
|
|
149
|
+
| `has_prd_workflow` | PRD workflow (`paths.prd_dir`). `/prd` and `/prd-add` skills refuse to run without it. |
|
|
150
|
+
| `has_wiki_overlay` | LLM-wiki overlay (`paths.wiki_dir`). `/capture` skill refuses to run without it. |
|
|
151
|
+
|
|
152
|
+
## 5. The overlay system
|
|
153
|
+
|
|
154
|
+
Overlays let you keep project-specific opinions out of `baldart.config.yml` (which is for structural facts only). They live in `.baldart/overlays/<skill-name>.md`, one file per skill that needs project-specific extension.
|
|
155
|
+
|
|
156
|
+
### 5.1 Frontmatter
|
|
157
|
+
|
|
158
|
+
```yaml
|
|
159
|
+
---
|
|
160
|
+
base_skill: ui-design # MUST match the skill directory name
|
|
161
|
+
base_skill_version: 3.0.0 # framework version this overlay was authored against
|
|
162
|
+
mode: extend # extend (default) | override
|
|
163
|
+
---
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
- `mode: extend` (default) — overlay rules are **added** to the base skill.
|
|
167
|
+
- `mode: override` — sections in the overlay **replace** conflicting sections in the base.
|
|
168
|
+
- Inside any overlay, a section marked `## [OVERRIDE] <topic>` replaces the same `<topic>` from the base skill regardless of mode.
|
|
169
|
+
|
|
170
|
+
### 5.2 Precedence
|
|
171
|
+
|
|
172
|
+
When base skill, config, and overlay all have something to say:
|
|
173
|
+
|
|
174
|
+
1. **Config wins on facts** (paths, feature flags, identity).
|
|
175
|
+
2. **Overlay wins on opinions** (stricter thresholds, mandated styles, forbidden vocabulary). If overlay overrides a config value, the skill emits a one-line notice in its output.
|
|
176
|
+
3. **Base skill provides the default** when neither config nor overlay applies.
|
|
177
|
+
|
|
178
|
+
### 5.3 Version drift
|
|
179
|
+
|
|
180
|
+
`baldart status` and `baldart update` check `base_skill_version` against the installed framework version. When the framework advances past an overlay's version:
|
|
181
|
+
|
|
182
|
+
- The skill loads the overlay normally.
|
|
183
|
+
- It emits a single-line WARNING at the start of its output: `overlay <name> targets v<X>, installed v<Y> — review for drift`.
|
|
184
|
+
- `baldart status` lists drifted overlays.
|
|
185
|
+
|
|
186
|
+
Non-blocking by design. Silent overrides are worse than noisy ones.
|
|
187
|
+
|
|
188
|
+
### 5.4 Recommended skills to author overlays for
|
|
189
|
+
|
|
190
|
+
These skills had heavy hard-coding before v3.0.0; if your project has opinions in any of these areas, an overlay is the place for them:
|
|
191
|
+
|
|
192
|
+
| Skill | Common overlay content |
|
|
193
|
+
|---|---|
|
|
194
|
+
| `ui-design` | Design philosophy mandates, theming pairing rules, charting wrappers, browser open command, evaluation thresholds |
|
|
195
|
+
| `copywriting` | Brand voice pillars, audience register matrix, forbidden vocabulary, language-only rules |
|
|
196
|
+
| `frontend-design` | Aesthetic mandates, illustration-motion contract |
|
|
197
|
+
| `prd` / `prd-add` | Project terminology, mandatory review gates, design-system reads for UI PRDs |
|
|
198
|
+
| `kie-ai` | Illustration character library, video-prompt motion vocabulary, forbidden aesthetics |
|
|
199
|
+
| `bug` | Project debug entry points (env summary helper, cache debug switch, error-code module) |
|
|
200
|
+
| `playwright-skill` / `webapp-testing` | Test URLs, auth helpers, theming token-pair assertions |
|
|
201
|
+
| `capture` | Wiki-log helper import path, domain vocabulary |
|
|
202
|
+
| `gamification-design` | Reward economy facts, customer surface motion vocabulary |
|
|
203
|
+
|
|
204
|
+
The framework ships starter examples for the heaviest ones in `framework/templates/overlays/`:
|
|
205
|
+
|
|
206
|
+
- `ui-design.fidelity-example.md`
|
|
207
|
+
- `copywriting.fidelity-example.md`
|
|
208
|
+
|
|
209
|
+
## 6. Skill behaviour when config is missing or empty
|
|
210
|
+
|
|
211
|
+
**Always-ask, never-assume**. Configured in v3.0.0 per option A.
|
|
212
|
+
|
|
213
|
+
If a skill encounters:
|
|
214
|
+
|
|
215
|
+
- A `paths.X` key that is `""` and is required for the current task → ask the user.
|
|
216
|
+
- A `features.Y` flag that is **absent from the YAML** (not just `false`) → ask the user, persist the answer.
|
|
217
|
+
- A `stack.Z.canonical` array that is empty and is required → ask the user.
|
|
218
|
+
|
|
219
|
+
The skill suggests running `npx baldart configure` so the answer is durable. If the user declines, the skill proceeds with the provided value, marking it as ASSUMED in its output.
|
|
220
|
+
|
|
221
|
+
Never:
|
|
222
|
+
|
|
223
|
+
- Default to `false` from absence.
|
|
224
|
+
- Invent a path.
|
|
225
|
+
- Silently skip a BLOCKING read.
|
|
226
|
+
|
|
227
|
+
## 7. Example: ground-up config for a fresh React SaaS
|
|
228
|
+
|
|
229
|
+
```yaml
|
|
230
|
+
version: 1
|
|
231
|
+
paths:
|
|
232
|
+
design_system: "" # no formal DS yet
|
|
233
|
+
ui_guidelines: docs/style-guide.md
|
|
234
|
+
api_index: ""
|
|
235
|
+
api_schemas: ""
|
|
236
|
+
api_errors: ""
|
|
237
|
+
components_primitives: src/components/ui
|
|
238
|
+
components_root: src/components
|
|
239
|
+
global_styles: src/index.css
|
|
240
|
+
backlog_dir: "" # using Linear, not local backlog
|
|
241
|
+
adrs_dir: docs/decisions
|
|
242
|
+
prd_dir: ""
|
|
243
|
+
references_dir: docs
|
|
244
|
+
wiki_dir: ""
|
|
245
|
+
e2e_tests_dir: tests/e2e
|
|
246
|
+
identity:
|
|
247
|
+
brand_name: "Acme SaaS"
|
|
248
|
+
design_philosophy: "Minimalist"
|
|
249
|
+
language: en
|
|
250
|
+
audience_segments: ["admin", "end-user"]
|
|
251
|
+
stack:
|
|
252
|
+
charting:
|
|
253
|
+
canonical: ["recharts"]
|
|
254
|
+
forbidden: []
|
|
255
|
+
wrappers_root: ""
|
|
256
|
+
animation:
|
|
257
|
+
canonical: ["framer-motion"]
|
|
258
|
+
forbidden: []
|
|
259
|
+
testing:
|
|
260
|
+
e2e: "playwright"
|
|
261
|
+
features:
|
|
262
|
+
has_design_system: false
|
|
263
|
+
multi_tenant_theming: false
|
|
264
|
+
has_api_docs: false
|
|
265
|
+
has_backlog: false # disables /new
|
|
266
|
+
has_adrs: true
|
|
267
|
+
has_prd_workflow: false # disables /prd
|
|
268
|
+
has_wiki_overlay: false # disables /capture
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
In this project, `/new`, `/prd`, `/prd-add`, `/capture` refuse to run (they require their workflow). `ui-design` operates with `paths.ui_guidelines` only as its BLOCKING read, and applies a Minimalist aesthetic with English copy targeting admin or end-user.
|
|
272
|
+
|
|
273
|
+
## 8. Example: porting the legacy fidelity-app
|
|
274
|
+
|
|
275
|
+
The pre-v3.0.0 BALDART skills assumed this project. To reproduce that behavior exactly:
|
|
276
|
+
|
|
277
|
+
```bash
|
|
278
|
+
npx baldart configure
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Autodetection should populate most values. Then drop in the example overlays:
|
|
282
|
+
|
|
283
|
+
```bash
|
|
284
|
+
cp .framework/templates/overlays/ui-design.fidelity-example.md \
|
|
285
|
+
.baldart/overlays/ui-design.md
|
|
286
|
+
cp .framework/templates/overlays/copywriting.fidelity-example.md \
|
|
287
|
+
.baldart/overlays/copywriting.md
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
Open both and edit. They contain the Neo-Brutalism + Recharts + merchant-theming + 4-pillar-brand-voice content that used to live in the skills. Adapt freely — these are starting points.
|
|
291
|
+
|
|
292
|
+
## 9. Migration cheat sheet (v2.x → v3.x)
|
|
293
|
+
|
|
294
|
+
If your project was using BALDART v2.x:
|
|
295
|
+
|
|
296
|
+
1. `npx baldart update` — pulls v3.0.0, runs configure-check.
|
|
297
|
+
2. `npx baldart configure` — interactive prompts, autodetection. Confirm each detected path/flag.
|
|
298
|
+
3. For each opinionated skill you actually used (ui-design, copywriting, bug, etc.):
|
|
299
|
+
- If you relied on the pre-v3 hard-coded opinions (Neo-Brutalism, merchant/customer, Recharts-only): copy the matching `*.fidelity-example.md` from `.framework/templates/overlays/` into `.baldart/overlays/` and adapt.
|
|
300
|
+
- If you want the generic behavior: do nothing, skip the overlay.
|
|
301
|
+
4. `npx baldart status` — verify config, overlays, and any version-drift warnings.
|
|
302
|
+
5. Commit `baldart.config.yml` and `.baldart/overlays/`.
|
|
303
|
+
|
|
304
|
+
The skills will fail loudly (asking the user) if anything required is missing — there is no silent degradation.
|
|
305
|
+
|
|
306
|
+
### v3.0 → v3.1 upgrade
|
|
307
|
+
|
|
308
|
+
No config changes needed. After `npx baldart update`:
|
|
309
|
+
|
|
310
|
+
- `.baldart/state.json` is seeded automatically on the next CLI invocation (`add` / `update` / `push`).
|
|
311
|
+
- `npx baldart version` will show enriched output (install date, remote drift, last-push info).
|
|
312
|
+
- `npx baldart push` now auto-bumps `VERSION` and writes the CHANGELOG entry instead of leaving them as manual steps.
|
|
313
|
+
- `/baldart-push` is the new slash skill that walks you through the contribution flow.
|
|
314
|
+
|
|
315
|
+
## 10. FAQ
|
|
316
|
+
|
|
317
|
+
**Q. Can I edit `baldart.config.yml` directly?**
|
|
318
|
+
Yes. It's a regular YAML file. `baldart configure` re-runs interactively and preserves your edits.
|
|
319
|
+
|
|
320
|
+
**Q. Can I author overlays without ever running `baldart configure`?**
|
|
321
|
+
You'd need to hand-write `baldart.config.yml`. Use the template at `framework/templates/baldart.config.template.yml` as a starting point.
|
|
322
|
+
|
|
323
|
+
**Q. How do skills know which overlay to load?**
|
|
324
|
+
Convention: `.baldart/overlays/<skill-name>.md`, where `<skill-name>` matches the skill directory name (e.g. `ui-design`, not `UI Design`).
|
|
325
|
+
|
|
326
|
+
**Q. Can one overlay reference another?**
|
|
327
|
+
No cross-overlay references. Each overlay extends only its own base skill. If two skills share opinions (e.g. design philosophy), put the opinion in `baldart.config.yml` (`identity.design_philosophy`) — that's exactly what the config is for.
|
|
328
|
+
|
|
329
|
+
**Q. What if the framework removes a config key in a future version?**
|
|
330
|
+
That's a MAJOR version bump (`baldart push` will prompt for the classification). The CHANGELOG documents the removed key and a migration step. Your old config is preserved on disk; the new framework version simply ignores the unknown key.
|
|
331
|
+
|
|
332
|
+
**Q. Where does `baldart update` log changes to my config?**
|
|
333
|
+
It never modifies `baldart.config.yml`. It only warns when the framework's template gained new keys not yet in your config — you decide if and when to re-run `configure`.
|
|
334
|
+
|
|
335
|
+
**Q. The autodetection got something wrong. How do I correct it?**
|
|
336
|
+
Re-run `npx baldart configure`. Each prompt shows the autodetected default; type a different value to override.
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
# Brand Guidelines (Template)
|
|
2
|
+
|
|
3
|
+
This is a template for documenting your project's brand guidelines. Customize for your project.
|
|
4
|
+
|
|
5
|
+
## Brand Overview
|
|
6
|
+
|
|
7
|
+
### Mission
|
|
8
|
+
|
|
9
|
+
[Your mission statement]
|
|
10
|
+
|
|
11
|
+
### Vision
|
|
12
|
+
|
|
13
|
+
[Your vision statement]
|
|
14
|
+
|
|
15
|
+
### Values
|
|
16
|
+
|
|
17
|
+
- [Value 1]
|
|
18
|
+
- [Value 2]
|
|
19
|
+
- [Value 3]
|
|
20
|
+
|
|
21
|
+
## Visual Identity
|
|
22
|
+
|
|
23
|
+
### Logo
|
|
24
|
+
|
|
25
|
+
**Primary Logo**:
|
|
26
|
+
- [Description]
|
|
27
|
+
- Minimum size: [dimensions]
|
|
28
|
+
- Clear space: [specifications]
|
|
29
|
+
- File formats: SVG, PNG
|
|
30
|
+
|
|
31
|
+
**Logo Variations**:
|
|
32
|
+
- Full color
|
|
33
|
+
- Monochrome
|
|
34
|
+
- Reversed (light on dark)
|
|
35
|
+
|
|
36
|
+
**Logo Usage**:
|
|
37
|
+
- Do: [List correct usage]
|
|
38
|
+
- Don't: [List incorrect usage - stretching, recoloring, etc.]
|
|
39
|
+
|
|
40
|
+
### Color Palette
|
|
41
|
+
|
|
42
|
+
See `ui-guidelines.template.md` for detailed color specifications.
|
|
43
|
+
|
|
44
|
+
**Brand Colors**:
|
|
45
|
+
- Primary: [color] - [meaning/usage]
|
|
46
|
+
- Secondary: [color] - [meaning/usage]
|
|
47
|
+
- Accent: [color] - [meaning/usage]
|
|
48
|
+
|
|
49
|
+
## Typography
|
|
50
|
+
|
|
51
|
+
### Brand Fonts
|
|
52
|
+
|
|
53
|
+
**Primary Typeface**: [Font Name]
|
|
54
|
+
- Use for: Headings, important text
|
|
55
|
+
- Weights: [list available weights]
|
|
56
|
+
|
|
57
|
+
**Secondary Typeface**: [Font Name]
|
|
58
|
+
- Use for: Body copy, long-form content
|
|
59
|
+
- Weights: [list available weights]
|
|
60
|
+
|
|
61
|
+
### Typography Hierarchy
|
|
62
|
+
|
|
63
|
+
See `ui-guidelines.template.md` for detailed type scale.
|
|
64
|
+
|
|
65
|
+
## Voice & Tone
|
|
66
|
+
|
|
67
|
+
### Brand Voice
|
|
68
|
+
|
|
69
|
+
[Describe your brand personality - professional, friendly, casual, authoritative, etc.]
|
|
70
|
+
|
|
71
|
+
**Characteristics**:
|
|
72
|
+
- [Characteristic 1]: [Explanation]
|
|
73
|
+
- [Characteristic 2]: [Explanation]
|
|
74
|
+
- [Characteristic 3]: [Explanation]
|
|
75
|
+
|
|
76
|
+
### Tone Variations
|
|
77
|
+
|
|
78
|
+
**Formal situations**:
|
|
79
|
+
- [When and how to use]
|
|
80
|
+
|
|
81
|
+
**Casual situations**:
|
|
82
|
+
- [When and how to use]
|
|
83
|
+
|
|
84
|
+
**Error/problem situations**:
|
|
85
|
+
- [How to communicate empathetically]
|
|
86
|
+
|
|
87
|
+
### Writing Guidelines
|
|
88
|
+
|
|
89
|
+
- Active voice preferred
|
|
90
|
+
- Clear, concise language
|
|
91
|
+
- Avoid jargon unless necessary
|
|
92
|
+
- Use contractions appropriately
|
|
93
|
+
- [Other project-specific guidelines]
|
|
94
|
+
|
|
95
|
+
## Imagery
|
|
96
|
+
|
|
97
|
+
### Photography Style
|
|
98
|
+
|
|
99
|
+
- [Describe visual style]
|
|
100
|
+
- [Color treatment]
|
|
101
|
+
- [Subject matter]
|
|
102
|
+
- [Composition guidelines]
|
|
103
|
+
|
|
104
|
+
### Illustrations
|
|
105
|
+
|
|
106
|
+
- [Style guidelines]
|
|
107
|
+
- [Color usage]
|
|
108
|
+
- [When to use]
|
|
109
|
+
|
|
110
|
+
### Icons
|
|
111
|
+
|
|
112
|
+
- [Icon style - outline, filled, etc.]
|
|
113
|
+
- [Size specifications]
|
|
114
|
+
- [Color usage]
|
|
115
|
+
|
|
116
|
+
## Applications
|
|
117
|
+
|
|
118
|
+
### Web
|
|
119
|
+
|
|
120
|
+
- Responsive design requirements
|
|
121
|
+
- Minimum browser support
|
|
122
|
+
- Performance standards
|
|
123
|
+
|
|
124
|
+
### Print
|
|
125
|
+
|
|
126
|
+
- Minimum resolutions
|
|
127
|
+
- Color profiles
|
|
128
|
+
- Paper specifications
|
|
129
|
+
|
|
130
|
+
### Social Media
|
|
131
|
+
|
|
132
|
+
- Profile image specifications
|
|
133
|
+
- Cover image specifications
|
|
134
|
+
- Post image specifications
|
|
135
|
+
|
|
136
|
+
## Brand Usage
|
|
137
|
+
|
|
138
|
+
### Dos
|
|
139
|
+
|
|
140
|
+
- [Correct usage examples]
|
|
141
|
+
- [Approved variations]
|
|
142
|
+
- [Proper contexts]
|
|
143
|
+
|
|
144
|
+
### Don'ts
|
|
145
|
+
|
|
146
|
+
- [Incorrect usage examples]
|
|
147
|
+
- [Prohibited modifications]
|
|
148
|
+
- [Inappropriate contexts]
|
|
149
|
+
|
|
150
|
+
## Asset Library
|
|
151
|
+
|
|
152
|
+
### Where to Find Assets
|
|
153
|
+
|
|
154
|
+
- Logo files: [location]
|
|
155
|
+
- Brand fonts: [location]
|
|
156
|
+
- Image library: [location]
|
|
157
|
+
- Templates: [location]
|
|
158
|
+
|
|
159
|
+
### File Naming
|
|
160
|
+
|
|
161
|
+
[Describe naming conventions for brand assets]
|
|
162
|
+
|
|
163
|
+
## Contact
|
|
164
|
+
|
|
165
|
+
For brand guideline questions:
|
|
166
|
+
- [Contact name/role]
|
|
167
|
+
- [Email]
|
|
168
|
+
|
|
169
|
+
For design system updates:
|
|
170
|
+
- [Repository/documentation link]
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# UI Guidelines (Template)
|
|
2
|
+
|
|
3
|
+
This is a template for documenting your project's UI/UX guidelines. Customize this file for your project.
|
|
4
|
+
|
|
5
|
+
## Brand Identity
|
|
6
|
+
|
|
7
|
+
### Colors
|
|
8
|
+
|
|
9
|
+
**Primary Palette**:
|
|
10
|
+
- Primary: `#[color]` - [When to use]
|
|
11
|
+
- Secondary: `#[color]` - [When to use]
|
|
12
|
+
- Accent: `#[color]` - [When to use]
|
|
13
|
+
|
|
14
|
+
**Neutral Palette**:
|
|
15
|
+
- Black: `#000000`
|
|
16
|
+
- White: `#FFFFFF`
|
|
17
|
+
- Gray scale: [Define your grays]
|
|
18
|
+
|
|
19
|
+
**Semantic Colors**:
|
|
20
|
+
- Success: `#[color]`
|
|
21
|
+
- Warning: `#[color]`
|
|
22
|
+
- Error: `#[color]`
|
|
23
|
+
- Info: `#[color]`
|
|
24
|
+
|
|
25
|
+
### Typography
|
|
26
|
+
|
|
27
|
+
**Font Families**:
|
|
28
|
+
- Headings: `[Font name]`
|
|
29
|
+
- Body: `[Font name]`
|
|
30
|
+
- Monospace: `[Font name]`
|
|
31
|
+
|
|
32
|
+
**Type Scale**:
|
|
33
|
+
- H1: `[size]` / `[line-height]` / `[weight]`
|
|
34
|
+
- H2: `[size]` / `[line-height]` / `[weight]`
|
|
35
|
+
- H3: `[size]` / `[line-height]` / `[weight]`
|
|
36
|
+
- H4: `[size]` / `[line-height]` / `[weight]`
|
|
37
|
+
- Body: `[size]` / `[line-height]` / `[weight]`
|
|
38
|
+
- Small: `[size]` / `[line-height]` / `[weight]`
|
|
39
|
+
|
|
40
|
+
### Spacing
|
|
41
|
+
|
|
42
|
+
**Spacing Scale**:
|
|
43
|
+
- xs: `[value]`
|
|
44
|
+
- sm: `[value]`
|
|
45
|
+
- md: `[value]`
|
|
46
|
+
- lg: `[value]`
|
|
47
|
+
- xl: `[value]`
|
|
48
|
+
- 2xl: `[value]`
|
|
49
|
+
|
|
50
|
+
## Component Patterns
|
|
51
|
+
|
|
52
|
+
### Buttons
|
|
53
|
+
|
|
54
|
+
**Primary Button**:
|
|
55
|
+
- Background: [color]
|
|
56
|
+
- Text: [color]
|
|
57
|
+
- Hover: [behavior]
|
|
58
|
+
- Disabled: [state]
|
|
59
|
+
|
|
60
|
+
**Secondary Button**:
|
|
61
|
+
- Background: [color]
|
|
62
|
+
- Text: [color]
|
|
63
|
+
- Hover: [behavior]
|
|
64
|
+
- Disabled: [state]
|
|
65
|
+
|
|
66
|
+
### Forms
|
|
67
|
+
|
|
68
|
+
**Input Fields**:
|
|
69
|
+
- Border: [style]
|
|
70
|
+
- Focus: [state]
|
|
71
|
+
- Error: [state]
|
|
72
|
+
- Disabled: [state]
|
|
73
|
+
|
|
74
|
+
**Labels**:
|
|
75
|
+
- Position: [above/inline/floating]
|
|
76
|
+
- Required indicator: [style]
|
|
77
|
+
|
|
78
|
+
### Cards
|
|
79
|
+
|
|
80
|
+
**Card Structure**:
|
|
81
|
+
- Border: [style]
|
|
82
|
+
- Shadow: [value]
|
|
83
|
+
- Padding: [value]
|
|
84
|
+
- Border radius: [value]
|
|
85
|
+
|
|
86
|
+
## Layout
|
|
87
|
+
|
|
88
|
+
### Grid System
|
|
89
|
+
|
|
90
|
+
- Columns: [number]
|
|
91
|
+
- Gutter: [value]
|
|
92
|
+
- Container max-width: [value]
|
|
93
|
+
|
|
94
|
+
### Breakpoints
|
|
95
|
+
|
|
96
|
+
- Mobile: `< [value]`
|
|
97
|
+
- Tablet: `[value] - [value]`
|
|
98
|
+
- Desktop: `> [value]`
|
|
99
|
+
|
|
100
|
+
### Responsive Design
|
|
101
|
+
|
|
102
|
+
- Mobile-first approach
|
|
103
|
+
- Touch target minimum: 44x44px
|
|
104
|
+
- Readable line length: 50-75 characters
|
|
105
|
+
|
|
106
|
+
## Accessibility
|
|
107
|
+
|
|
108
|
+
### Color Contrast
|
|
109
|
+
|
|
110
|
+
- Text on background: minimum 4.5:1
|
|
111
|
+
- Large text: minimum 3:1
|
|
112
|
+
- UI components: minimum 3:1
|
|
113
|
+
|
|
114
|
+
### Keyboard Navigation
|
|
115
|
+
|
|
116
|
+
- All interactive elements keyboard accessible
|
|
117
|
+
- Visible focus indicators
|
|
118
|
+
- Logical tab order
|
|
119
|
+
|
|
120
|
+
### Screen Readers
|
|
121
|
+
|
|
122
|
+
- Semantic HTML
|
|
123
|
+
- ARIA labels where needed
|
|
124
|
+
- Alt text for images
|
|
125
|
+
- Form labels proper
|
|
126
|
+
|
|
127
|
+
## Animation
|
|
128
|
+
|
|
129
|
+
### Motion Principles
|
|
130
|
+
|
|
131
|
+
- Duration: [fast/medium/slow values]
|
|
132
|
+
- Easing: [easing functions]
|
|
133
|
+
- Purpose: [enhance UX, don't distract]
|
|
134
|
+
|
|
135
|
+
### Common Animations
|
|
136
|
+
|
|
137
|
+
- Page transitions: [description]
|
|
138
|
+
- Hover states: [description]
|
|
139
|
+
- Loading states: [description]
|
|
140
|
+
- Error states: [description]
|
|
141
|
+
|
|
142
|
+
## Design Tokens
|
|
143
|
+
|
|
144
|
+
Document your design tokens (if using):
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"color": {
|
|
149
|
+
"primary": "[value]",
|
|
150
|
+
"secondary": "[value]"
|
|
151
|
+
},
|
|
152
|
+
"spacing": {
|
|
153
|
+
"sm": "[value]",
|
|
154
|
+
"md": "[value]"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## Component Library
|
|
160
|
+
|
|
161
|
+
Link to your component library or design system:
|
|
162
|
+
|
|
163
|
+
- [Figma/Sketch file]
|
|
164
|
+
- [Storybook URL]
|
|
165
|
+
- [Component documentation]
|
|
166
|
+
|
|
167
|
+
## Examples
|
|
168
|
+
|
|
169
|
+
### Good Examples
|
|
170
|
+
|
|
171
|
+
[Screenshots or code examples of well-implemented UI]
|
|
172
|
+
|
|
173
|
+
### Anti-Patterns
|
|
174
|
+
|
|
175
|
+
[Examples of what to avoid]
|
|
176
|
+
|
|
177
|
+
## Resources
|
|
178
|
+
|
|
179
|
+
- [Design system documentation]
|
|
180
|
+
- [Brand guidelines]
|
|
181
|
+
- [Component library]
|
|
182
|
+
- [Accessibility guidelines]
|