@ziamana/bruine 0.1.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 (107) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +315 -0
  3. package/THIRD_PARTY_NOTICES.md +24 -0
  4. package/cordis.patch.yml +166 -0
  5. package/dist/bin.js +5358 -0
  6. package/dist/compat.js +40 -0
  7. package/dist/plugins/approval.js +147 -0
  8. package/dist/plugins/headless.js +236 -0
  9. package/dist/plugins/herdr.js +470 -0
  10. package/dist/plugins/mcp.js +275 -0
  11. package/dist/plugins/modes.js +850 -0
  12. package/dist/plugins/render.js +3723 -0
  13. package/dist/plugins/repl.js +9589 -0
  14. package/dist/plugins/silence.js +234 -0
  15. package/dist/plugins/startup.js +42 -0
  16. package/dist/plugins/web-search.js +138 -0
  17. package/package.json +93 -0
  18. package/skills/code-review/SKILL.md +30 -0
  19. package/skills/git-workflow/SKILL.md +31 -0
  20. package/skills/impeccable/LICENSE +191 -0
  21. package/skills/impeccable/NOTICE.md +11 -0
  22. package/skills/impeccable/SKILL.md +87 -0
  23. package/skills/impeccable/reference/adapt.md +318 -0
  24. package/skills/impeccable/reference/adapt.native.md +58 -0
  25. package/skills/impeccable/reference/android.md +46 -0
  26. package/skills/impeccable/reference/animate.md +89 -0
  27. package/skills/impeccable/reference/audit.md +137 -0
  28. package/skills/impeccable/reference/audit.native.md +139 -0
  29. package/skills/impeccable/reference/bolder.md +33 -0
  30. package/skills/impeccable/reference/clarify.md +94 -0
  31. package/skills/impeccable/reference/colorize.md +86 -0
  32. package/skills/impeccable/reference/component-review.md +63 -0
  33. package/skills/impeccable/reference/craft-floor.md +44 -0
  34. package/skills/impeccable/reference/craft.md +5 -0
  35. package/skills/impeccable/reference/critique.md +806 -0
  36. package/skills/impeccable/reference/degraded/asset-producer.md +42 -0
  37. package/skills/impeccable/reference/degraded/documenter.md +24 -0
  38. package/skills/impeccable/reference/degraded/finish-reviewer.md +38 -0
  39. package/skills/impeccable/reference/degraded/manual-edit-applier.md +92 -0
  40. package/skills/impeccable/reference/delight.md +70 -0
  41. package/skills/impeccable/reference/distill.md +111 -0
  42. package/skills/impeccable/reference/doctor.md +54 -0
  43. package/skills/impeccable/reference/document.md +416 -0
  44. package/skills/impeccable/reference/extract.md +69 -0
  45. package/skills/impeccable/reference/generate.md +101 -0
  46. package/skills/impeccable/reference/harden.md +345 -0
  47. package/skills/impeccable/reference/hooks.md +113 -0
  48. package/skills/impeccable/reference/init.md +131 -0
  49. package/skills/impeccable/reference/ios.md +51 -0
  50. package/skills/impeccable/reference/layout.md +84 -0
  51. package/skills/impeccable/reference/live-setup.md +104 -0
  52. package/skills/impeccable/reference/live.md +325 -0
  53. package/skills/impeccable/reference/mode-operate.md +21 -0
  54. package/skills/impeccable/reference/mode-persuade.md +19 -0
  55. package/skills/impeccable/reference/mode-read.md +21 -0
  56. package/skills/impeccable/reference/new-work.md +154 -0
  57. package/skills/impeccable/reference/onboard.md +234 -0
  58. package/skills/impeccable/reference/operate.md +61 -0
  59. package/skills/impeccable/reference/optimize.md +258 -0
  60. package/skills/impeccable/reference/overdrive.md +127 -0
  61. package/skills/impeccable/reference/polish.md +105 -0
  62. package/skills/impeccable/reference/quieter.md +99 -0
  63. package/skills/impeccable/reference/region-map.md +26 -0
  64. package/skills/impeccable/reference/routing.md +24 -0
  65. package/skills/impeccable/reference/shape.md +59 -0
  66. package/skills/impeccable/reference/typeset.md +80 -0
  67. package/skills/impeccable/reference/visualize.md +46 -0
  68. package/skills/impeccable/scripts/VERSION +1 -0
  69. package/skills/impeccable/scripts/command-metadata.json +98 -0
  70. package/skills/impeccable/scripts/data/font-index-failures.json +121 -0
  71. package/skills/impeccable/scripts/data/font-index.json +1 -0
  72. package/skills/impeccable/scripts/impeccable +206 -0
  73. package/skills/impeccable/scripts/impeccable.cmd +214 -0
  74. package/skills/impeccable/scripts/live-browser-dom.js +167 -0
  75. package/skills/impeccable/scripts/live-browser-ignores.js +242 -0
  76. package/skills/impeccable/scripts/live-browser-session.js +148 -0
  77. package/skills/impeccable/scripts/live-browser.js +13510 -0
  78. package/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  79. package/skills/make-interfaces-feel-better/LICENSE +21 -0
  80. package/skills/make-interfaces-feel-better/SKILL.md +187 -0
  81. package/skills/make-interfaces-feel-better/agents/openai.yaml +3 -0
  82. package/skills/make-interfaces-feel-better/animations.md +403 -0
  83. package/skills/make-interfaces-feel-better/icons.md +63 -0
  84. package/skills/make-interfaces-feel-better/performance.md +88 -0
  85. package/skills/make-interfaces-feel-better/surfaces.md +256 -0
  86. package/skills/make-interfaces-feel-better/typography.md +157 -0
  87. package/skills/playwright-cli/LICENSE +201 -0
  88. package/skills/playwright-cli/SKILL.md +489 -0
  89. package/skills/playwright-cli/references/element-attributes.md +23 -0
  90. package/skills/playwright-cli/references/playwright-tests.md +39 -0
  91. package/skills/playwright-cli/references/pr-attachments.md +60 -0
  92. package/skills/playwright-cli/references/request-mocking.md +87 -0
  93. package/skills/playwright-cli/references/running-code.md +245 -0
  94. package/skills/playwright-cli/references/session-management.md +227 -0
  95. package/skills/playwright-cli/references/storage-state.md +275 -0
  96. package/skills/playwright-cli/references/test-generation.md +433 -0
  97. package/skills/playwright-cli/references/tracing.md +139 -0
  98. package/skills/playwright-cli/references/video-recording.md +216 -0
  99. package/skills/remotion/SKILL.md +42 -0
  100. package/skills/systematic-debugging/SKILL.md +26 -0
  101. package/skills/thermo-nuclear-code-quality-review/LICENSE +21 -0
  102. package/skills/thermo-nuclear-code-quality-review/SKILL.md +192 -0
  103. package/skills/write-tests/SKILL.md +35 -0
  104. package/skills/youtube-transcript/LICENSE +21 -0
  105. package/skills/youtube-transcript/SKILL.md +41 -0
  106. package/skills/youtube-transcript/package.json +8 -0
  107. package/skills/youtube-transcript/transcript.js +44 -0
