ai-developer-skill-os 7.0.2 → 7.5.1

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 (206) hide show
  1. package/.agents/AGENTS.md +44 -88
  2. package/.agents/CHANGELOG.md +70 -0
  3. package/.agents/LICENSE +21 -0
  4. package/.agents/README.md +100 -0
  5. package/.agents/docs/CHI_TIET_SKILLS.md +126 -0
  6. package/.agents/docs/GOVERNANCE.md +40 -0
  7. package/.agents/docs/HUONG_DAN_SU_DUNG.md +120 -0
  8. package/.agents/docs/SPEC.md +87 -0
  9. package/.agents/docs/adr/0001-intent-based-architecture.md +19 -0
  10. package/.agents/docs/adr/0002-kernel-freeze.md +21 -0
  11. package/.agents/docs/adr/0003-risk-based-verification.md +20 -0
  12. package/.agents/docs/adr/0004-progressive-evidence.md +19 -0
  13. package/.agents/docs/skill-classification.md +25 -0
  14. package/.agents/skills/qk-access-policy/SKILL.md +179 -0
  15. package/.agents/skills/qk-ai-builder/SKILL.md +215 -0
  16. package/.agents/skills/qk-api-lifecycle/SKILL.md +176 -0
  17. package/.agents/skills/qk-bug-resolution/SKILL.md +307 -0
  18. package/.agents/skills/qk-context-loader/SKILL.md +218 -0
  19. package/.agents/skills/qk-data-lifecycle/SKILL.md +192 -0
  20. package/.agents/skills/qk-db-optimizer/SKILL.md +196 -0
  21. package/.agents/skills/qk-docs/SKILL.md +198 -0
  22. package/.agents/skills/qk-engineering-standard/SKILL.md +351 -0
  23. package/.agents/skills/qk-engineering-standard/rules/backend.md +122 -0
  24. package/.agents/skills/qk-engineering-standard/rules/database.md +3 -0
  25. package/.agents/skills/qk-engineering-standard/rules/frontend.md +152 -0
  26. package/.agents/skills/qk-engineering-standard/rules/security.md +3 -0
  27. package/.agents/skills/qk-engineering-standard/rules/testing.md +3 -0
  28. package/.agents/skills/qk-fe-api-integration/SKILL.md +326 -0
  29. package/.agents/skills/qk-feature-delivery/SKILL.md +305 -0
  30. package/.agents/skills/qk-help/SKILL.md +193 -0
  31. package/.agents/skills/qk-orchestrator/SKILL.md +278 -0
  32. package/.agents/skills/qk-orchestrator/references/routing-table.md +78 -0
  33. package/.agents/skills/qk-production-release/SKILL.md +284 -0
  34. package/.agents/skills/qk-project-bootstrap/SKILL.md +235 -0
  35. package/.agents/skills/qk-project-health/SKILL.md +199 -0
  36. package/.agents/skills/qk-project-memory/SKILL.md +218 -0
  37. package/.agents/skills/qk-system-evolution/SKILL.md +281 -0
  38. package/.agents/skills/qk-ui-audit/SKILL.md +315 -0
  39. package/.agents/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  40. package/.agents/skills/qk-ui-builder/SKILL.md +446 -0
  41. package/.agents/skills/qk-ui-builder/references/anti-patterns.md +295 -0
  42. package/.agents/skills/qk-ui-builder/references/color.md +115 -0
  43. package/.agents/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
  44. package/.agents/skills/qk-ui-builder/references/copy.md +250 -0
  45. package/.agents/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
  46. package/.agents/skills/qk-ui-builder/references/layout-and-space.md +111 -0
  47. package/.agents/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
  48. package/.agents/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
  49. package/.agents/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
  50. package/.agents/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
  51. package/.agents/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
  52. package/.agents/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
  53. package/.agents/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
  54. package/.agents/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
  55. package/.agents/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
  56. package/.agents/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
  57. package/.agents/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
  58. package/.agents/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
  59. package/.agents/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
  60. package/.agents/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
  61. package/.agents/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
  62. package/.agents/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
  63. package/.agents/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
  64. package/.agents/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
  65. package/.agents/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
  66. package/.agents/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
  67. package/.agents/skills/qk-ui-builder/references/macrostructures.md +38 -0
  68. package/.agents/skills/qk-ui-builder/references/motion.md +95 -0
  69. package/.agents/skills/qk-ui-builder/references/responsive.md +115 -0
  70. package/.agents/skills/qk-ui-builder/references/slop-test.md +135 -0
  71. package/.agents/skills/qk-ui-builder/references/structure.md +280 -0
  72. package/.agents/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
  73. package/.agents/skills/qk-ui-builder/references/themes/carnival.md +52 -0
  74. package/.agents/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
  75. package/.agents/skills/qk-ui-builder/references/themes/editorial.md +52 -0
  76. package/.agents/skills/qk-ui-builder/references/themes/garden.md +52 -0
  77. package/.agents/skills/qk-ui-builder/references/themes/hum.md +52 -0
  78. package/.agents/skills/qk-ui-builder/references/themes/lumen.md +52 -0
  79. package/.agents/skills/qk-ui-builder/references/themes/midnight.md +52 -0
  80. package/.agents/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
  81. package/.agents/skills/qk-ui-builder/references/themes/playful.md +52 -0
  82. package/.agents/skills/qk-ui-builder/references/themes/specimen.md +52 -0
  83. package/.agents/skills/qk-ui-builder/references/themes/terminal.md +52 -0
  84. package/.agents/skills/qk-ui-builder/references/typography.md +129 -0
  85. package/.agents/skills/qk-ui-system-builder/SKILL.md +221 -0
  86. package/.agents/skills/qk-validation-gate/SKILL.md +359 -0
  87. package/.agents/skills.json +819 -0
  88. package/.github/workflows/ci.yml +1 -1
  89. package/CHANGELOG.md +2 -1
  90. package/CLAUDE.md +110 -0
  91. package/README.md +52 -10
  92. package/add_lang.js +21 -0
  93. package/add_lang.py +25 -0
  94. package/add_sections.py +53 -0
  95. package/bin/install.js +225 -170
  96. package/bin/lint.js +123 -0
  97. package/docs/CHI_TIET_SKILLS.md +27 -26
  98. package/docs/HUONG_DAN_SU_DUNG.md +3 -3
  99. package/docs/SPEC.md +70 -20
  100. package/framework/decision-primitives.md +2 -1
  101. package/framework/skill-schema.md +310 -0
  102. package/package.json +16 -5
  103. package/patch.js +15 -0
  104. package/patch.py +89 -0
  105. package/patch2.py +83 -0
  106. package/skills/_archive_old_skills/qk-accessibility-audit/SKILL.md +1 -0
  107. package/skills/_archive_old_skills/qk-agent-orchestrator/SKILL.md +1 -0
  108. package/skills/_archive_old_skills/qk-api-integration/SKILL.md +1 -0
  109. package/skills/_archive_old_skills/qk-auth-security/SKILL.md +1 -0
  110. package/skills/_archive_old_skills/qk-backend-architecture/SKILL.md +1 -0
  111. package/skills/_archive_old_skills/qk-bug-fix/SKILL.md +1 -0
  112. package/skills/_archive_old_skills/qk-component-generator/SKILL.md +1 -0
  113. package/skills/_archive_old_skills/qk-context-manager/SKILL.md +1 -0
  114. package/skills/_archive_old_skills/qk-database-engineer/SKILL.md +1 -0
  115. package/skills/_archive_old_skills/qk-deployment/SKILL.md +1 -0
  116. package/skills/_archive_old_skills/qk-design-system/SKILL.md +1 -0
  117. package/skills/_archive_old_skills/qk-form-builder/SKILL.md +1 -0
  118. package/skills/_archive_old_skills/qk-frontend-architecture/SKILL.md +1 -0
  119. package/skills/_archive_old_skills/qk-frontend-debug/SKILL.md +1 -0
  120. package/skills/_archive_old_skills/qk-frontend-performance/SKILL.md +1 -0
  121. package/skills/_archive_old_skills/qk-frontend-testing/SKILL.md +1 -0
  122. package/skills/_archive_old_skills/qk-git-engineer/SKILL.md +1 -0
  123. package/skills/_archive_old_skills/qk-help/SKILL.md +1 -0
  124. package/skills/_archive_old_skills/qk-migration/SKILL.md +1 -0
  125. package/skills/_archive_old_skills/qk-project-audit/SKILL.md +1 -0
  126. package/skills/_archive_old_skills/qk-refactor/SKILL.md +1 -0
  127. package/skills/_archive_old_skills/qk-state-management/SKILL.md +1 -0
  128. package/skills/_archive_old_skills/qk-table-crud-generator/SKILL.md +1 -0
  129. package/skills/_archive_old_skills/qk-ui-builder/SKILL.md +1 -0
  130. package/skills/_template/SKILL.md +239 -0
  131. package/skills/qk-access-policy/SKILL.md +180 -39
  132. package/skills/qk-ai-builder/SKILL.md +216 -40
  133. package/skills/qk-api-lifecycle/SKILL.md +177 -46
  134. package/skills/qk-bug-resolution/SKILL.md +308 -46
  135. package/skills/qk-context-loader/SKILL.md +219 -43
  136. package/skills/qk-data-lifecycle/SKILL.md +193 -44
  137. package/skills/qk-db-optimizer/SKILL.md +197 -41
  138. package/skills/qk-docs/SKILL.md +199 -40
  139. package/skills/qk-engineering-standard/SKILL.md +352 -42
  140. package/skills/qk-fe-api-integration/SKILL.md +327 -55
  141. package/skills/qk-feature-delivery/SKILL.md +306 -48
  142. package/skills/qk-help/SKILL.md +179 -23
  143. package/skills/qk-orchestrator/SKILL.md +279 -42
  144. package/skills/qk-orchestrator/references/routing-table.md +78 -0
  145. package/skills/qk-production-release/SKILL.md +285 -41
  146. package/skills/qk-project-bootstrap/SKILL.md +236 -38
  147. package/skills/qk-project-health/SKILL.md +200 -40
  148. package/skills/qk-project-memory/SKILL.md +219 -40
  149. package/skills/qk-system-evolution/SKILL.md +282 -40
  150. package/skills/qk-ui-audit/SKILL.md +316 -42
  151. package/skills/qk-ui-audit/references/anti-slop-checklist.md +136 -0
  152. package/skills/qk-ui-builder/SKILL.md +447 -0
  153. package/skills/qk-ui-builder/references/anti-patterns.md +295 -0
  154. package/skills/qk-ui-builder/references/color.md +115 -0
  155. package/skills/qk-ui-builder/references/component-cookbook.md +1194 -0
  156. package/skills/qk-ui-builder/references/copy.md +250 -0
  157. package/skills/qk-ui-builder/references/interaction-and-states.md +115 -0
  158. package/skills/qk-ui-builder/references/layout-and-space.md +111 -0
  159. package/skills/qk-ui-builder/references/macrostructures/01-bento-grid.md +48 -0
  160. package/skills/qk-ui-builder/references/macrostructures/02-long-document.md +50 -0
  161. package/skills/qk-ui-builder/references/macrostructures/03-marquee-hero.md +51 -0
  162. package/skills/qk-ui-builder/references/macrostructures/04-stat-led.md +49 -0
  163. package/skills/qk-ui-builder/references/macrostructures/05-workbench.md +44 -0
  164. package/skills/qk-ui-builder/references/macrostructures/06-conversational-faq.md +50 -0
  165. package/skills/qk-ui-builder/references/macrostructures/07-manifesto.md +51 -0
  166. package/skills/qk-ui-builder/references/macrostructures/08-photographic.md +50 -0
  167. package/skills/qk-ui-builder/references/macrostructures/09-quote-led.md +50 -0
  168. package/skills/qk-ui-builder/references/macrostructures/11-catalogue.md +49 -0
  169. package/skills/qk-ui-builder/references/macrostructures/12-letter.md +49 -0
  170. package/skills/qk-ui-builder/references/macrostructures/13-index-first.md +49 -0
  171. package/skills/qk-ui-builder/references/macrostructures/14-narrative-workflow.md +48 -0
  172. package/skills/qk-ui-builder/references/macrostructures/15-split-studio.md +48 -0
  173. package/skills/qk-ui-builder/references/macrostructures/16-feature-stack.md +51 -0
  174. package/skills/qk-ui-builder/references/macrostructures/17-type-specimen.md +48 -0
  175. package/skills/qk-ui-builder/references/macrostructures/18-portfolio-grid.md +48 -0
  176. package/skills/qk-ui-builder/references/macrostructures/19-map-diagram.md +50 -0
  177. package/skills/qk-ui-builder/references/macrostructures/20-ecosystem-index.md +48 -0
  178. package/skills/qk-ui-builder/references/macrostructures/21-component-playground.md +45 -0
  179. package/skills/qk-ui-builder/references/macrostructures.md +38 -0
  180. package/skills/qk-ui-builder/references/motion.md +95 -0
  181. package/skills/qk-ui-builder/references/responsive.md +115 -0
  182. package/skills/qk-ui-builder/references/slop-test.md +135 -0
  183. package/skills/qk-ui-builder/references/structure.md +280 -0
  184. package/skills/qk-ui-builder/references/themes/atmospheric.md +53 -0
  185. package/skills/qk-ui-builder/references/themes/carnival.md +52 -0
  186. package/skills/qk-ui-builder/references/themes/cobalt.md +52 -0
  187. package/skills/qk-ui-builder/references/themes/editorial.md +52 -0
  188. package/skills/qk-ui-builder/references/themes/garden.md +52 -0
  189. package/skills/qk-ui-builder/references/themes/hum.md +52 -0
  190. package/skills/qk-ui-builder/references/themes/lumen.md +52 -0
  191. package/skills/qk-ui-builder/references/themes/midnight.md +52 -0
  192. package/skills/qk-ui-builder/references/themes/modern-minimal.md +52 -0
  193. package/skills/qk-ui-builder/references/themes/playful.md +52 -0
  194. package/skills/qk-ui-builder/references/themes/specimen.md +52 -0
  195. package/skills/qk-ui-builder/references/themes/terminal.md +52 -0
  196. package/skills/qk-ui-builder/references/typography.md +129 -0
  197. package/skills/qk-ui-system-builder/SKILL.md +222 -43
  198. package/skills/qk-validation-gate/SKILL.md +360 -40
  199. package/skills.json +815 -825
  200. package/specs/fixtures/user-payload.json +12 -0
  201. package/specs/regressions/api-integration-null-fields.yaml +19 -0
  202. package/temp_fix.js +61 -0
  203. package/tests/registry.test.js +1 -1
  204. package/update_template.js +28 -0
  205. package/skills/qk-design-to-code/SKILL.md +0 -46
  206. package/skills/qk-policy-engine/SKILL.md +0 -39
