ai-developer-skill-os 9.3.1 → 10.2.0

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 (258) hide show
  1. package/.agents/AGENTS.md +73 -40
  2. package/.agents/DEV_PROFILE.md +36 -2
  3. package/.agents/LICENSE +21 -21
  4. package/.agents/docs/ARCHITECTURE.md +56 -120
  5. package/.agents/docs/GOVERNANCE.md +3 -3
  6. package/.agents/docs/SPEC.md +137 -60
  7. package/.agents/docs/VERSIONING.md +25 -57
  8. package/.agents/docs/adr/0005-v10-platform-consolidation.md +50 -0
  9. package/.agents/docs/schemas/learning.schema.yml +22 -57
  10. package/.agents/docs/schemas/skill.schema.yml +116 -161
  11. package/.agents/docs/schemas/workflow.schema.yml +51 -26
  12. package/.agents/docs/skill-classification.md +1 -1
  13. package/.agents/registry/graph.json +193 -346
  14. package/.agents/registry/index.yaml +90 -233
  15. package/.agents/rules/coding.md +30 -12
  16. package/.agents/rules/command-safety.md +20 -9
  17. package/.agents/rules/global.md +234 -28
  18. package/.agents/rules/prompt-compiler.md +170 -0
  19. package/.agents/rules/safety.md +1 -1
  20. package/.agents/rules/security.md +1 -1
  21. package/.agents/rules/skill-quality.md +18 -3
  22. package/.agents/skills/_template/SKILL.md +238 -88
  23. package/.agents/skills/qk-api-data-discovery/SKILL.md +456 -0
  24. package/.agents/skills/qk-api-data-discovery/references/bronze-record-format.md +47 -0
  25. package/.agents/skills/qk-api-data-discovery/references/data-contract-yaml.md +72 -0
  26. package/.agents/skills/qk-api-data-discovery/references/discovery-report-template.md +110 -0
  27. package/.agents/skills/qk-backend-data/SKILL.md +339 -0
  28. package/.agents/skills/qk-bug-resolution/SKILL.md +328 -248
  29. package/.agents/skills/qk-bug-resolution/evals/scorecard.yaml +1 -1
  30. package/.agents/skills/qk-code-cleaner/SKILL.md +399 -0
  31. package/.agents/skills/qk-code-review/SKILL.md +320 -247
  32. package/.agents/skills/qk-code-review/evals/scorecard.yaml +1 -1
  33. package/.agents/skills/qk-code-review/references/ai/{v8-schema-validation.md → schema-validation.md} +2 -2
  34. package/.agents/skills/qk-code-review/references/cross-cutting/async-concurrency-patterns.md +515 -515
  35. package/.agents/skills/qk-code-review/references/cross-cutting/error-handling-principles.md +492 -492
  36. package/.agents/skills/qk-code-review/references/cross-cutting/n-plus-one-queries.md +309 -309
  37. package/.agents/skills/qk-code-review/references/cross-cutting/sql-injection-prevention.md +307 -307
  38. package/.agents/skills/qk-code-review/references/cross-cutting/xss-prevention.md +263 -263
  39. package/.agents/skills/qk-code-review/references/languages/angular.md +768 -768
  40. package/.agents/skills/qk-code-review/references/languages/c.md +890 -890
  41. package/.agents/skills/qk-code-review/references/languages/cpp.md +893 -893
  42. package/.agents/skills/qk-code-review/references/languages/css-less-sass.md +661 -661
  43. package/.agents/skills/qk-code-review/references/languages/django.md +985 -985
  44. package/.agents/skills/qk-code-review/references/languages/fastapi.md +580 -580
  45. package/.agents/skills/qk-code-review/references/languages/go.md +993 -993
  46. package/.agents/skills/qk-code-review/references/languages/java.md +409 -409
  47. package/.agents/skills/qk-code-review/references/languages/java8.md +586 -586
  48. package/.agents/skills/qk-code-review/references/languages/kotlin.md +1018 -1018
  49. package/.agents/skills/qk-code-review/references/languages/nestjs.md +593 -593
  50. package/.agents/skills/qk-code-review/references/languages/php.md +684 -684
  51. package/.agents/skills/qk-code-review/references/languages/python.md +1073 -1073
  52. package/.agents/skills/qk-code-review/references/languages/qt.md +757 -757
  53. package/.agents/skills/qk-code-review/references/languages/react.md +871 -871
  54. package/.agents/skills/qk-code-review/references/languages/ruby.md +964 -964
  55. package/.agents/skills/qk-code-review/references/languages/rust.md +846 -846
  56. package/.agents/skills/qk-code-review/references/languages/svelte.md +1064 -1064
  57. package/.agents/skills/qk-code-review/references/languages/swift.md +936 -936
  58. package/.agents/skills/qk-code-review/references/languages/typescript.md +1016 -1016
  59. package/.agents/skills/qk-code-review/references/languages/vue.md +924 -924
  60. package/.agents/skills/qk-code-review/references/languages/zig.md +440 -440
  61. package/.agents/skills/qk-devops-release/SKILL.md +294 -0
  62. package/.agents/skills/qk-feature-delivery/SKILL.md +331 -247
  63. package/.agents/skills/qk-feature-delivery/evals/scorecard.yaml +1 -1
  64. package/.agents/skills/qk-orchestrator/SKILL.md +286 -152
  65. package/.agents/skills/qk-orchestrator/evals/scorecard.yaml +1 -1
  66. package/.agents/skills/qk-orchestrator/references/routing-table.md +1 -1
  67. package/.agents/skills/qk-product-spec/SKILL.md +262 -0
  68. package/.agents/skills/qk-prompt-compiler/SKILL.md +444 -0
  69. package/.agents/skills/qk-ui-engineer/SKILL.md +286 -0
  70. package/.agents/workflows/_schema.yml +146 -146
  71. package/.agents/workflows/bug-resolution.yml +155 -121
  72. package/.agents/workflows/code-review.yml +127 -93
  73. package/.agents/workflows/context-discovery.yml +128 -94
  74. package/.agents/workflows/documentation.yml +124 -90
  75. package/.agents/workflows/feature-delivery.yml +158 -124
  76. package/.agents/workflows/production-release.yml +207 -173
  77. package/.agents/workflows/prompt-compilation.yml +126 -0
  78. package/.agents/workflows/refactor.yml +136 -102
  79. package/.agents/workflows/security-audit.yml +149 -115
  80. package/.agents/workflows/shared/quality-gate.yml +3 -1
  81. package/.agents/workflows/skin-governance.yml +149 -115
  82. package/.agents/workflows/spec-driven-development.yml +116 -87
  83. package/CHANGELOG.md +77 -0
  84. package/README.md +125 -205
  85. package/bin/install.js +324 -329
  86. package/package.json +68 -74
  87. package/tooling/build-registry.js +226 -208
  88. package/tooling/run-aar.js +55 -126
  89. package/tooling/sync-versions.js +2 -2
  90. package/tooling/validate-graph.js +100 -87
  91. package/tooling/validate-skills.js +32 -14
  92. package/.agents/README.md +0 -90
  93. package/.agents/docs/CHI_TIET_SKILLS.md +0 -126
  94. package/.agents/docs/HUONG_DAN_SU_DUNG.md +0 -120
  95. package/.agents/docs/MIGRATION-CLEANUP-V8.1.3.md +0 -36
  96. package/.agents/docs/MIGRATION-STATUS.md +0 -35
  97. package/.agents/docs/MIGRATION-V8.md +0 -10
  98. package/.agents/docs/ROADMAP-V8.2.md +0 -78
  99. package/.agents/docs/V8-CERTIFICATION.md +0 -27
  100. package/.agents/docs/decisions/ADR-001-v8-migration.md +0 -58
  101. package/.agents/docs/decisions/ADR-002-workflow-separation.md +0 -50
  102. package/.agents/docs/decisions/ADR-003-registry-generated.md +0 -54
  103. package/.agents/docs/decisions/ADR-008-skill-boundary-review.md +0 -27
  104. package/.agents/registry/capability-graph.yml +0 -390
  105. package/.agents/registry/skills-index.yml +0 -305
  106. package/.agents/skills/_template/capability.yaml +0 -34
  107. package/.agents/skills/_template/evals/scorecard.yaml +0 -19
  108. package/.agents/skills/qk-access-policy/SKILL.md +0 -206
  109. package/.agents/skills/qk-access-policy/capability.yaml +0 -23
  110. package/.agents/skills/qk-access-policy/evals/scorecard.yaml +0 -36
  111. package/.agents/skills/qk-agent-observability/SKILL.md +0 -108
  112. package/.agents/skills/qk-agent-observability/capability.yaml +0 -29
  113. package/.agents/skills/qk-agent-observability/evals/scorecard.yaml +0 -29
  114. package/.agents/skills/qk-agent-observability/references/scorecard.yaml +0 -80
  115. package/.agents/skills/qk-ai-builder/SKILL.md +0 -254
  116. package/.agents/skills/qk-ai-builder/capability.yaml +0 -23
  117. package/.agents/skills/qk-ai-builder/evals/scorecard.yaml +0 -30
  118. package/.agents/skills/qk-api-consumer/SKILL.md +0 -256
  119. package/.agents/skills/qk-api-consumer/capability.yaml +0 -21
  120. package/.agents/skills/qk-api-consumer/evals/scorecard.yaml +0 -29
  121. package/.agents/skills/qk-api-lifecycle/SKILL.md +0 -251
  122. package/.agents/skills/qk-api-lifecycle/capability.yaml +0 -23
  123. package/.agents/skills/qk-api-lifecycle/evals/scorecard.yaml +0 -29
  124. package/.agents/skills/qk-bug-resolution/capability.yaml +0 -25
  125. package/.agents/skills/qk-code-review/capability.yaml +0 -23
  126. package/.agents/skills/qk-context-loader/SKILL.md +0 -198
  127. package/.agents/skills/qk-context-loader/capability.yaml +0 -23
  128. package/.agents/skills/qk-context-loader/evals/scorecard.yaml +0 -28
  129. package/.agents/skills/qk-data-engineer/SKILL.md +0 -253
  130. package/.agents/skills/qk-data-lifecycle/SKILL.md +0 -197
  131. package/.agents/skills/qk-data-lifecycle/capability.yaml +0 -23
  132. package/.agents/skills/qk-data-lifecycle/evals/scorecard.yaml +0 -29
  133. package/.agents/skills/qk-db-optimizer/SKILL.md +0 -210
  134. package/.agents/skills/qk-db-optimizer/capability.yaml +0 -22
  135. package/.agents/skills/qk-db-optimizer/evals/scorecard.yaml +0 -28
  136. package/.agents/skills/qk-design-system-engineering/SKILL.md +0 -193
  137. package/.agents/skills/qk-design-system-engineering/capability.yaml +0 -25
  138. package/.agents/skills/qk-design-system-engineering/evals/scorecard.yaml +0 -27
  139. package/.agents/skills/qk-devops-platform/SKILL.md +0 -198
  140. package/.agents/skills/qk-devops-platform/capability.yaml +0 -29
  141. package/.agents/skills/qk-devops-platform/evals/scorecard.yaml +0 -28
  142. package/.agents/skills/qk-docs/SKILL.md +0 -193
  143. package/.agents/skills/qk-docs/capability.yaml +0 -23
  144. package/.agents/skills/qk-docs/evals/scorecard.yaml +0 -27
  145. package/.agents/skills/qk-engineering-standard/SKILL.md +0 -89
  146. package/.agents/skills/qk-engineering-standard/capability.yaml +0 -23
  147. package/.agents/skills/qk-engineering-standard/evals/scorecard.yaml +0 -28
  148. package/.agents/skills/qk-engineering-standard/references/anti-patterns.md +0 -121
  149. package/.agents/skills/qk-engineering-standard/rules/backend.md +0 -122
  150. package/.agents/skills/qk-engineering-standard/rules/database.md +0 -3
  151. package/.agents/skills/qk-engineering-standard/rules/frontend.md +0 -152
  152. package/.agents/skills/qk-engineering-standard/rules/security.md +0 -3
  153. package/.agents/skills/qk-engineering-standard/rules/testing.md +0 -3
  154. package/.agents/skills/qk-fe-api-integration/SKILL.md +0 -704
  155. package/.agents/skills/qk-fe-api-integration/capability.yaml +0 -21
  156. package/.agents/skills/qk-fe-api-integration/evals/scorecard.yaml +0 -29
  157. package/.agents/skills/qk-feature-delivery/capability.yaml +0 -24
  158. package/.agents/skills/qk-frontend-architecture/SKILL.md +0 -127
  159. package/.agents/skills/qk-frontend-architecture/capability.yaml +0 -28
  160. package/.agents/skills/qk-frontend-architecture/evals/scorecard.yaml +0 -28
  161. package/.agents/skills/qk-help/SKILL.md +0 -107
  162. package/.agents/skills/qk-help/capability.yaml +0 -20
  163. package/.agents/skills/qk-help/evals/scorecard.yaml +0 -13
  164. package/.agents/skills/qk-orchestrator/capability.yaml +0 -22
  165. package/.agents/skills/qk-product-specification/SKILL.md +0 -187
  166. package/.agents/skills/qk-product-specification/capability.yaml +0 -27
  167. package/.agents/skills/qk-product-specification/evals/scorecard.yaml +0 -27
  168. package/.agents/skills/qk-production-release/SKILL.md +0 -188
  169. package/.agents/skills/qk-production-release/capability.yaml +0 -27
  170. package/.agents/skills/qk-production-release/evals/scorecard.yaml +0 -28
  171. package/.agents/skills/qk-project-audit/SKILL.md +0 -174
  172. package/.agents/skills/qk-project-bootstrap/SKILL.md +0 -372
  173. package/.agents/skills/qk-project-bootstrap/capability.yaml +0 -23
  174. package/.agents/skills/qk-project-bootstrap/evals/scorecard.yaml +0 -28
  175. package/.agents/skills/qk-project-health/SKILL.md +0 -202
  176. package/.agents/skills/qk-project-health/capability.yaml +0 -23
  177. package/.agents/skills/qk-project-health/evals/scorecard.yaml +0 -27
  178. package/.agents/skills/qk-project-memory/SKILL.md +0 -303
  179. package/.agents/skills/qk-project-memory/capability.yaml +0 -23
  180. package/.agents/skills/qk-project-memory/evals/scorecard.yaml +0 -27
  181. package/.agents/skills/qk-refactor/SKILL.md +0 -243
  182. package/.agents/skills/qk-refactor/capability.yaml +0 -26
  183. package/.agents/skills/qk-refactor/evals/scorecard.yaml +0 -27
  184. package/.agents/skills/qk-security-audit/SKILL.md +0 -280
  185. package/.agents/skills/qk-security-audit/capability.yaml +0 -29
  186. package/.agents/skills/qk-security-audit/evals/scorecard.yaml +0 -27
  187. package/.agents/skills/qk-system-evolution/SKILL.md +0 -625
  188. package/.agents/skills/qk-system-evolution/capability.yaml +0 -24
  189. package/.agents/skills/qk-system-evolution/evals/scorecard.yaml +0 -26
  190. package/.agents/skills/qk-test-engineering/SKILL.md +0 -215
  191. package/.agents/skills/qk-test-engineering/capability.yaml +0 -28
  192. package/.agents/skills/qk-test-engineering/evals/scorecard.yaml +0 -26
  193. package/.agents/skills/qk-ui-audit/SKILL.md +0 -175
  194. package/.agents/skills/qk-ui-audit/capability.yaml +0 -23
  195. package/.agents/skills/qk-ui-audit/evals/scorecard.yaml +0 -26
  196. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +0 -136
  197. package/.agents/skills/qk-ui-builder/SKILL.md +0 -521
  198. package/.agents/skills/qk-ui-builder/capability.yaml +0 -29
  199. package/.agents/skills/qk-ui-builder/evals/scorecard.yaml +0 -26
  200. package/.agents/skills/qk-ui-builder/references/anti-patterns.md +0 -295
  201. package/.agents/skills/qk-ui-builder/references/color.md +0 -115
  202. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +0 -458
  203. package/.agents/skills/qk-ui-builder/references/copy.md +0 -250
  204. package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +0 -115
  205. package/.agents/skills/qk-ui-builder/references/layout-and-space.md +0 -111
  206. package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +0 -48
  207. package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +0 -50
  208. package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +0 -51
  209. package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +0 -49
  210. package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +0 -44
  211. package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +0 -50
  212. package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +0 -51
  213. package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +0 -50
  214. package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +0 -50
  215. package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +0 -49
  216. package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +0 -49
  217. package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +0 -49
  218. package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +0 -48
  219. package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +0 -48
  220. package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +0 -51
  221. package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +0 -48
  222. package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +0 -48
  223. package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +0 -50
  224. package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +0 -48
  225. package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +0 -45
  226. package/.agents/skills/qk-ui-builder/references/macrostructures.md +0 -38
  227. package/.agents/skills/qk-ui-builder/references/motion.md +0 -95
  228. package/.agents/skills/qk-ui-builder/references/responsive.md +0 -115
  229. package/.agents/skills/qk-ui-builder/references/slop-test.md +0 -135
  230. package/.agents/skills/qk-ui-builder/references/structure.md +0 -280
  231. package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +0 -53
  232. package/.agents/skills/qk-ui-builder/references/themes/carnival.md +0 -52
  233. package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +0 -52
  234. package/.agents/skills/qk-ui-builder/references/themes/editorial.md +0 -52
  235. package/.agents/skills/qk-ui-builder/references/themes/garden.md +0 -52
  236. package/.agents/skills/qk-ui-builder/references/themes/hum.md +0 -52
  237. package/.agents/skills/qk-ui-builder/references/themes/lumen.md +0 -52
  238. package/.agents/skills/qk-ui-builder/references/themes/midnight.md +0 -52
  239. package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +0 -52
  240. package/.agents/skills/qk-ui-builder/references/themes/playful.md +0 -52
  241. package/.agents/skills/qk-ui-builder/references/themes/specimen.md +0 -52
  242. package/.agents/skills/qk-ui-builder/references/themes/terminal.md +0 -52
  243. package/.agents/skills/qk-ui-builder/references/typography.md +0 -129
  244. package/.agents/skills/qk-ui-system-builder/SKILL.md +0 -183
  245. package/.agents/skills/qk-ui-system-builder/capability.yaml +0 -25
  246. package/.agents/skills/qk-ui-system-builder/evals/scorecard.yaml +0 -26
  247. package/.agents/skills/qk-upgrade/SKILL.md +0 -301
  248. package/.agents/skills/qk-upgrade/capability.yaml +0 -24
  249. package/.agents/skills/qk-upgrade/evals/scorecard.yaml +0 -26
  250. package/.agents/skills/qk-validation-gate/SKILL.md +0 -88
  251. package/.agents/skills/qk-validation-gate/capability.yaml +0 -23
  252. package/.agents/skills/qk-validation-gate/evals/scorecard.yaml +0 -26
  253. package/.agents/skills/qk-web-quality-gate/SKILL.md +0 -197
  254. package/.agents/skills/qk-web-quality-gate/capability.yaml +0 -24
  255. package/.agents/skills/qk-web-quality-gate/evals/scorecard.yaml +0 -26
  256. package/.agents/workflows/research.yml +0 -75
  257. package/.agents/workflows/skill-evolution.yml +0 -97
  258. package/tooling/fix-refactor.js +0 -8