@@ -0,0 +1,191 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to the Licensor for inclusion in the Work by the copyright
52
+ owner or by an individual or Legal Entity authorized to submit on
53
+ behalf of the copyright owner. For the purposes of this definition,
54
+ "submitted" means any form of electronic, verbal, or written
55
+ communication sent to the Licensor or its representatives, including
56
+ but not limited to communication on electronic mailing lists, source
57
+ code control systems, and issue tracking systems that are managed by,
58
+ or on behalf of, the Licensor for the purpose of discussing and
59
+ improving the Work, but excluding communication that is conspicuously
60
+ marked or otherwise designated in writing by the copyright owner as
61
+ "Not a Contribution."
62
+
63
+ "Contributor" shall mean Licensor and any individual or Legal Entity
64
+ on behalf of whom a Contribution has been received by Licensor and
65
+ subsequently incorporated within the Work.
66
+
67
+ 2. Grant of Copyright License. Subject to the terms and conditions of
68
+ this License, each Contributor hereby grants to You a perpetual,
69
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
70
+ copyright license to reproduce, prepare Derivative Works of,
71
+ publicly display, publicly perform, sublicense, and distribute the
72
+ Work and such Derivative Works in Source or Object form.
73
+
74
+ 3. Grant of Patent License. Subject to the terms and conditions of
75
+ this License, each Contributor hereby grants to You a perpetual,
76
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
77
+ (except as stated in this section) patent license to make, have made,
78
+ use, offer to sell, sell, import, and otherwise transfer the Work,
79
+ where such license applies only to those patent claims licensable
80
+ by such Contributor that are necessarily infringed by their
81
+ Contribution(s) alone or by combination of their Contribution(s)
82
+ with the Work to which such Contribution(s) was submitted. If You
83
+ institute patent litigation against any entity (including a
84
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
85
+ or a Contribution incorporated within the Work constitutes direct
86
+ or contributory patent infringement, then any patent licenses
87
+ granted to You under this License for that Work shall terminate
88
+ as of the date such litigation is filed.
89
+
90
+ 4. Redistribution. You may reproduce and distribute copies of the
91
+ Work or Derivative Works thereof in any medium, with or without
92
+ modifications, and in Source or Object form, provided that You
93
+ meet the following conditions:
94
+
95
+ (a) You must give any other recipients of the Work or
96
+ Derivative Works a copy of this License; and
97
+
98
+ (b) You must cause any modified files to carry prominent notices
99
+ stating that You changed the files; and
100
+
101
+ (c) You must retain, in the Source form of any Derivative Works
102
+ that You distribute, all copyright, patent, trademark, and
103
+ attribution notices from the Source form of the Work,
104
+ excluding those notices that do not pertain to any part of
105
+ the Derivative Works; and
106
+
107
+ (d) If the Work includes a "NOTICE" text file as part of its
108
+ distribution, then any Derivative Works that You distribute must
109
+ include a readable copy of the attribution notices contained
110
+ within such NOTICE file, excluding those notices that do not
111
+ pertain to any part of the Derivative Works, in at least one
112
+ of the following places: within a NOTICE text file distributed
113
+ as part of the Derivative Works; within the Source form or
114
+ documentation, if provided along with the Derivative Works; or,
115
+ within a display generated by the Derivative Works, if and
116
+ wherever such third-party notices normally appear. The contents
117
+ of the NOTICE file are for informational purposes only and
118
+ do not modify the License. You may add Your own attribution
119
+ notices within Derivative Works that You distribute, alongside
120
+ or as an addendum to the NOTICE text from the Work, provided
121
+ that such additional attribution notices cannot be construed
122
+ as modifying the License.
123
+
124
+ You may add Your own copyright statement to Your modifications and
125
+ may provide additional or different license terms and conditions
126
+ for use, reproduction, or distribution of Your modifications, or
127
+ for any such Derivative Works as a whole, provided Your use,
128
+ reproduction, and distribution of the Work otherwise complies with
129
+ the conditions stated in this License.
130
+
131
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
132
+ any Contribution intentionally submitted for inclusion in the Work
133
+ by You to the Licensor shall be under the terms and conditions of
134
+ this License, without any additional terms or conditions.
135
+ Notwithstanding the above, nothing herein shall supersede or modify
136
+ the terms of any separate license agreement you may have executed
137
+ with Licensor regarding such Contributions.
138
+
139
+ 6. Trademarks. This License does not grant permission to use the trade
140
+ names, trademarks, service marks, or product names of the Licensor,
141
+ except as required for reasonable and customary use in describing the
142
+ origin of the Work and reproducing the content of the NOTICE file.
143
+
144
+ 7. Disclaimer of Warranty. Unless required by applicable law or
145
+ agreed to in writing, Licensor provides the Work (and each
146
+ Contributor provides its Contributions) on an "AS IS" BASIS,
147
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
148
+ implied, including, without limitation, any warranties or conditions
149
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
150
+ PARTICULAR PURPOSE. You are solely responsible for determining the
151
+ appropriateness of using or redistributing the Work and assume any
152
+ risks associated with Your exercise of permissions under this License.
153
+
154
+ 8. Limitation of Liability. In no event and under no legal theory,
155
+ whether in tort (including negligence), contract, or otherwise,
156
+ unless required by applicable law (such as deliberate and grossly
157
+ negligent acts) or agreed to in writing, shall any Contributor be
158
+ liable to You for damages, including any direct, indirect, special,
159
+ incidental, or consequential damages of any character arising as a
160
+ result of this License or out of the use or inability to use the
161
+ Work (including but not limited to damages for loss of goodwill,
162
+ work stoppage, computer failure or malfunction, or any and all
163
+ other commercial damages or losses), even if such Contributor
164
+ has been advised of the possibility of such damages.
165
+
166
+ 9. Accepting Warranty or Additional Liability. While redistributing
167
+ the Work or Derivative Works thereof, You may choose to offer,
168
+ and charge a fee for, acceptance of support, warranty, indemnity,
169
+ or other liability obligations and/or rights consistent with this
170
+ License. However, in accepting such obligations, You may act only
171
+ on Your own behalf and on Your sole responsibility, not on behalf
172
+ of any other Contributor, and only if You agree to indemnify,
173
+ defend, and hold each Contributor harmless for any liability
174
+ incurred by, or claims asserted against, such Contributor by reason
175
+ of your accepting any such warranty or additional liability.
176
+
177
+ END OF TERMS AND CONDITIONS
178
+
179
+ Copyright 2025 Paul Bakaus
180
+
181
+ Licensed under the Apache License, Version 2.0 (the "License");
182
+ you may not use this file except in compliance with the License.
183
+ You may obtain a copy of the License at
184
+
185
+ http://www.apache.org/licenses/LICENSE-2.0
186
+
187
+ Unless required by applicable law or agreed to in writing, software
188
+ distributed under the License is distributed on an "AS IS" BASIS,
189
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
190
+ See the License for the specific language governing permissions and
191
+ limitations under the License.
@@ -0,0 +1,11 @@
1
+ # Third-Party Notices
2
+
3
+ This project includes content derived from third-party work, used under the terms of its original license.
4
+
5
+ ## Platform Design Skills
6
+
7
+ The `skill/reference/ios.md` and `skill/reference/android.md` platform reference files are distilled from ehmo's `platform-design-skills` (Apple Human Interface Guidelines and Material Design 3 rules), rewritten in Impeccable's voice.
8
+
9
+ **Original work:** https://github.com/ehmo/platform-design-skills
10
+ **Original license:** MIT
11
+ **Author:** ehmo
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: impeccable
3
+ description: Use when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a frontend interface. Covers websites, landing pages, dashboards, product UI, app shells, components, forms, settings, onboarding, and empty states. Handles UX review, visual hierarchy, information architecture, cognitive load, accessibility, performance, responsive behavior, theming, anti-patterns, typography, fonts, spacing, layout, alignment, color, motion, micro-interactions, UX copy, error states, edge cases, i18n, and reusable design systems or tokens. Also use for bland designs that need to become bolder or more delightful, loud designs that should become quieter, live browser iteration on UI elements, or ambitious visual effects that should feel technically extraordinary. Not for backend-only or non-UI tasks.
4
+ version: 4.5.0
5
+ user-invocable: true
6
+ argument-hint: "[shape · audit|critique · animate|bolder|colorize|delight|layout|overdrive|quieter|typeset · adapt|clarify|distill · harden|onboard|optimize|polish · init|document|extract|live|generate] [target]"
7
+ license: Apache 2.0
8
+ ---
9
+
10
+ This skill gives you the tools and permission to create design that earns to be called out-of-distribution craft: Whereas before, your design work would have been safe, timid and measured, you now approach every design task as an award-winning design director with impeccable understanding for what makes exceptional design work: production-grade code, peak creativity, a clear POV, deep understanding of the needs of the client and users, and exceptional craft.
11
+
12
+ Core principles:
13
+ - Go all out. No hedging, no shortcuts. The deliverable must be complete (except assets the user must provide).
14
+ - Dream big and bold. Distinct, beautiful, outstanding and highly inspiring work.
15
+ - Verify in bounded passes, not a loop, and the ceiling covers the whole cycle: screenshots, defect scans, micro-edits, and rebuilds alike. Build fully, inspect once with a batched round (desktop and mobile together on the web; the shipped device classes on a native platform), fix everything it shows in one batch, confirm with at most one more round, and stop polishing. Open-ended self-QA burns the user's money doing worse what the finish handoffs do better.
16
+
17
+ ## Setup
18
+
19
+ 1. Run `"${CLAUDE_SKILL_DIR}/scripts/impeccable" context` once per session, where `${CLAUDE_SKILL_DIR}` is the directory that contains this SKILL.md (the skill folder, not a plugin root two levels above it); keep cwd at the user's project. Every `"${CLAUDE_SKILL_DIR}/scripts/impeccable" <verb>` command in this skill and its references resolves against that base directory. In reference files, replace the skill-base-dir placeholder with this directory before running commands; it is not a shell variable. On a Windows shell without `sh`, call `"${CLAUDE_SKILL_DIR}/scripts/impeccable.cmd"` instead. The launcher runs a self-contained binary that ships next to it or is downloaded once on first run; no Node or other runtime is required. Pass a named source file or route as `--target <path>`. It loads PRODUCT.md, DESIGN.md, the matching surface brief, and native-platform guidance when applicable; follow its directives and do not rerun it.
20
+ 2. Load the request's playbook: its Commands-table reference for an explicit/implied sub-command, or [reference/new-work.md](reference/new-work.md) for a new surface or replacement visual world. Inspect target and incumbent visual truth before editing. When the app cannot run, start with committed visual-regression goldens or screenshot fixtures; verify target and freshness against current tokens, CSS, components, or assets, resolve conflicts, and compare theme/variant captures.
21
+ 3. After resolving analysis and direction, read [reference/craft-floor.md](reference/craft-floor.md) immediately before any UI edit, including small refinements. It carries the quality floor, the absolute bans, and the reflexes no detector catches. Do not load it for planning-only work.
22
+
23
+ **Launcher unavailable:** On refusal or failure, send a separate message **before the next tool call**: “Context loading did not run; I’ll read the existing project context directly.” Then read existing PRODUCT.md and DESIGN.md without inventing missing context, follow applicable steps 2–3, and continue through permitted tools. This applies to planning and editing; launcher failure alone does not block either.
24
+
25
+ ## How to design
26
+
27
+ - **The brief wins.** Honor pinned aesthetics, eras, materials, fonts, and palettes even when they conflict with a saturated-pattern warning. Redirecting a clear brief toward your taste is failure.
28
+ - **Refinement preserves; redesign replaces.** Refinement keeps the incumbent identity, behavior, copy, and everything outside scope. Ask before replacing factual copy or adding claims. Redesign keeps product truth, content, function, native affordances, and constraints, but treats the old look as evidence and anti-reference; choose a replacement world in new-work and replace DESIGN.md. Never split the difference into polish on the discarded look.
29
+ - **Visual authority is evidence, not a filename.** Missing DESIGN.md alone does not make a project greenfield; new-work decides whether to preserve, expand, or replace the incumbent world.
30
+
31
+ ## Modes
32
+
33
+ The mode names what the visitor's success looks like on this surface.
34
+
35
+ - **Persuade:** the visitor decides and acts; design is the product. Landing pages, marketing, campaigns, pricing. Earn attention and action. Ship real imagery when the brief needs it; follow the committed world, not category habit.
36
+ - **Operate:** the visitor completes a task. App UI, dashboards, editors, admin, settings, tools. Scanability, consistency, native expectations, and the real usage scene outrank expression. Brand lives in precise details.
37
+ - **Read:** the visitor understands something. Docs, articles, guides, help, changelogs. Structure for comprehension, then make the reading experience worth staying in.
38
+ - **Experience:** the visitor is inside the work itself. Portfolios, galleries, showcases. Let the artifact lead from the first viewport; the interface recedes.
39
+
40
+ Choose the mode from the requested surface, not the product, and persist it only in that surface brief. A tool's landing page is still Persuade; a fashion house's documentation is still Read; a docs index is Read, not Persuade. See [new-work.md](reference/new-work.md) for new surfaces and [operate.md](reference/operate.md) for deeper Operate/Read guidance.
41
+
42
+ ## Commands
43
+
44
+ | Command | Category | Description | Reference |
45
+ |---|---|---|---|
46
+ | `craft [feature]` | Build | Deprecated alias for an ordinary new-work request | [reference/craft.md](reference/craft.md) |
47
+ | `shape [feature]` | Build | Plan UX/UI before writing code | [reference/shape.md](reference/shape.md) |
48
+ | `init` | Build | Capture durable product context in PRODUCT.md | [reference/init.md](reference/init.md) |
49
+ | `document` | Build | Generate DESIGN.md from existing project code | [reference/document.md](reference/document.md) |
50
+ | `extract [target]` | Build | Pull reusable tokens and components into design system | [reference/extract.md](reference/extract.md) |
51
+ | `critique [target]` | Evaluate | UX design review with heuristic scoring | [reference/critique.md](reference/critique.md) |
52
+ | `audit [target]` | Evaluate | Technical quality checks (a11y, perf, responsive) | [reference/audit.md](reference/audit.md) · native: [reference/audit.native.md](reference/audit.native.md) |
53
+ | `polish [target]` | Refine | Final quality pass before shipping | [reference/polish.md](reference/polish.md) |
54
+ | `bolder [target]` | Refine | Amplify safe or bland designs | [reference/bolder.md](reference/bolder.md) |
55
+ | `quieter [target]` | Refine | Tone down aggressive or overstimulating designs | [reference/quieter.md](reference/quieter.md) |
56
+ | `distill [target]` | Refine | Strip to essence, remove complexity | [reference/distill.md](reference/distill.md) |
57
+ | `harden [target]` | Refine | Production-ready: errors, i18n, edge cases | [reference/harden.md](reference/harden.md) |
58
+ | `onboard [target]` | Refine | Design first-run flows, empty states, activation | [reference/onboard.md](reference/onboard.md) |
59
+ | `animate [target]` | Enhance | Add purposeful animations and motion | [reference/animate.md](reference/animate.md) |
60
+ | `colorize [target]` | Enhance | Add strategic color to monochromatic UIs | [reference/colorize.md](reference/colorize.md) |
61
+ | `typeset [target]` | Enhance | Improve typography hierarchy and fonts | [reference/typeset.md](reference/typeset.md) |
62
+ | `layout [target]` | Enhance | Fix spacing, rhythm, and visual hierarchy | [reference/layout.md](reference/layout.md) |
63
+ | `delight [target]` | Enhance | Add personality and memorable touches | [reference/delight.md](reference/delight.md) |
64
+ | `overdrive [target]` | Enhance | Push past conventional limits | [reference/overdrive.md](reference/overdrive.md) |
65
+ | `clarify [target]` | Fix | Improve UX copy, labels, and error messages | [reference/clarify.md](reference/clarify.md) |
66
+ | `adapt [target]` | Fix | Adapt for different devices and screen sizes | [reference/adapt.md](reference/adapt.md) · native: [reference/adapt.native.md](reference/adapt.native.md) |
67
+ | `optimize [target]` | Fix | Diagnose and fix UI performance | [reference/optimize.md](reference/optimize.md) |
68
+ | `live` | Iterate | Visual variant mode: pick elements in the browser, iterate on alternatives | [reference/live.md](reference/live.md) |
69
+ | `generate [n] [action] [element]` | Iterate | Variants, versions, or alternatives of a named element to choose from in the live browser; no manual picking | [reference/generate.md](reference/generate.md) |
70
+
71
+ Routing:
72
+
73
+ - **No argument:** read [routing.md](reference/routing.md) and present its context-aware menu; never auto-run a command.
74
+ - **Explicit or clearly implied request to run a command:** load its reference (native variant on native platforms) and follow it. Ask once if two commands fit.
75
+ - **Workflow or command-selection question:** read [Workflow questions](reference/routing.md#workflow-questions).
76
+ - **Otherwise:** treat the request as general design work. Missing PRODUCT.md routes a new surface or replacement world through init, then new-work; a narrow refinement of existing code proceeds on the incumbent implementation as `impeccable context` directs, offering init afterward rather than blocking on it.
77
+ - `teach` aliases `init`. `craft` is a deprecated alias for ordinary new-work and adds nothing. `shape` owns task discovery, then enters new-work only for visual-world and surface-concept decisions.
78
+
79
+ After init writes PRODUCT.md, resume without rerunning `impeccable context`; init loads the native platform reference itself when the platform it recorded is `ios`, `android`, or `adaptive`.
80
+
81
+ **Pin / Unpin:** `"${CLAUDE_SKILL_DIR}/scripts/impeccable" pin <pin|unpin> <command>` creates or removes a standalone `/<command>` shortcut. Report the script's result concisely; relay stderr verbatim on error.
82
+
83
+ **Hooks:** `/impeccable hooks <on|off|status|ignore-rule|ignore-file|ignore-value|reset>` manages the design detector hook for this project (auto-runs the detector after UI file edits and surfaces findings). Load [reference/hooks.md](reference/hooks.md) when the user invokes it with any argument.
84
+
85
+ **Doctor:** `/impeccable doctor` reports and repairs drift between this project's Impeccable artifacts (PRODUCT.md, DESIGN.md and its sidecar, config, surface briefs, the hook) and what this version reads. Load [reference/doctor.md](reference/doctor.md) when the user invokes it, or when they ask what is out of date, stale, or needs refreshing. A `CONTEXT_STALE` directive in Setup's output is the cheap subset of the same report; act on it there per its own instructions rather than running doctor unasked.
86
+
87
+ **Never repair drift as a side effect of a design task.** A `CONTEXT_STALE` finding is reported, not acted on, unless the user asks. The one exception is a finding marked `auto`, which the next write to that file performs anyway.
@@ -0,0 +1,318 @@
1
+ > **Additional context needed**: target platforms/devices and usage contexts.
2
+
3
+ Adapt an existing design to a different context: another screen size, device, platform, or use case. The trap is treating adaptation as scaling. The job is rethinking the experience for the new context.
4
+
5
+ **Web only** (mobile web included). Native platforms (`ios` / `android` / `adaptive`) route to [adapt.native.md](adapt.native.md) instead; if the project is native, switch to it now.
6
+
7
+ ---
8
+
9
+ ## Assess Adaptation Challenge
10
+
11
+ Understand what needs adaptation and why:
12
+
13
+ 1. **Identify the source context**:
14
+ - What was it designed for originally? (Desktop web? Mobile app?)
15
+ - What assumptions were made? (Large screen? Mouse input? Fast connection?)
16
+ - What works well in current context?
17
+
18
+ 2. **Understand target context**:
19
+ - **Device**: Mobile, tablet, desktop, TV, watch, print?
20
+ - **Input method**: Touch, mouse, keyboard, voice, gamepad?
21
+ - **Screen constraints**: Size, resolution, orientation?
22
+ - **Connection**: Fast wifi, slow 3G, offline?
23
+ - **Usage context**: On-the-go vs desk, quick glance vs focused reading?
24
+ - **User expectations**: What do users expect on this platform?
25
+
26
+ 3. **Identify adaptation challenges**:
27
+ - What won't fit? (Content, navigation, features)
28
+ - What won't work? (Hover states on touch, tiny touch targets)
29
+ - What's inappropriate? (Desktop patterns on mobile, mobile patterns on desktop)
30
+
31
+ **CRITICAL**: Adaptation is rethinking the experience for the new context, not scaling pixels.
32
+
33
+ ## Plan Adaptation Strategy
34
+
35
+ Create context-appropriate strategy:
36
+
37
+ ### Mobile Adaptation (Desktop → Mobile)
38
+
39
+ **Layout Strategy**:
40
+ - Single column instead of multi-column
41
+ - Vertical stacking instead of side-by-side
42
+ - Full-width components instead of fixed widths
43
+ - Bottom navigation instead of top/side navigation
44
+
45
+ **Interaction Strategy**:
46
+ - Touch targets 44x44px minimum (not hover-dependent)
47
+ - Swipe gestures where appropriate (lists, carousels)
48
+ - Bottom sheets instead of dropdowns
49
+ - Thumbs-first design (controls within thumb reach)
50
+ - Larger tap areas with more spacing
51
+
52
+ **Content Strategy**:
53
+ - Progressive disclosure (don't show everything at once)
54
+ - Prioritize primary content (secondary content in tabs/accordions)
55
+ - Shorter text (more concise)
56
+ - Larger text (16px minimum)
57
+
58
+ **Navigation Strategy**:
59
+ - Hamburger menu or bottom navigation
60
+ - Reduce navigation complexity
61
+ - Sticky headers for context
62
+ - Back button in navigation flow
63
+
64
+ ### Tablet Adaptation (Hybrid Approach)
65
+
66
+ **Layout Strategy**:
67
+ - Two-column layouts (not single or three-column)
68
+ - Side panels for secondary content
69
+ - Master-detail views (list + detail)
70
+ - Adaptive based on orientation (portrait vs landscape)
71
+
72
+ **Interaction Strategy**:
73
+ - Support both touch and pointer
74
+ - Touch targets 44x44px but allow denser layouts than phone
75
+ - Side navigation drawers
76
+ - Multi-column forms where appropriate
77
+
78
+ ### Desktop Adaptation (Mobile → Desktop)
79
+
80
+ **Layout Strategy**:
81
+ - Multi-column layouts (use horizontal space)
82
+ - Side navigation always visible
83
+ - Multiple information panels simultaneously
84
+ - Fixed widths with max-width constraints (don't stretch to 4K)
85
+
86
+ **Interaction Strategy**:
87
+ - Hover states for additional information
88
+ - Keyboard shortcuts
89
+ - Right-click context menus
90
+ - Drag and drop where helpful
91
+ - Multi-select with Shift/Cmd
92
+
93
+ **Content Strategy**:
94
+ - Show more information upfront (less progressive disclosure)
95
+ - Data tables with many columns
96
+ - Richer visualizations
97
+ - More detailed descriptions
98
+
99
+ ### Print Adaptation (Screen → Print)
100
+
101
+ **Layout Strategy**:
102
+ - Page breaks at logical points
103
+ - Remove navigation, footer, interactive elements
104
+ - Black and white (or limited color)
105
+ - Proper margins for binding
106
+
107
+ **Content Strategy**:
108
+ - Expand shortened content (show full URLs, hidden sections)
109
+ - Add page numbers, headers, footers
110
+ - Include metadata (print date, page title)
111
+ - Convert charts to print-friendly versions
112
+
113
+ ### Email Adaptation (Web → Email)
114
+
115
+ **Layout Strategy**:
116
+ - Narrow width (600px max)
117
+ - Single column only
118
+ - Inline CSS (no external stylesheets)
119
+ - Table-based layouts (for email client compatibility)
120
+
121
+ **Interaction Strategy**:
122
+ - Large, obvious CTAs (buttons not text links)
123
+ - No hover states (not reliable)
124
+ - Deep links to web app for complex interactions
125
+
126
+ ## Implement Adaptations
127
+
128
+ Apply changes systematically:
129
+
130
+ ### Responsive Breakpoints
131
+
132
+ Choose appropriate breakpoints:
133
+ - Mobile: 320px-767px
134
+ - Tablet: 768px-1023px
135
+ - Desktop: 1024px+
136
+ - Or content-driven breakpoints (where design breaks)
137
+
138
+ ### Layout Adaptation Techniques
139
+
140
+ - **CSS Grid/Flexbox**: Reflow layouts automatically
141
+ - **Container Queries**: Adapt based on container, not viewport
142
+ - **`clamp()`**: Fluid sizing between min and max
143
+ - **Media queries**: Different styles for different contexts
144
+ - **Display properties**: Show/hide elements per context
145
+
146
+ ### Touch Adaptation
147
+
148
+ - Increase touch target sizes (44x44px minimum)
149
+ - Add more spacing between interactive elements
150
+ - Remove hover-dependent interactions
151
+ - Add touch feedback (ripples, highlights)
152
+ - Consider thumb zones (easier to reach bottom than top)
153
+
154
+ ### Content Adaptation
155
+
156
+ - Use `display: none` sparingly (still downloads)
157
+ - Progressive enhancement (core content first, enhancements on larger screens)
158
+ - Lazy loading for off-screen content
159
+ - Responsive images (`srcset`, `picture` element)
160
+
161
+ ### Navigation Adaptation
162
+
163
+ - Transform complex nav to hamburger/drawer on mobile
164
+ - Bottom nav bar for mobile apps
165
+ - Persistent side navigation on desktop
166
+ - Breadcrumbs on smaller screens for context
167
+
168
+ **IMPORTANT**: Test on real devices. Device emulation in DevTools is helpful but not perfect.
169
+
170
+ **NEVER**:
171
+ - Hide core functionality on mobile (if it matters, make it work)
172
+ - Assume desktop = powerful device (consider accessibility, older machines)
173
+ - Use different information architecture across contexts (confusing)
174
+ - Break user expectations for platform (mobile users expect mobile patterns)
175
+ - Forget landscape orientation on mobile/tablet
176
+ - Use generic breakpoints blindly (use content-driven breakpoints)
177
+ - Ignore touch on desktop (many desktop devices have touch)
178
+
179
+ ## Verify Adaptations
180
+
181
+ Test thoroughly across contexts:
182
+
183
+ - **Real devices**: Test on actual phones, tablets, desktops
184
+ - **Different orientations**: Portrait and landscape
185
+ - **Different browsers**: Safari, Chrome, Firefox, Edge
186
+ - **Different OS**: iOS, Android, Windows, macOS
187
+ - **Different input methods**: Touch, mouse, keyboard
188
+ - **Edge cases**: Very small screens (320px), very large screens (4K)
189
+ - **Slow connections**: Test on throttled network
190
+
191
+ **Custom controls** (sliders, drag surfaces, scrollable control strips): a before/after slider can pass every width check above and still refuse to drag on iOS, so exercise each one in scope in the same batched round as the checks above:
192
+
193
+ - **Primary gesture**: Tap it and confirm it responds as designed, then drag it with the target input method; the drag must complete, not just start
194
+ - **Scroll across it**: A swipe along the page's scroll axis across the control scrolls the page or container without activating it; a drag that starts on the control along its axis moves the control, not the page. Neither failure throws an error, so try both
195
+ - **Evidence**: Say what produced the evidence: an emulated viewport, synthesized touch input through a browser tool, which engine ran it (Chromium is not Safari), or a physical device. Screenshots and resized viewports verify layout, never a gesture. Name what stayed untested and move on; unreachable hardware is a reported gap, not a blocker
196
+
197
+ When the adaptation feels native to each context, hand off to `/impeccable polish` for the final pass.
198
+
199
+ ---
200
+
201
+ ## Reference Material
202
+
203
+ The sections below were previously `responsive-design.md` and live inline now so the adapt flow has its deep responsive reference in one place.
204
+
205
+ ### Responsive Design
206
+
207
+ #### Mobile-First: Write It Right
208
+
209
+ Start with base styles for mobile, use `min-width` queries to layer complexity. Desktop-first (`max-width`) means mobile loads unnecessary styles first.
210
+
211
+ #### Breakpoints: Content-Driven
212
+
213
+ Don't chase device sizes; let content tell you where to break. Start narrow, stretch until design breaks, add breakpoint there. Three breakpoints usually suffice (640, 768, 1024px). Use `clamp()` for fluid values without breakpoints.
214
+
215
+ #### Detect Input Method, Not Just Screen Size
216
+
217
+ **Screen size doesn't tell you input method.** A laptop with touchscreen, a tablet with keyboard. Use pointer and hover queries:
218
+
219
+ ```css
220
+ /* Fine pointer (mouse, trackpad) */
221
+ @media (pointer: fine) {
222
+ .button { padding: 8px 16px; }
223
+ }
224
+
225
+ /* Coarse pointer (touch, stylus) */
226
+ @media (pointer: coarse) {
227
+ .button { padding: 12px 20px; } /* Larger touch target */
228
+ }
229
+
230
+ /* Device supports hover */
231
+ @media (hover: hover) {
232
+ .card:hover { transform: translateY(-2px); }
233
+ }
234
+
235
+ /* Device doesn't support hover (touch) */
236
+ @media (hover: none) {
237
+ .card { /* No hover state - use active instead */ }
238
+ }
239
+ ```
240
+
241
+ **Critical**: Don't rely on hover for functionality. Touch users can't hover.
242
+
243
+ #### Safe Areas: Handle the Notch
244
+
245
+ Modern phones have notches, rounded corners, and home indicators. Use `env()`:
246
+
247
+ ```css
248
+ body {
249
+ padding-top: env(safe-area-inset-top);
250
+ padding-bottom: env(safe-area-inset-bottom);
251
+ padding-left: env(safe-area-inset-left);
252
+ padding-right: env(safe-area-inset-right);
253
+ }
254
+
255
+ /* With fallback */
256
+ .footer {
257
+ padding-bottom: max(1rem, env(safe-area-inset-bottom));
258
+ }
259
+ ```
260
+
261
+ **Enable viewport-fit** in your meta tag:
262
+ ```html
263
+ <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
264
+ ```
265
+
266
+ #### Responsive Images: Get It Right
267
+
268
+ ##### srcset with Width Descriptors
269
+
270
+ ```html
271
+ <img
272
+ src="hero-800.jpg"
273
+ srcset="
274
+ hero-400.jpg 400w,
275
+ hero-800.jpg 800w,
276
+ hero-1200.jpg 1200w
277
+ "
278
+ sizes="(max-width: 768px) 100vw, 50vw"
279
+ alt="Hero image"
280
+ >
281
+ ```
282
+
283
+ **How it works**:
284
+ - `srcset` lists available images with their actual widths (`w` descriptors)
285
+ - `sizes` tells the browser how wide the image will display
286
+ - Browser picks the best file based on viewport width AND device pixel ratio
287
+
288
+ ##### Picture Element for Art Direction
289
+
290
+ When you need different crops/compositions (not just resolutions):
291
+
292
+ ```html
293
+ <picture>
294
+ <source media="(min-width: 768px)" srcset="wide.jpg">
295
+ <source media="(max-width: 767px)" srcset="tall.jpg">
296
+ <img src="fallback.jpg" alt="...">
297
+ </picture>
298
+ ```
299
+
300
+ #### Layout Adaptation Patterns
301
+
302
+ **Navigation**: Three stages: hamburger + drawer on mobile, horizontal compact on tablet, full with labels on desktop. **Tables**: Transform to cards on mobile using `display: block` and `data-label` attributes. **Progressive disclosure**: Use `<details>/<summary>` for content that can collapse on mobile.
303
+
304
+ #### Testing: Don't Trust DevTools Alone
305
+
306
+ DevTools device emulation is useful for layout but misses:
307
+
308
+ - Actual touch interactions
309
+ - Real CPU/memory constraints
310
+ - Network latency patterns
311
+ - Font rendering differences
312
+ - Browser chrome/keyboard appearances
313
+
314
+ **Test on at least**: One real iPhone, one real Android, a tablet if relevant. Cheap Android phones reveal performance issues you'll never see on simulators.
315
+
316
+ ---
317
+
318
+ **Avoid**: Desktop-first design. Device detection instead of feature detection. Separate mobile/desktop codebases. Ignoring tablet and landscape. Assuming all mobile devices are powerful.