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.
Files changed (230) hide show
  1. package/CHANGELOG.md +599 -0
  2. package/README.md +566 -0
  3. package/VERSION +1 -0
  4. package/bin/baldart.js +143 -0
  5. package/framework/.claude/agents/REGISTRY.md +169 -0
  6. package/framework/.claude/agents/api-perf-cost-auditor.md +291 -0
  7. package/framework/.claude/agents/code-reviewer.md +350 -0
  8. package/framework/.claude/agents/codebase-architect.md +391 -0
  9. package/framework/.claude/agents/coder.md +291 -0
  10. package/framework/.claude/agents/deep-human-insight.md +198 -0
  11. package/framework/.claude/agents/doc-reviewer.md +440 -0
  12. package/framework/.claude/agents/email-deliverability-architect.md +193 -0
  13. package/framework/.claude/agents/hybrid-ml-architect.md +285 -0
  14. package/framework/.claude/agents/hyper-gamification-designer.md +149 -0
  15. package/framework/.claude/agents/legal-counsel-gdpr.md +179 -0
  16. package/framework/.claude/agents/marketing-conversion-strategist.md +162 -0
  17. package/framework/.claude/agents/motion-expert.md +108 -0
  18. package/framework/.claude/agents/onboarding-architect-lead.md +230 -0
  19. package/framework/.claude/agents/plan-auditor.md +546 -0
  20. package/framework/.claude/agents/prd-card-writer.md +372 -0
  21. package/framework/.claude/agents/prd.md +744 -0
  22. package/framework/.claude/agents/qa-sentinel.md +305 -0
  23. package/framework/.claude/agents/remotion-animator-orchestrator.md +218 -0
  24. package/framework/.claude/agents/security-reviewer.md +276 -0
  25. package/framework/.claude/agents/senior-researcher.md +175 -0
  26. package/framework/.claude/agents/seo-analytics-strategist.md +156 -0
  27. package/framework/.claude/agents/skill-improver.md +61 -0
  28. package/framework/.claude/agents/ui-expert.md +191 -0
  29. package/framework/.claude/agents/visual-designer.md +190 -0
  30. package/framework/.claude/agents/website-orchestrator.md +118 -0
  31. package/framework/.claude/agents/wiki-curator.md +145 -0
  32. package/framework/.claude/commands/baldart-push.md +15 -0
  33. package/framework/.claude/commands/check.md +237 -0
  34. package/framework/.claude/commands/codexreview.md +203 -0
  35. package/framework/.claude/commands/design-review.md +11 -0
  36. package/framework/.claude/commands/issue-review.md +34 -0
  37. package/framework/.claude/commands/new.md +331 -0
  38. package/framework/.claude/commands/qa.md +257 -0
  39. package/framework/.claude/hooks/framework-edit-gate.js +208 -0
  40. package/framework/.claude/hooks/lint-before-commit.sh.template +66 -0
  41. package/framework/.claude/settings.local.json.example +32 -0
  42. package/framework/.claude/skills/api-design-principles/SKILL.md +567 -0
  43. package/framework/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
  44. package/framework/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
  45. package/framework/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
  46. package/framework/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
  47. package/framework/.claude/skills/baldart-push/SKILL.md +222 -0
  48. package/framework/.claude/skills/bug/SKILL.md +200 -0
  49. package/framework/.claude/skills/bug/references/logging-patterns.md +174 -0
  50. package/framework/.claude/skills/capture/SKILL.md +125 -0
  51. package/framework/.claude/skills/capture/references/synthesis-template.md +42 -0
  52. package/framework/.claude/skills/context-primer/SKILL.md +189 -0
  53. package/framework/.claude/skills/copywriting/SKILL.md +273 -0
  54. package/framework/.claude/skills/copywriting/references/copy-frameworks.md +338 -0
  55. package/framework/.claude/skills/copywriting/references/natural-transitions.md +252 -0
  56. package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +119 -0
  57. package/framework/.claude/skills/doc-writing-for-rag/references/before-after-examples.md +291 -0
  58. package/framework/.claude/skills/doc-writing-for-rag/references/compact-templates.md +183 -0
  59. package/framework/.claude/skills/doc-writing-for-rag/references/frontmatter-minimal.md +112 -0
  60. package/framework/.claude/skills/doc-writing-for-rag/references/line-count-targets.md +110 -0
  61. package/framework/.claude/skills/doc-writing-for-rag/references/schemas-and-errors.md +129 -0
  62. package/framework/.claude/skills/find-skills/SKILL.md +133 -0
  63. package/framework/.claude/skills/frontend-design/LICENSE.txt +177 -0
  64. package/framework/.claude/skills/frontend-design/SKILL.md +84 -0
  65. package/framework/.claude/skills/gamification-design/SKILL.md +130 -0
  66. package/framework/.claude/skills/issue-review/SKILL.md +45 -0
  67. package/framework/.claude/skills/kie-ai/SKILL.md +262 -0
  68. package/framework/.claude/skills/kie-ai/references/models-catalog.md +272 -0
  69. package/framework/.claude/skills/kie-ai/scripts/kie_api.sh +209 -0
  70. package/framework/.claude/skills/kie-ai/scripts/remove_greenscreen.py +69 -0
  71. package/framework/.claude/skills/kie-ai/scripts/setup_api_key.sh +77 -0
  72. package/framework/.claude/skills/motion-design/LICENSE +21 -0
  73. package/framework/.claude/skills/motion-design/README.md +82 -0
  74. package/framework/.claude/skills/motion-design/SKILL.md +336 -0
  75. package/framework/.claude/skills/motion-design/director/choreography.md +93 -0
  76. package/framework/.claude/skills/motion-design/director/context-adaptation.md +83 -0
  77. package/framework/.claude/skills/motion-design/director/core-philosophy.md +53 -0
  78. package/framework/.claude/skills/motion-design/director/decision-framework.md +91 -0
  79. package/framework/.claude/skills/motion-design/director/disney-principles.md +102 -0
  80. package/framework/.claude/skills/motion-design/director/emotion-mapping.md +71 -0
  81. package/framework/.claude/skills/motion-design/director/motion-personality.md +89 -0
  82. package/framework/.claude/skills/motion-design/director/narrative-structure.md +62 -0
  83. package/framework/.claude/skills/motion-design/patterns/ambient-continuous.md +81 -0
  84. package/framework/.claude/skills/motion-design/patterns/entrance-exit.md +82 -0
  85. package/framework/.claude/skills/motion-design/patterns/multi-element.md +69 -0
  86. package/framework/.claude/skills/motion-design/patterns/state-feedback.md +96 -0
  87. package/framework/.claude/skills/motion-design/reference/property-selection.md +95 -0
  88. package/framework/.claude/skills/motion-design/reference/quality-checklist.md +67 -0
  89. package/framework/.claude/skills/motion-design/reference/timing-easing-tables.md +106 -0
  90. package/framework/.claude/skills/motion-design/reference/troubleshooting.md +73 -0
  91. package/framework/.claude/skills/new/SKILL.md +1687 -0
  92. package/framework/.claude/skills/playwright-skill/API_REFERENCE.md +652 -0
  93. package/framework/.claude/skills/playwright-skill/SKILL.md +157 -0
  94. package/framework/.claude/skills/playwright-skill/package.json +26 -0
  95. package/framework/.claude/skills/prd/SKILL.md +228 -0
  96. package/framework/.claude/skills/prd/assets/card-template.yml +232 -0
  97. package/framework/.claude/skills/prd/assets/epic-template.yml +190 -0
  98. package/framework/.claude/skills/prd/assets/prd-template.md +230 -0
  99. package/framework/.claude/skills/prd/assets/state-template.md +78 -0
  100. package/framework/.claude/skills/prd/references/api-perf-gate.md +152 -0
  101. package/framework/.claude/skills/prd/references/audit-phase.md +478 -0
  102. package/framework/.claude/skills/prd/references/backlog-phase.md +145 -0
  103. package/framework/.claude/skills/prd/references/discovery-phase.md +359 -0
  104. package/framework/.claude/skills/prd/references/impact-analysis.md +233 -0
  105. package/framework/.claude/skills/prd/references/prd-add-phase.md +214 -0
  106. package/framework/.claude/skills/prd/references/prd-writing-phase.md +145 -0
  107. package/framework/.claude/skills/prd/references/research-phase.md +216 -0
  108. package/framework/.claude/skills/prd/references/ui-design-phase.md +61 -0
  109. package/framework/.claude/skills/prd/references/validation-phase.md +72 -0
  110. package/framework/.claude/skills/prd-add/SKILL.md +222 -0
  111. package/framework/.claude/skills/prd-add/references/impact-analysis.md +233 -0
  112. package/framework/.claude/skills/remotion-best-practices/SKILL.md +48 -0
  113. package/framework/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
  114. package/framework/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
  115. package/framework/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
  116. package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
  117. package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
  118. package/framework/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
  119. package/framework/.claude/skills/remotion-best-practices/rules/audio.md +169 -0
  120. package/framework/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
  121. package/framework/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
  122. package/framework/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
  123. package/framework/.claude/skills/remotion-best-practices/rules/compositions.md +141 -0
  124. package/framework/.claude/skills/remotion-best-practices/rules/display-captions.md +184 -0
  125. package/framework/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
  126. package/framework/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
  127. package/framework/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
  128. package/framework/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
  129. package/framework/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
  130. package/framework/.claude/skills/remotion-best-practices/rules/gifs.md +141 -0
  131. package/framework/.claude/skills/remotion-best-practices/rules/images.md +130 -0
  132. package/framework/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
  133. package/framework/.claude/skills/remotion-best-practices/rules/light-leaks.md +73 -0
  134. package/framework/.claude/skills/remotion-best-practices/rules/lottie.md +67 -0
  135. package/framework/.claude/skills/remotion-best-practices/rules/maps.md +401 -0
  136. package/framework/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
  137. package/framework/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
  138. package/framework/.claude/skills/remotion-best-practices/rules/parameters.md +98 -0
  139. package/framework/.claude/skills/remotion-best-practices/rules/sequencing.md +118 -0
  140. package/framework/.claude/skills/remotion-best-practices/rules/subtitles.md +36 -0
  141. package/framework/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
  142. package/framework/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
  143. package/framework/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
  144. package/framework/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
  145. package/framework/.claude/skills/remotion-best-practices/rules/transitions.md +197 -0
  146. package/framework/.claude/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
  147. package/framework/.claude/skills/remotion-best-practices/rules/trimming.md +52 -0
  148. package/framework/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
  149. package/framework/.claude/skills/seo-audit/SKILL.md +394 -0
  150. package/framework/.claude/skills/seo-audit/references/aeo-geo-patterns.md +279 -0
  151. package/framework/.claude/skills/seo-audit/references/ai-writing-detection.md +190 -0
  152. package/framework/.claude/skills/simplify/SKILL.md +137 -0
  153. package/framework/.claude/skills/skill-creator/LICENSE.txt +202 -0
  154. package/framework/.claude/skills/skill-creator/SKILL.md +356 -0
  155. package/framework/.claude/skills/skill-creator/references/output-patterns.md +82 -0
  156. package/framework/.claude/skills/skill-creator/references/workflows.md +28 -0
  157. package/framework/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
  158. package/framework/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
  159. package/framework/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
  160. package/framework/.claude/skills/ui-design/SKILL.md +199 -0
  161. package/framework/.claude/skills/ui-design/references/component-discovery.md +54 -0
  162. package/framework/.claude/skills/ui-design/references/evaluation.md +171 -0
  163. package/framework/.claude/skills/ui-design/references/generation.md +109 -0
  164. package/framework/.claude/skills/ui-design/references/inventory.md +59 -0
  165. package/framework/.claude/skills/webapp-testing/LICENSE.txt +202 -0
  166. package/framework/.claude/skills/webapp-testing/SKILL.md +123 -0
  167. package/framework/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
  168. package/framework/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
  169. package/framework/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
  170. package/framework/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
  171. package/framework/.claude/skills/worktree-manager/SKILL.md +680 -0
  172. package/framework/AGENTS.md +240 -0
  173. package/framework/agents/api-contracts.md +137 -0
  174. package/framework/agents/architecture.md +145 -0
  175. package/framework/agents/coding-standards.md +148 -0
  176. package/framework/agents/data-model.md +110 -0
  177. package/framework/agents/deployment-protocol.md +232 -0
  178. package/framework/agents/design-review.md +172 -0
  179. package/framework/agents/env-reference.md +171 -0
  180. package/framework/agents/github-issue-subagent.md +252 -0
  181. package/framework/agents/index.md +261 -0
  182. package/framework/agents/llm-wiki-methodology.md +216 -0
  183. package/framework/agents/maintenance-protocol.md +305 -0
  184. package/framework/agents/observability.md +162 -0
  185. package/framework/agents/performance.md +155 -0
  186. package/framework/agents/project-context.md +145 -0
  187. package/framework/agents/runbook.md +208 -0
  188. package/framework/agents/security.md +168 -0
  189. package/framework/agents/skills-mapping.md +286 -0
  190. package/framework/agents/testing.md +111 -0
  191. package/framework/agents/workflows.md +215 -0
  192. package/framework/docs/PROJECT-CONFIGURATION.md +336 -0
  193. package/framework/docs/references/brand-guidelines.md +170 -0
  194. package/framework/docs/references/ui-guidelines.template.md +182 -0
  195. package/framework/routines/code-review.routine.yml +46 -0
  196. package/framework/routines/doc-review.routine.yml +45 -0
  197. package/framework/routines/ds-drift.routine.yml +52 -0
  198. package/framework/routines/full-sweep.routine.yml +51 -0
  199. package/framework/routines/index.yml +70 -0
  200. package/framework/routines/skill-improve.routine.yml +50 -0
  201. package/framework/routines/wiki-review.routine.yml +45 -0
  202. package/framework/templates/baldart.config.template.yml +113 -0
  203. package/framework/templates/breaking-change-checklist.md +484 -0
  204. package/framework/templates/feature-card.template.yml +125 -0
  205. package/framework/templates/overlays/README.md +44 -0
  206. package/framework/templates/overlays/copywriting.fidelity-example.md +62 -0
  207. package/framework/templates/overlays/ui-design.fidelity-example.md +75 -0
  208. package/framework/templates/skill-project-context.snippet.md +19 -0
  209. package/framework/templates/spec.template.md +208 -0
  210. package/package.json +51 -0
  211. package/src/commands/add.js +229 -0
  212. package/src/commands/configure.js +385 -0
  213. package/src/commands/doctor.js +486 -0
  214. package/src/commands/migrate.js +185 -0
  215. package/src/commands/push.js +0 -0
  216. package/src/commands/routines.js +269 -0
  217. package/src/commands/status.js +130 -0
  218. package/src/commands/update.js +419 -0
  219. package/src/commands/version.js +88 -0
  220. package/src/utils/contamination.js +400 -0
  221. package/src/utils/git.js +181 -0
  222. package/src/utils/hooks.js +152 -0
  223. package/src/utils/routine-adapters/claude-code-cloud.js +78 -0
  224. package/src/utils/routine-adapters/cron.js +138 -0
  225. package/src/utils/routine-adapters/github-actions.js +141 -0
  226. package/src/utils/routine-adapters/index.js +21 -0
  227. package/src/utils/routines.js +166 -0
  228. package/src/utils/state.js +143 -0
  229. package/src/utils/symlinks.js +425 -0
  230. 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]