@@ -0,0 +1,48 @@
1
+ # 20 — Ecosystem Index
2
+
3
+ **Fingerprint:** integrations, partners, plugins directory, logo grid with search.
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ +---------------------------+
9
+ | Search + category tabs |
10
+ +------+--------------------+
11
+ | Cat | [logo][logo] |
12
+ | nav | [logo][logo] |
13
+ | | [logo][logo] |
14
+ +------+--------------------+
15
+ | Featured / popular |
16
+ +---------------------------+
17
+ ```
18
+
19
+ ## Rules
20
+
21
+ - Logo grid: uniform tile size, grayscale → color on hover
22
+ - Categories: tab or sidebar filter
23
+ - Search: matches name and tags
24
+ - Featured row: highlights top integrations
25
+ - Each tile links to detail/install
26
+
27
+ ## Typography
28
+
29
+ - Heading: display for directory title
30
+ - Tile name: 13px medium under logo
31
+ - Category: 14px, active state bold
32
+
33
+ ## Spacing
34
+
35
+ - Grid gap: `--space-4` (16px)
36
+ - Tile padding: `--space-4` (16px)
37
+ - Cat nav width: 200px
38
+
39
+ ## Anti-Patterns
40
+
41
+ - ❌ Logos at inconsistent sizes
42
+ - ❌ No search on large directories
43
+ - ❌ Missing category organization
44
+
45
+ ## Theme Affinity
46
+
47
+ - ✅ Cobalt, Lumen
48
+ - ⚠️ Carnival (logos need neutral bg)
@@ -0,0 +1,45 @@
1
+ # 21 — Component Playground
2
+
3
+ **Fingerprint:** tabbed or sidebar navigation, live preview, code snippet, copy button.
4
+
5
+ ## Structure
6
+
7
+ ```
8
+ +---------+------------------+
9
+ | Nav | Preview |
10
+ | (tabs) | (live render) |
11
+ | | |
12
+ +---------+------------------+
13
+ | Code Snippet [Copy] |
14
+ +-----------------------------+
15
+ ```
16
+
17
+ ## Rules
18
+
19
+ - Nav: vertical tabs or horizontal pills
20
+ - Preview: sandboxed iframe or isolated render
21
+ - Code: syntax highlighted, copy button
22
+ - Tabs: at least 3 examples per component
23
+
24
+ ## Typography
25
+
26
+ - Heading: display style
27
+ - Code: mono, 13px
28
+ - Body: body font, 14px
29
+
30
+ ## Spacing
31
+
32
+ - Nav width: 200px
33
+ - Preview padding: `--space-6`
34
+ - Code padding: `--space-4`
35
+
36
+ ## Anti-Patterns
37
+
38
+ - ❌ Preview that doesn't update on tab switch
39
+ - ❌ Code snippets without syntax highlighting
40
+ - ❌ Missing copy button
41
+
42
+ ## Theme Affinity
43
+
44
+ - ✅ Lumen, Cobalt
45
+ - ❌ Hum, Carnival (too decorative)
@@ -0,0 +1,38 @@
1
+ # Macrostructure Index
2
+
3
+ Load this index first, then load ONLY the chosen macrostructure file.
4
+
5
+ | ID | Name | Best For |
6
+ |----|------|----------|
7
+ | 01 | Bento Grid | Feature dashboards, app shells |
8
+ | 02 | Long Document | Docs, blogs, legal |
9
+ | 03 | Marquee Hero | Marketing, campaigns |
10
+ | 04 | Stat-Led | Analytics, metrics |
11
+ | 05 | Workbench | Tools, editors, IDEs |
12
+ | 06 | Conversational FAQ | Support, onboarding |
13
+ | 07 | Manifesto | Brand, about, careers |
14
+ | 08 | Photographic | Portfolios, travel |
15
+ | 09 | Quote-Led | Testimonials, editorial |
16
+ | 10 | Specimen | Design systems, pattern libraries |
17
+ | 11 | Catalogue | E-commerce, listings |
18
+ | 12 | Letter | Newsletters, personal |
19
+ | 13 | Index-First | Wikis, knowledge bases |
20
+ | 14 | Narrative Workflow | Onboarding, wizards |
21
+ | 15 | Split Studio | Comparison, before/after |
22
+ | 16 | Feature Stack | Product pages, SaaS |
23
+ | 17 | Type Specimen | Typography showcases |
24
+ | 18 | Portfolio Grid | Creative portfolios |
25
+ | 19 | Map/Diagram | Architecture, org charts |
26
+ | 20 | Ecosystem Index | Integrations, partners |
27
+ | 21 | Component Playground | UI libraries, docs |
28
+
29
+ ## Load Rule
30
+
31
+ 1. Read this index only
32
+ 2. Pick ONE macrostructure based on brief
33
+ 3. Load ONLY `references/macrostructures/XX-<name>.md`
34
+ 4. Never load all 21 files
35
+
36
+ ## Diversification Rule
37
+
38
+ No two consecutive builds in the same project may share the same macrostructure.
@@ -0,0 +1,95 @@
1
+ # Motion
2
+
3
+ Foundational rules for animation. Motion must feel intentional, fast, and accessible — never decorative bounce or layout-shifting transitions.
4
+
5
+ ## Duration Scale
6
+
7
+ Use only these durations. Do not invent values like 250ms or 420ms.
8
+
9
+ ```
10
+ 100ms micro (hover, toggle, color)
11
+ 150ms quick state change
12
+ 200ms default UI transition
13
+ 300ms panel / menu enter-exit
14
+ 500ms large surface / page-level
15
+ ```
16
+
17
+ ```css
18
+ :root {
19
+ --dur-1: 100ms;
20
+ --dur-2: 150ms;
21
+ --dur-3: 200ms;
22
+ --dur-4: 300ms;
23
+ --dur-5: 500ms;
24
+ }
25
+ ```
26
+
27
+ ## Easing
28
+
29
+ Match easing to the direction of motion:
30
+
31
+ | Phase | Easing |
32
+ | --- | --- |
33
+ | Enter (appear) | `ease-out` |
34
+ | Exit (disappear) | `ease-in` |
35
+ | Continuous transition | `ease-in-out` |
36
+
37
+ ```css
38
+ .card { transition: transform var(--dur-3) ease-out, opacity var(--dur-3) ease-out; }
39
+ .menu-close { transition: opacity var(--dur-2) ease-in; }
40
+ .theme-switch { transition: background-color var(--dur-4) ease-in-out; }
41
+ ```
42
+
43
+ ## Ban List
44
+
45
+ - **No bounce / overshoot easing.** Never use `cubic-bezier(0.68, -0.55, 0.265, 1.55)` or any springy curve for UI elements. It reads as unprofessional and slows perceived performance.
46
+
47
+ ```css
48
+ /* BANNED */
49
+ transition: all 300ms cubic-bezier(0.68, -0.55, 0.265, 1.55);
50
+ ```
51
+
52
+ - **No infinite decorative animations** (marquee, pulsing glow) unless the user explicitly asks.
53
+ - **No `transition: all`** — name the specific properties.
54
+
55
+ ## prefers-reduced-motion
56
+
57
+ Respect the user's OS setting. Under `reduce`, disable transforms/opacity animations and drop durations to **0ms**.
58
+
59
+ ```css
60
+ @media (prefers-reduced-motion: reduce) {
61
+ *,
62
+ *::before,
63
+ *::after {
64
+ animation-duration: 0.01ms !important;
65
+ animation-iteration-count: 1 !important;
66
+ transition-duration: 0ms !important;
67
+ scroll-behavior: auto !important;
68
+ }
69
+ }
70
+ ```
71
+
72
+ Apply this once globally; do not re-introduce motion for individual elements.
73
+
74
+ ## No Animating Layout Properties
75
+
76
+ Never animate `width`, `height`, `padding`, `margin`, or `top/left`. These trigger layout/paint reflows and jank. Animate only **transform** and **opacity** (compositor-only).
77
+
78
+ ```css
79
+ /* Good: animate transform/opacity only */
80
+ .modal { opacity: 0; transform: translateY(8px); transition: opacity var(--dur-3) ease-out, transform var(--dur-3) ease-out; }
81
+ .modal.open { opacity: 1; transform: translateY(0); }
82
+
83
+ /* Bad: animates layout */
84
+ .panel { transition: height 300ms ease; } /* reflows, janky */
85
+ ```
86
+
87
+ For elements that change size (expand/collapse), use `transform: scaleY()` or animate `grid-template-rows: 0fr → 1fr` instead of height.
88
+
89
+ ## Practical Checklist
90
+
91
+ - [ ] Durations only from the 5-step scale.
92
+ - [ ] ease-out enter / ease-in exit / ease-in-out transition.
93
+ - [ ] No bounce bezier, no `transition: all`, no infinite decoration.
94
+ - [ ] `prefers-reduced-motion` zeroes all motion.
95
+ - [ ] Only `transform` / `opacity` are animated.
@@ -0,0 +1,115 @@
1
+ # Responsive
2
+
3
+ Foundational rules for building layouts that adapt across screen sizes without breaking, horizontal scroll, or un-tappable controls.
4
+
5
+ ## Breakpoints
6
+
7
+ Use this standard scale. Build **mobile-first** (base styles = small screens, then enhance upward).
8
+
9
+ ```
10
+ sm 640px
11
+ md 768px
12
+ lg 1024px
13
+ xl 1280px
14
+ ```
15
+
16
+ ```css
17
+ /* mobile-first: base = mobile, then min-width queries */
18
+ @media (min-width: 640px) { /* sm */ }
19
+ @media (min-width: 768px) { /* md */ }
20
+ @media (min-width: 1024px) { /* lg */ }
21
+ @media (min-width: 1280px) { /* xl */ }
22
+ ```
23
+
24
+ ## Mobile: Stack Vertically
25
+
26
+ On small screens, lay content out in a **single vertical column**. Never require horizontal scrolling for core content.
27
+
28
+ ```css
29
+ .layout {
30
+ display: grid;
31
+ grid-template-columns: 1fr; /* stacked on mobile */
32
+ gap: var(--space-6);
33
+ }
34
+ @media (min-width: 768px) {
35
+ .layout { grid-template-columns: 240px 1fr; } /* sidebar + content */
36
+ }
37
+ ```
38
+
39
+ ```css
40
+ /* Guard against accidental horizontal overflow */
41
+ html, body { overflow-x: hidden; max-width: 100%; }
42
+ img, video, table { max-width: 100%; }
43
+ ```
44
+
45
+ ## Touch Targets: Min 44×44px
46
+
47
+ Every interactive control must be at least **44×44px** to be comfortably tappable. Don't let padding shrink the hit area below this.
48
+
49
+ ```css
50
+ .btn, .nav-link, .icon-button {
51
+ min-height: 44px;
52
+ min-width: 44px;
53
+ display: inline-flex;
54
+ align-items: center;
55
+ justify-content: center;
56
+ padding: var(--space-2) var(--space-4);
57
+ }
58
+ ```
59
+
60
+ ## Fluid Typography with clamp()
61
+
62
+ Use `clamp()` for headings/hero text so type scales smoothly between breakpoints without abrupt jumps.
63
+
64
+ ```css
65
+ h1 {
66
+ /* min 32px, preferred 5vw, max 64px */
67
+ font-size: clamp(2rem, 5vw, 4rem); /* 32px → 64px */
68
+ }
69
+ h2 {
70
+ font-size: clamp(1.5rem, 3vw, 2rem); /* 24px → 32px */
71
+ }
72
+ ```
73
+
74
+ Keep body text near `--text-base` (16px) for readability; reserve clamp() for display sizes.
75
+
76
+ ## Image Grids: minmax(0, 1fr)
77
+
78
+ For responsive image/card grids, use `minmax(0, 1fr)` so items shrink properly and never overflow. Fixed-width columns break on mobile.
79
+
80
+ ```css
81
+ .gallery {
82
+ display: grid;
83
+ grid-template-columns: repeat(auto-fill, minmax(0, 1fr));
84
+ gap: var(--space-4);
85
+ }
86
+ @media (min-width: 640px) { .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
87
+ @media (min-width: 1024px) { .gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
88
+ ```
89
+
90
+ ```css
91
+ .gallery img { width: 100%; height: 100%; object-fit: cover; display: block; }
92
+ ```
93
+
94
+ ## Desktop Container
95
+
96
+ Cap desktop content at 1200px and center (see layout-and-space.md). On mobile it becomes 100% width with safe padding.
97
+
98
+ ```css
99
+ .container {
100
+ width: 100%;
101
+ max-width: 1200px;
102
+ margin-inline: auto;
103
+ padding-inline: var(--space-4);
104
+ }
105
+ @media (min-width: 768px) { .container { padding-inline: var(--space-6); } }
106
+ ```
107
+
108
+ ## Practical Checklist
109
+
110
+ - [ ] Mobile-first with sm/md/lg/xl breakpoints.
111
+ - [ ] Mobile stacks vertically; no horizontal scroll.
112
+ - [ ] All tap targets ≥ 44×44px.
113
+ - [ ] Display type uses `clamp()` for fluid scaling.
114
+ - [ ] Image/card grids use `minmax(0, 1fr)`.
115
+ - [ ] Desktop content capped at 1200px.
@@ -0,0 +1,135 @@
1
+ # Slop Test — 58 Anti-Slop Gates
2
+
3
+ Run this checklist AFTER every build. Every answer must be **NO**.
4
+
5
+ ## Pre-Emit Self-Critique (Score 1–5 on each axis)
6
+
7
+ | Axis | Question | Score |
8
+ |------|----------|-------|
9
+ | Philosophy | Does this serve the user, or just show off? | ___ |
10
+ | Hierarchy | Is the visual hierarchy clear within 3 seconds? | ___ |
11
+ | Execution | Is every interaction polished, not just present? | ___ |
12
+ | Specificity | Does this feel made for this brief, not generic? | ___ |
13
+ | Restraint | Could anything be removed without losing meaning? | ___ |
14
+ | Variety | Would a second page feel different, not a color-swap? | ___ |
15
+
16
+ **Rule:** Any axis < 3 → revise before continuing.
17
+
18
+ ---
19
+
20
+ ## Visual Gates (1–7)
21
+
22
+ - [ ] **1.** No banned fonts: Inter, Roboto, Arial, system-ui as primary identity font
23
+ - [ ] **2.** No purple-blue gradients (`linear-gradient(135deg, #a855f7, #3b82f6)`)
24
+ - [ ] **3.** No gradient text (`background-clip: text`)
25
+ - [ ] **4.** No 3-equal-column icon cards
26
+ - [ ] **5.** No card-in-card layouts (card inside card inside card)
27
+ - [ ] **6.** No side-stripe cards (left border accent only)
28
+ - [ ] **7.** No centred-everything hero (all content centered with max-width)
29
+
30
+ ## Structural Gates (8–9)
31
+
32
+ - [ ] **8.** No AI-template reuse (same fingerprint as prior build in project)
33
+ - [ ] **9.** Sections separated by more than whitespace (use dividers, headings, or background changes)
34
+
35
+ ## Microinteraction Gates (10–19)
36
+
37
+ - [ ] **10.** No `transition-all` on interactive elements
38
+ - [ ] **11.** No `hover:scale-105` without context
39
+ - [ ] **12.** No `cubic-bezier(0.68, -0.55, 0.265, 1.55)` (bounce easing)
40
+ - [ ] **13.** No more than 2 hover effects per element
41
+ - [ ] **14.** No animating layout props (width, height, padding)
42
+ - [ ] **15.** No animated focus ring (focus state must be instant)
43
+ - [ ] **16.** No celebratory toasts/confetti on load
44
+ - [ ] **17.** No equal hover/focus tooltip delay
45
+ - [ ] **18.** No auto-rotating carousel without pause-on-hover
46
+ - [ ] **19.** No placeholder names (John Doe, Jane Smith, etc.)
47
+
48
+ ## Variety Gates (20–21)
49
+
50
+ - [ ] **20.** Macrostructure stamp present in CSS comment
51
+ - [ ] **21.** Not Specimen fall-through (every brief needs a real macrostructure)
52
+
53
+ ## Implementation Gates (22–27)
54
+
55
+ - [ ] **22.** No zero-chroma neutrals (`hsl(0, 0%, X%)` as primary)
56
+ - [ ] **23.** Accent color footprint < 5% of viewport
57
+ - [ ] **24.** Spacing follows scale (no off-scale values like 13px, 27px)
58
+ - [ ] **25.** Prose measure between 45–75ch
59
+ - [ ] **26.** All interactive elements have focus, active, disabled states
60
+ - [ ] **27.** Motion has `prefers-reduced-motion` fallback
61
+
62
+ ## Hero Enrichment Gates (28–31)
63
+
64
+ - [ ] **28.** No autoplay-with-sound video
65
+ - [ ] **29.** No over-busy abstract background (more than 2 visual layers)
66
+ - [ ] **30.** No mixed icon libraries or emoji icons in professional UI
67
+ - [ ] **31.** No Lottie animation when CSS transition would suffice
68
+
69
+ ## Diversification Gates (32–33)
70
+
71
+ - [ ] **32.** Same archetype not repeated without varied knob (size, color, layout)
72
+ - [ ] **33.** Decorative SVG/figure has `aria-hidden="true"` or meaningful `role`
73
+
74
+ ## Layout-Safety Gates (34–36)
75
+
76
+ - [ ] **34.** No horizontal scroll (`overflow-x: clip` on html+body)
77
+ - [ ] **35.** No misplaced decorative text effects (text-shadow as decoration)
78
+ - [ ] **36.** Interactive bars centered (not left-aligned with unbalanced whitespace)
79
+
80
+ ## Typography Gates (37–38a)
81
+
82
+ - [ ] **37.** No more than 3 font families
83
+ - [ ] **38.** No outlier font used in > 2 slots
84
+ - [ ] **38a.** No italic headers (headers use weight, not style)
85
+
86
+ ## Input-State Gates (39)
87
+
88
+ - [ ] **39.** No border-width shift on focus, no border-built focus ring, no input/button height mismatch, no collapsed helper text, no opacity-only disabled
89
+
90
+ ## Contrast Gates (40–41)
91
+
92
+ - [ ] **40.** WCAG 2.1 AA contrast (4.5:1 for text, 3:1 for large text)
93
+ - [ ] **41.** No ink-on-ink (same color for text and background with only opacity difference)
94
+
95
+ ## Chrome Gates (42–45)
96
+
97
+ - [ ] **42.** No AI nav fingerprint (centered logo, pill nav, gradient CTA)
98
+ - [ ] **43.** No AI footer fingerprint (3 columns: Product, Company, Legal, social icons row)
99
+ - [ ] **44.** Hero fits viewport (no excessive height)
100
+ - [ ] **45.** Decorative elements have purpose or removed
101
+
102
+ ## Honest Copy Gate (46)
103
+
104
+ - [ ] **46.** No invented metrics ("10x faster", "100% secure", "trusted by 10,000+")
105
+
106
+ ## Re-Drawn Chrome Gate (47)
107
+
108
+ - [ ] **47.** No fake browser/phone/code/IDE chrome unless building a mockup tool
109
+
110
+ ## Token Discipline Gate (48)
111
+
112
+ - [ ] **48.** No mid-render token improvisation (all values from DESIGN.md or theme)
113
+
114
+ ## Responsive Clickable Gate (49)
115
+
116
+ - [ ] **49.** No two-line clickable text (buttons/links max 1 line)
117
+
118
+ ## Mobile Non-Negotiables (50–57)
119
+
120
+ - [ ] **50.** Image grids use `minmax(0, 1fr)` not fixed widths
121
+ - [ ] **51.** Long words wrap (`overflow-wrap: break-word`)
122
+ - [ ] **52.** Mobile section-head collapse (h1 reduces size on small screens)
123
+ - [ ] **53.** Radio-tab scroll-jump prevented
124
+ - [ ] **54.** No tag-beside-heading on mobile (stack vertically)
125
+ - [ ] **55.** All-caps line-height collision avoided (`letter-spacing: 0.05em` minimum)
126
+ - [ ] **56.** Sticky header doesn't bleed into content
127
+ - [ ] **57.** Studied DNA not discarded (if `--study` was used, its output must be referenced)
128
+
129
+ ---
130
+
131
+ ## Final Gate
132
+
133
+ - [ ] **58.** Pre-emit self-critique average ≥ 3.0 on all 6 axes
134
+
135
+ **Pass condition:** All 58 gates = NO. Any YES → fix before shipping.