@@ -1,115 +0,0 @@
1
- # Interaction & States
2
-
3
- Foundational rules for interactive element states. Every interactive control must define a complete, accessible state set — not just default and hover.
4
-
5
- ## The 8 States
6
-
7
- Every interactive component should account for:
8
-
9
- 1. **default** — resting, ready to interact.
10
- 2. **hover** — pointer is over (pointer devices only).
11
- 3. **focus** — keyboard / programmatic focus.
12
- 4. **active** — being pressed/clicked.
13
- 5. **disabled** — not interactive, clearly shown.
14
- 6. **loading** — work in progress, feedback given.
15
- 7. **error** — invalid input or failed action, with message.
16
- 8. **success** — completed action, confirmed.
17
-
18
- ```css
19
- .btn { /* default */ }
20
- .btn:hover { background: var(--color-accent-hover); }
21
- .btn:focus-visible { /* focus ring */ }
22
- .btn:active { transform: translateY(1px); }
23
- .btn:disabled { /* disabled */ }
24
- ```
25
-
26
- ## Focus: Visible Ring
27
-
28
- Always provide a visible focus indicator. **Never** use `outline: none` without a replacement. Use `:focus-visible` so mouse users aren't spammed but keyboard users are clearly shown.
29
-
30
- ```css
31
- .btn:focus { outline: none; } /* remove default */
32
- .btn:focus-visible {
33
- outline: 2px solid var(--color-accent);
34
- outline-offset: 2px;
35
- /* or a ring via box-shadow */
36
- box-shadow: 0 0 0 3px oklch(55% 0.16 250 / 0.4);
37
- }
38
- ```
39
-
40
- The focus ring must meet 3:1 contrast against adjacent colors.
41
-
42
- ## Disabled: Not Opacity-Only
43
-
44
- A disabled control must combine **reduced opacity** with **`cursor: not-allowed`** and remain non-interactive. Opacity alone is insufficient and confusing.
45
-
46
- ```css
47
- .btn:disabled,
48
- .btn[aria-disabled="true"] {
49
- opacity: 0.5;
50
- cursor: not-allowed;
51
- pointer-events: none; /* or guard in JS */
52
- }
53
- ```
54
-
55
- Also dim/hide associated helper text appropriately, and keep the control in the a11y tree (use `aria-disabled` rather than removing the element).
56
-
57
- ## Loading: Skeleton or Spinner
58
-
59
- While awaiting data or an action, show a **skeleton** or **spinner** — never bare "Loading..." text.
60
-
61
- ```css
62
- /* Skeleton shimmer */
63
- .skeleton {
64
- background: linear-gradient(90deg, var(--color-surface) 25%, var(--color-border) 50%, var(--color-surface) 75%);
65
- background-size: 200% 100%;
66
- animation: shimmer 1.2s ease-in-out infinite;
67
- border-radius: 6px;
68
- }
69
- @keyframes shimmer { to { background-position: -200% 0; } }
70
- ```
71
-
72
- ```html
73
- <!-- Button loading: keep label, add spinner, disable -->
74
- <button class="btn" disabled aria-busy="true">
75
- <span class="spinner" aria-hidden="true"></span> Saving
76
- </button>
77
- ```
78
-
79
- For data regions, render skeleton placeholders preserving layout to avoid shift (see motion.md: no layout animation).
80
-
81
- ## Error: Clear Message + Retry
82
-
83
- Error states must surface a **human-readable message** and, when recoverable, a **retry / fix action**.
84
-
85
- ```html
86
- <div class="field error">
87
- <label for="email">Email</label>
88
- <input id="email" aria-invalid="true" aria-describedby="email-err" />
89
- <p id="email-err" class="error-msg">Enter a valid email like name@example.com.</p>
90
- </div>
91
- ```
92
-
93
- ```css
94
- .field.error input { border-color: var(--color-error); }
95
- .error-msg { color: var(--color-error); font-size: var(--text-sm); }
96
- ```
97
-
98
- Convey error with more than color (icon + text) for accessibility.
99
-
100
- ## Success
101
-
102
- Confirm completed actions with a brief, non-blocking indicator. Keep it subtle and auto-dismiss where appropriate.
103
-
104
- ```css
105
- .toast.success { background: var(--color-success); color: oklch(99% 0 0); }
106
- ```
107
-
108
- ## Practical Checklist
109
-
110
- - [ ] All 8 states defined per interactive component.
111
- - [ ] Focus uses `:focus-visible` ring, no naked `outline: none`.
112
- - [ ] Disabled = opacity + `cursor: not-allowed` + inert.
113
- - [ ] Loading uses skeleton/spinner, not text-only.
114
- - [ ] Error shows message + retry and isn't color-only.
115
- - [ ] Success confirmation is present and subtle.
@@ -1,111 +0,0 @@
1
- # Layout & Space
2
-
3
- Foundational rules for grids, spacing rhythm, and structural layout. The goal is predictable, maintainable layouts built from flow and flex/grid — never magic numbers or absolute offsets.
4
-
5
- ## 4pt Base Spacing Scale
6
-
7
- All spacing derives from a **4px base**. Use only these steps. Do not use arbitrary values like `7px`, `13px`, `23px`.
8
-
9
- ```
10
- 4px --space-1 tight (icon gaps, inline)
11
- 8px --space-2 small (label→control)
12
- 12px --space-3 control padding, list gaps
13
- 16px --space-4 default gap between elements
14
- 20px --space-5 card internal padding
15
- 24px --space-6 section internal padding
16
- 32px --space-8 gap between related blocks
17
- 40px --space-10 large block separation
18
- 48px --space-12 section separation
19
- 64px --space-16 major section separation
20
- ```
21
-
22
- ```css
23
- :root {
24
- --space-1: 0.25rem; --space-2: 0.5rem; --space-3: 0.75rem;
25
- --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
26
- --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
27
- --space-16: 4rem;
28
- }
29
- ```
30
-
31
- ## Grid & Flexbox (NO Absolute Positioning)
32
-
33
- Lay out with **CSS Grid** and **Flexbox**. Do not use `position: absolute` / `position: fixed` for structural layout (overlays, tooltips, and sticky headers are the only exceptions, and they must be scoped).
34
-
35
- ```css
36
- /* Page shell */
37
- .container {
38
- width: 100%;
39
- max-width: 1200px;
40
- margin-inline: auto;
41
- padding-inline: var(--space-6);
42
- }
43
-
44
- /* Responsive card grid */
45
- .grid {
46
- display: grid;
47
- grid-template-columns: repeat(auto-fill, minmax(0, 1fr));
48
- gap: var(--space-6);
49
- }
50
- ```
51
-
52
- ```css
53
- /* Inline control row */
54
- .row {
55
- display: flex;
56
- align-items: center;
57
- gap: var(--space-3);
58
- }
59
- ```
60
-
61
- ## Minimum Whitespace Between Sections
62
-
63
- Maintain **at least 16px** (`--space-4`) of separation between distinct sections; prefer `--space-12`/`--space-16` between major page sections.
64
-
65
- ```css
66
- section + section { margin-top: var(--space-12); }
67
- .card { padding: var(--space-5); }
68
- .stack > * + * { margin-top: var(--space-4); } /* vertical rhythm */
69
- ```
70
-
71
- ## Max Content Width
72
-
73
- - **Desktop:** cap content at **1200px**, centered.
74
- - **Mobile:** content is **100%** width (minus safe padding). Never force desktop widths onto small screens.
75
-
76
- ```css
77
- .container { max-width: 1200px; width: 100%; }
78
- @media (max-width: 640px) {
79
- .container { max-width: 100%; padding-inline: var(--space-4); }
80
- }
81
- ```
82
-
83
- ## No "Margin: Auto Soup"
84
-
85
- Do not scatter `margin: auto` to push elements around. Centralize alignment through flex/grid `justify-content` / `align-items` / `gap`. `margin-inline: auto` is permitted **only** for the top-level `.container` centering.
86
-
87
- ```css
88
- /* Bad: fighting the layout with auto margins */
89
- .sidebar { margin-left: auto; margin-right: 12px; }
90
-
91
- /* Good: let the grid place it */
92
- .layout { display: grid; grid-template-columns: 240px 1fr; gap: var(--space-8); }
93
- ```
94
-
95
- ## Stack Utility Pattern
96
-
97
- Prefer an explicit vertical stack helper over chained margins.
98
-
99
- ```css
100
- .stack { display: flex; flex-direction: column; }
101
- .stack-4 > * + * { margin-top: var(--space-4); }
102
- .stack-6 > * + * { margin-top: var(--space-6); }
103
- ```
104
-
105
- ## Practical Checklist
106
-
107
- - [ ] All spacing uses the 4pt scale tokens.
108
- - [ ] Layout via grid/flex; no absolute positioning for structure.
109
- - [ ] ≥16px between sections; major sections use larger gaps.
110
- - [ ] Desktop max 1200px, mobile 100%.
111
- - [ ] No scattered `margin: auto` hacks.
@@ -1,48 +0,0 @@
1
- # 01 — Bento Grid
2
-
3
- **Fingerprint:** asymmetric grid, mixed card sizes, icon-led sections, no equal-height rows.
4
-
5
- ## Structure
6
-
7
- ```
8
- +-------+-------+
9
- | | |
10
- | A | B |
11
- | | |
12
- +---+---+-------+
13
- | C | D |
14
- +---+---+-------+
15
- | E |
16
- +-----------------+
17
- ```
18
-
19
- ## Rules
20
-
21
- - Card A: hero metric or primary action (spans 2 cols on desktop)
22
- - Card B: secondary metric or visual
23
- - Card C: tertiary content
24
- - Card D: tertiary content
25
- - Card E: full-width footer or CTA
26
-
27
- ## Typography
28
-
29
- - Heading: display style from theme
30
- - Body: body font from theme
31
- - Metric numbers: tabular-nums, display weight
32
-
33
- ## Spacing
34
-
35
- - Grid gap: `--space-6` (24px)
36
- - Card padding: `--space-5` (20px)
37
- - Inner padding: `--space-4` (16px)
38
-
39
- ## Anti-Patterns
40
-
41
- - ❌ 3 equal columns
42
- - ❌ Card-in-card
43
- - ❌ All cards same height
44
-
45
- ## Theme Affinity
46
-
47
- - ✅ Cobalt, Carnival, Lumen
48
- - ⚠️ Hum (needs more whitespace)
@@ -1,50 +0,0 @@
1
- # 02 — Long Document
2
-
3
- **Fingerprint:** single-column long scroll, generous line length control, anchored section nav, docs/blogs.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------+
9
- | Sticky Title Bar |
10
- +------+--------------+
11
- | TOC | Content |
12
- | Nav | (headings, |
13
- | | paragraphs|
14
- | | code, img)|
15
- | | |
16
- +------+--------------+
17
- | Footer / Pager |
18
- +---------------------+
19
- ```
20
-
21
- ## Rules
22
-
23
- - Content column: max-width 70ch, centered within reading area
24
- - TOC: sticky, scrollspy active section highlight
25
- - Headings: sequential h2/h3 hierarchy, no skipped levels
26
- - Code blocks: full-width within column, syntax highlighted
27
- - Support reading progress bar at top
28
-
29
- ## Typography
30
-
31
- - Heading: display or editorial serif from theme
32
- - Body: body font, 18px base for reading comfort
33
- - Code: mono, 14px
34
-
35
- ## Spacing
36
-
37
- - Content padding: `--space-8` (32px)
38
- - Paragraph spacing: `--space-4` (16px)
39
- - Section gap: `--space-10` (40px)
40
-
41
- ## Anti-Patterns
42
-
43
- - ❌ Multi-column body text
44
- - ❌ Full-bleed images breaking reading rhythm
45
- - ❌ Missing table of contents on long pages
46
-
47
- ## Theme Affinity
48
-
49
- - ✅ Hum, Lumen
50
- - ⚠️ Carnival (needs restraint on decoration)
@@ -1,51 +0,0 @@
1
- # 03 — Marquee Hero
2
-
3
- **Fingerprint:** full-width hero, motion/marquee or autoplay carousel, high-contrast headline, marketing.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | Nav (transparent) |
10
- +---------------------------+
11
- | |
12
- | BIG HEADLINE |
13
- | subhead + CTA |
14
- | |
15
- | [==== marquee =====] |
16
- | [ scroll / carousel ] |
17
- +---------------------------+
18
- | Trust logos / stats |
19
- +---------------------------+
20
- ```
21
-
22
- ## Rules
23
-
24
- - Hero: full viewport-ish height (min 70vh) on desktop
25
- - Marquee: infinite horizontal scroll or autoplay carousel, pausable on hover
26
- - Headline: one dominant message, max 2 lines
27
- - CTA: primary action, high contrast against hero bg
28
- - Respect `prefers-reduced-motion` (disable auto-animation)
29
-
30
- ## Typography
31
-
32
- - Heading: display style, largest scale in system
33
- - Subhead: body or medium weight, muted
34
- - Marquee text: mono or uppercase label
35
-
36
- ## Spacing
37
-
38
- - Hero padding: `--space-10` (40px)
39
- - Marquee height: 64px
40
- - CTA margin-top: `--space-6` (24px)
41
-
42
- ## Anti-Patterns
43
-
44
- - ❌ Multiple competing CTAs
45
- - ❌ Autoplay that can't be paused
46
- - ❌ Hero text low contrast over image
47
-
48
- ## Theme Affinity
49
-
50
- - ✅ Carnival, Cobalt
51
- - ❌ Hum (too understated for hero theater)
@@ -1,49 +0,0 @@
1
- # 04 — Stat-Led
2
-
3
- **Fingerprint:** metrics-first, big numbers above the fold, analytics dashboards, KPI summaries.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | Title + Date Range |
10
- +------+------+------+------+
11
- | KPI | KPI | KPI | KPI |
12
- | 123 | 45% | 8.2 | 99 |
13
- +------+------+------+------+
14
- | Primary Chart / Table |
15
- | (trend, breakdown) |
16
- +---------------------------+
17
- | Secondary charts row |
18
- +---------------------------+
19
- ```
20
-
21
- ## Rules
22
-
23
- - KPI row: 4 cards on desktop, 2 on tablet, 1 on mobile
24
- - Each KPI: value (display), label (muted), delta (up/down color)
25
- - Primary chart: spans full width below KPIs
26
- - Delta: green for positive, red for negative, semantic colors only
27
-
28
- ## Typography
29
-
30
- - Heading: display weight, tabular-nums for values
31
- - KPI value: largest scale, tabular-nums
32
- - Labels: 13px muted uppercase
33
-
34
- ## Spacing
35
-
36
- - KPI gap: `--space-4` (16px)
37
- - Card padding: `--space-5` (20px)
38
- - Section gap: `--space-6` (24px)
39
-
40
- ## Anti-Patterns
41
-
42
- - ❌ Decorative number animation without context
43
- - ❌ Mixing units without labels
44
- - ❌ Charts without axis or legend
45
-
46
- ## Theme Affinity
47
-
48
- - ✅ Cobalt, Lumen
49
- - ⚠️ Hum (needs stronger number contrast)
@@ -1,44 +0,0 @@
1
- # 05 — Workbench
2
-
3
- **Fingerprint:** sidebar + main content, tool-first, dense information, keyboard-centric.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------+------------------+
9
- | Sidebar | Main Content |
10
- | Nav | |
11
- | Tools | Editor/Canvas |
12
- | Status | |
13
- +---------+------------------+
14
- ```
15
-
16
- ## Rules
17
-
18
- - Sidebar width: 260px fixed on desktop, collapsible on mobile
19
- - Main content: fluid, max-width 1200px
20
- - Toolbar: sticky top of main content
21
- - Status bar: sticky bottom of main content
22
-
23
- ## Typography
24
-
25
- - Heading: mono (Lumen) or geometric-sans (Cobalt)
26
- - Body: body font, 14px base
27
- - Code: mono, 13px
28
-
29
- ## Spacing
30
-
31
- - Sidebar padding: `--space-4`
32
- - Main padding: `--space-6`
33
- - Toolbar height: 48px
34
-
35
- ## Anti-Patterns
36
-
37
- - ❌ Centered hero in workbench
38
- - ❌ Large decorative images
39
- - ❌ Excessive whitespace
40
-
41
- ## Theme Affinity
42
-
43
- - ✅ Lumen, Cobalt
44
- - ❌ Carnival (too playful)
@@ -1,50 +0,0 @@
1
- # 06 — Conversational FAQ
2
-
3
- **Fingerprint:** chat-like Q&A, message bubbles, support docs, expandable answers.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | Search / Ask box |
10
- +------+--------------------+
11
- | Q | |
12
- | [bubble] A (expand) |
13
- | | ---- |
14
- | Q | A |
15
- | [bubble] |
16
- +------+--------------------+
17
- | Contact / escalate |
18
- +---------------------------+
19
- ```
20
-
21
- ## Rules
22
-
23
- - Questions: left-aligned or avatar-led bubbles
24
- - Answers: expandable accordion or inline below question
25
- - Search: filters questions live as user types
26
- - Support escalation: visible link when answer insufficient
27
- - Grouped by topic/category when many questions
28
-
29
- ## Typography
30
-
31
- - Heading: display for section title
32
- - Question: medium weight, 15px
33
- - Answer: body font, 14px, muted
34
-
35
- ## Spacing
36
-
37
- - Bubble padding: `--space-4` (16px)
38
- - Bubble gap: `--space-3` (12px)
39
- - Search margin-bottom: `--space-6` (24px)
40
-
41
- ## Anti-Patterns
42
-
43
- - ❌ Walls of ungrouped questions
44
- - ❌ Answers that don't match the question
45
- - ❌ No search on large FAQ sets
46
-
47
- ## Theme Affinity
48
-
49
- - ✅ Hum, Lumen
50
- - ⚠️ Carnival (keep bubble decoration minimal)
@@ -1,51 +0,0 @@
1
- # 07 — Manifesto
2
-
3
- **Fingerprint:** brand statement, large editorial type, about pages, bold declarative copy.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | |
10
- | BIG STATEMENT |
11
- | (one sentence, huge) |
12
- | |
13
- +------+--------------------+
14
- | Lead | Supporting |
15
- | para | paragraphs, |
16
- | | values list |
17
- +---------------------------+
18
- | Sign-off / signature |
19
- +---------------------------+
20
- ```
21
-
22
- ## Rules
23
-
24
- - Opening statement: single declarative sentence, largest type scale
25
- - Body: 1 lead paragraph + supporting points
26
- - Values: short bullet or numbered list, not a table
27
- - Generous negative space around the statement
28
- - One signature/sign-off at the end
29
-
30
- ## Typography
31
-
32
- - Heading: editorial display or serif, very large
33
- - Lead: body font, 20px, slightly muted
34
- - Values: medium weight list items
35
-
36
- ## Spacing
37
-
38
- - Statement padding: `--space-12` (48px)
39
- - Lead margin: `--space-8` (32px)
40
- - Values gap: `--space-4` (16px)
41
-
42
- ## Anti-Patterns
43
-
44
- - ❌ Multiple equal-weight statements
45
- - ❌ Cluttered hero with images
46
- - ❌ Corporate buzzword soup without a point
47
-
48
- ## Theme Affinity
49
-
50
- - ✅ Hum, Carnival
51
- - ⚠️ Lumen (can feel too technical)
@@ -1,50 +0,0 @@
1
- # 08 — Photographic
2
-
3
- **Fingerprint:** image-heavy, full-bleed photos, portfolios, travel, minimal chrome.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | Minimal Nav (overlay) |
10
- +---------------------------+
11
- | |
12
- | [ FULL-BLEED IMAGE ] |
13
- | |
14
- +------+------+-------------+
15
- | img | img | img |
16
- +------+------+-------------+
17
- | Caption / story text |
18
- +---------------------------+
19
- ```
20
-
21
- ## Rules
22
-
23
- - Images: full-bleed or near-full-bleed, high resolution
24
- - Nav: transparent overlay, becomes solid on scroll
25
- - Captions: small, muted, placed under or beside image
26
- - Limit text; let images carry the narrative
27
- - Lazy-load below-fold images
28
-
29
- ## Typography
30
-
31
- - Heading: display or editorial, often white over image
32
- - Caption: 13px muted, body font
33
- - Body: minimal, max-width 60ch
34
-
35
- ## Spacing
36
-
37
- - Image gap: `--space-2` (8px) or 0 for bleed
38
- - Caption margin-top: `--space-3` (12px)
39
- - Section gap: `--space-10` (40px)
40
-
41
- ## Anti-Patterns
42
-
43
- - ❌ Heavy UI chrome over photos
44
- - ❌ Low-res stretched images
45
- - ❌ Text that competes with imagery
46
-
47
- ## Theme Affinity
48
-
49
- - ✅ Carnival, Hum
50
- - ❌ Cobalt (too utilitarian)
@@ -1,50 +0,0 @@
1
- # 09 — Quote-Led
2
-
3
- **Fingerprint:** testimonial-first, large pull quotes, editorial, social proof.
4
-
5
- ## Structure
6
-
7
- ```
8
- +---------------------------+
9
- | |
10
- | "BIG PULL QUOTE" |
11
- | — attribution |
12
- | |
13
- +------+--------------------+
14
- | small | supporting |
15
- | quote | context / logo |
16
- +------+--------------------+
17
- | CTA / next quote |
18
- +---------------------------+
19
- ```
20
-
21
- ## Rules
22
-
23
- - Lead quote: largest type, occupies hero space
24
- - Attribution: name, role, company, muted
25
- - Secondary quotes: smaller, in a row or grid
26
- - One dominant quote per screen, no crowding
27
- - Optional logo lockup beside attribution
28
-
29
- ## Typography
30
-
31
- - Quote: editorial serif or display, italic optional
32
- - Attribution: 14px medium, muted
33
- - Body: body font, minimal
34
-
35
- ## Spacing
36
-
37
- - Quote padding: `--space-10` (40px)
38
- - Attribution margin-top: `--space-4` (16px)
39
- - Quote gap: `--space-6` (24px)
40
-
41
- ## Anti-Patterns
42
-
43
- - ❌ Multiple equal quotes fighting for attention
44
- - ❌ Fake-looking testimonials without attribution
45
- - ❌ Quote text too small to read
46
-
47
- ## Theme Affinity
48
-
49
- - ✅ Hum, Carnival
50
- - ⚠️ Lumen (needs warmer tone)