dsh-desktop-kit 0.0.0-stage → 2.0.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 (269) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -2
  3. package/client.js +4101 -0
  4. package/cordis.patch.yml +5 -0
  5. package/docs/ARCHITECTURE.md +114 -0
  6. package/docs/COMPATIBILITY.md +61 -0
  7. package/docs/INSTALL.md +84 -0
  8. package/docs/PRIVACY.md +50 -0
  9. package/docs/ROADMAP.md +57 -0
  10. package/docs/TOKENS.md +118 -0
  11. package/docs/TROUBLESHOOTING.md +68 -0
  12. package/docs/images/hero.png +0 -0
  13. package/index.js +84 -0
  14. package/package.json +70 -4
  15. package/plugins/dsh-gkb-ru-ui/cordis.patch.yml +6 -0
  16. package/plugins/dsh-gkb-ru-ui/lib/client.js +1331 -0
  17. package/plugins/dsh-gkb-ru-ui/lib/index.js +186 -0
  18. package/plugins/dsh-gkb-ru-ui/lib/skills.js +570 -0
  19. package/plugins/dsh-gkb-ru-ui/package.json +28 -0
  20. package/plugins/dsh-gkb-ru-ui/screenshots/01-home-tiles-1440-light.png +0 -0
  21. package/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png +0 -0
  22. package/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png +0 -0
  23. package/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png +0 -0
  24. package/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png +0 -0
  25. package/plugins/dsh-gkb-ru-ui/screenshots/06-home-tiles-1440-dark.png +0 -0
  26. package/plugins/dsh-peak-guard/README.md +70 -0
  27. package/plugins/dsh-peak-guard/client.js +741 -0
  28. package/plugins/dsh-peak-guard/cordis.patch.yml +5 -0
  29. package/plugins/dsh-peak-guard/icon.svg +12 -0
  30. package/plugins/dsh-peak-guard/index.js +2 -0
  31. package/plugins/dsh-peak-guard/locale/en.json +6 -0
  32. package/plugins/dsh-peak-guard/locale/ru.json +6 -0
  33. package/plugins/dsh-peak-guard/locale/zh.json +6 -0
  34. package/plugins/dsh-peak-guard/package.json +33 -0
  35. package/plugins/dsh-peak-guard/screenshots/01-real-time-peak-start.png +0 -0
  36. package/plugins/dsh-peak-guard/screenshots/02-real-time-peak-end.png +0 -0
  37. package/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png +0 -0
  38. package/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png +0 -0
  39. package/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png +0 -0
  40. package/plugins/dsh-peak-guard/screenshots/05-peak-card-768-light.png +0 -0
  41. package/plugins/dsh-peak-guard/screenshots/06-peak-card-390-light.png +0 -0
  42. package/plugins/dsh-peak-guard/screenshots/07-live-preview-check.png +0 -0
  43. package/plugins/dsh-peak-guard/screenshots/07-pre-peak-1440-light.png +0 -0
  44. package/plugins/dsh-peak-guard/screenshots/08-peak-start-1440-light.png +0 -0
  45. package/plugins/dsh-peak-guard/screenshots/09-peak-end-1440-light.png +0 -0
  46. package/plugins/dsh-peak-guard/screenshots/10-pre-peak-card-1440-light.png +0 -0
  47. package/plugins/dsh-peak-guard/screenshots/11-pre-peak-card-1440-dark.png +0 -0
  48. package/plugins/dsh-peak-guard/screenshots/12-pre-peak-card-390-light.png +0 -0
  49. package/plugins/dsh-peak-guard/screenshots/qa-report.json +74 -0
  50. package/plugins/dsh-profile-transfer/README.md +62 -0
  51. package/plugins/dsh-profile-transfer/bootstrap/01-INSTALL.cmd +7 -0
  52. package/plugins/dsh-profile-transfer/bootstrap/README-ARCHIVE.md +54 -0
  53. package/plugins/dsh-profile-transfer/bootstrap/README-/320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/232/320/220.md +42 -0
  54. package/plugins/dsh-profile-transfer/bootstrap/install-on-clean-machine.ps1 +119 -0
  55. package/plugins/dsh-profile-transfer/bootstrap//320/243/320/241/320/242/320/220/320/235/320/236/320/222/320/230/320/242/320/254.cmd +5 -0
  56. package/plugins/dsh-profile-transfer/client.js +806 -0
  57. package/plugins/dsh-profile-transfer/cordis.patch.yml +3 -0
  58. package/plugins/dsh-profile-transfer/icon.svg +13 -0
  59. package/plugins/dsh-profile-transfer/index.js +375 -0
  60. package/plugins/dsh-profile-transfer/locale/en.json +6 -0
  61. package/plugins/dsh-profile-transfer/locale/ru.json +6 -0
  62. package/plugins/dsh-profile-transfer/locale/zh.json +6 -0
  63. package/plugins/dsh-profile-transfer/package.json +36 -0
  64. package/plugins/dsh-profile-transfer/screenshots/01-settings-transfer-1440-light.png +0 -0
  65. package/plugins/dsh-profile-transfer/screenshots/02-settings-transfer-preview-1440-light.png +0 -0
  66. package/plugins/dsh-profile-transfer/screenshots/03-settings-transfer-1440-dark.png +0 -0
  67. package/plugins/dsh-profile-transfer/screenshots/04-settings-transfer-390-light.png +0 -0
  68. package/plugins/dsh-profile-transfer/screenshots/05-settings-transfer-768-light.png +0 -0
  69. package/plugins/dsh-profile-transfer/screenshots/06-settings-transfer-390-dark.png +0 -0
  70. package/plugins/dsh-profile-transfer/screenshots/07-settings-transfer-export-result.png +0 -0
  71. package/plugins/dsh-profile-transfer/screenshots/08-settings-transfer-workspaces-1440-light.png +0 -0
  72. package/plugins/dsh-profile-transfer/screenshots/09-settings-transfer-workspaces-1440-dark.png +0 -0
  73. package/plugins/dsh-profile-transfer/screenshots/10-settings-transfer-workspaces-390-light.png +0 -0
  74. package/plugins/dsh-profile-transfer/transfer.js +1004 -0
  75. package/plugins/dsh-project-memory/README.md +71 -0
  76. package/plugins/dsh-project-memory/cordis.patch.yml +4 -0
  77. package/plugins/dsh-project-memory/icon.svg +12 -0
  78. package/plugins/dsh-project-memory/index.js +1240 -0
  79. package/plugins/dsh-project-memory/locale/en.json +6 -0
  80. package/plugins/dsh-project-memory/locale/ru.json +6 -0
  81. package/plugins/dsh-project-memory/locale/zh.json +6 -0
  82. package/plugins/dsh-project-memory/package.json +26 -0
  83. package/plugins/dsh-session-move/README.md +67 -0
  84. package/plugins/dsh-session-move/client.js +719 -0
  85. package/plugins/dsh-session-move/cordis.patch.yml +5 -0
  86. package/plugins/dsh-session-move/icon.svg +14 -0
  87. package/plugins/dsh-session-move/index.js +497 -0
  88. package/plugins/dsh-session-move/locale/en.json +6 -0
  89. package/plugins/dsh-session-move/locale/ru.json +6 -0
  90. package/plugins/dsh-session-move/locale/zh.json +6 -0
  91. package/plugins/dsh-session-move/package.json +31 -0
  92. package/plugins/dsh-session-move/screenshots/01-row-menu-1440-light.png +0 -0
  93. package/plugins/dsh-session-move/screenshots/02-dialog-1440-light.png +0 -0
  94. package/plugins/dsh-session-move/screenshots/03-dialog-390-light.png +0 -0
  95. package/plugins/dsh-session-move/screenshots/04-dialog-1440-dark.png +0 -0
  96. package/plugins/dsh-session-move/screenshots/05-drag-highlight-1440-light.png +0 -0
  97. package/plugins/dsh-session-move/screenshots/06-drop-ungrouped-highlight.png +0 -0
  98. package/plugins/dsh-session-move/screenshots/07-after-drop-ungrouped.png +0 -0
  99. package/plugins/dsh-session-move/screenshots/08-move-dialog.png +0 -0
  100. package/plugins/dsh-session-move/screenshots/09-moved-to-second-workspace.png +0 -0
  101. package/plugins/dsh-session-move/screenshots/qa-report.json +62 -0
  102. package/plugins/dsh-skill-autopilot/cordis.patch.yml +3 -0
  103. package/plugins/dsh-skill-autopilot/index.js +444 -0
  104. package/plugins/dsh-skill-autopilot/package.json +19 -0
  105. package/plugins/dsh-token-lab/cordis.patch.yml +3 -0
  106. package/plugins/dsh-token-lab/lib/client.js +504 -0
  107. package/plugins/dsh-token-lab/lib/index.js +275 -0
  108. package/plugins/dsh-token-lab/package.json +26 -0
  109. package/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png +0 -0
  110. package/plugins/dsh-token-lab/screenshots/02-token-lab-1440-dark.png +0 -0
  111. package/skills/code-review-checklist/SKILL.md +55 -0
  112. package/skills/content-writing/README.md +87 -0
  113. package/skills/content-writing/SKILL.md +85 -0
  114. package/skills/content-writing/assets/checklists/fact-check.md +53 -0
  115. package/skills/content-writing/assets/checklists/publish.md +65 -0
  116. package/skills/content-writing/assets/checklists/social.md +40 -0
  117. package/skills/content-writing/assets/templates/article.md +47 -0
  118. package/skills/content-writing/assets/templates/brief.md +44 -0
  119. package/skills/content-writing/assets/templates/doctor-card.md +41 -0
  120. package/skills/content-writing/assets/templates/image-prompts.md +128 -0
  121. package/skills/content-writing/assets/templates/post-telegram.md +36 -0
  122. package/skills/content-writing/assets/templates/post-vk.md +42 -0
  123. package/skills/content-writing/assets/templates/press-release.md +56 -0
  124. package/skills/content-writing/assets/templates/science-pop-note.md +55 -0
  125. package/skills/content-writing/assets/templates/service-card.md +46 -0
  126. package/skills/content-writing/references/anti-ai-style.md +248 -0
  127. package/skills/content-writing/references/editing.md +185 -0
  128. package/skills/content-writing/references/fact-checking.md +205 -0
  129. package/skills/content-writing/references/government-medical.md +246 -0
  130. package/skills/content-writing/references/images.md +212 -0
  131. package/skills/content-writing/references/journalism.md +252 -0
  132. package/skills/content-writing/references/process.md +123 -0
  133. package/skills/content-writing/references/quick-recipes.md +99 -0
  134. package/skills/content-writing/references/rules.md +85 -0
  135. package/skills/content-writing/references/science-popular.md +218 -0
  136. package/skills/content-writing/references/seo-content.md +172 -0
  137. package/skills/content-writing/references/social-media.md +253 -0
  138. package/skills/content-writing/references/sources.md +49 -0
  139. package/skills/content-writing/references/templates.md +291 -0
  140. package/skills/context-economy/SKILL.md +60 -0
  141. package/skills/context-economy/references/long-session.md +35 -0
  142. package/skills/context-economy/references/token-math.md +42 -0
  143. package/skills/context-economy/references/tool-recipes.md +34 -0
  144. package/skills/database-safety/SKILL.md +47 -0
  145. package/skills/debugging-playbook/SKILL.md +42 -0
  146. package/skills/design-critique/SKILL.md +65 -0
  147. package/skills/design-critique/references/a11y.md +25 -0
  148. package/skills/design-critique/references/diagnoses.md +33 -0
  149. package/skills/design-critique/references/quick-tests.md +30 -0
  150. package/skills/design-critique/references/report-template.md +63 -0
  151. package/skills/design-critique/references/rubric-fast.md +73 -0
  152. package/skills/dev-workflow/SKILL.md +48 -0
  153. package/skills/dev-workflow/references/definition-of-done.md +44 -0
  154. package/skills/dev-workflow/references/memory-and-boundaries.md +31 -0
  155. package/skills/dev-workflow/references/stages.md +67 -0
  156. package/skills/git-and-ci/SKILL.md +60 -0
  157. package/skills/pg-upgrade-verify/SKILL.md +67 -0
  158. package/skills/project-deep-dive/SKILL.md +45 -0
  159. package/skills/project-deep-dive/references/recon-commands.md +90 -0
  160. package/skills/project-deep-dive/references/section-templates.md +104 -0
  161. package/skills/project-deep-dive/references/tool-and-process.md +86 -0
  162. package/skills/project-memory-maintenance/SKILL.md +55 -0
  163. package/skills/project-memory-maintenance/references/api-and-checklist.md +99 -0
  164. package/skills/project-memory-maintenance/references/journal-template.md +50 -0
  165. package/skills/project-memory-maintenance/references/section-rules.md +59 -0
  166. package/skills/release-and-deploy/SKILL.md +53 -0
  167. package/skills/requirements-and-planning/SKILL.md +49 -0
  168. package/skills/requirements-and-planning/references/antipatterns-and-checklist.md +20 -0
  169. package/skills/requirements-and-planning/references/process-steps.md +52 -0
  170. package/skills/requirements-and-planning/references/templates-and-estimates.md +29 -0
  171. package/skills/security-review/SKILL.md +40 -0
  172. package/skills/seo/README.md +60 -0
  173. package/skills/seo/SKILL.md +77 -0
  174. package/skills/seo/assets/README.md +66 -0
  175. package/skills/seo/assets/scripts/LICENSE-playwright-core.txt +202 -0
  176. package/skills/seo/assets/scripts/README.md +179 -0
  177. package/skills/seo/assets/scripts/lib/args.mjs +105 -0
  178. package/skills/seo/assets/scripts/lib/browser.mjs +620 -0
  179. package/skills/seo/assets/scripts/lib/zip.mjs +191 -0
  180. package/skills/seo/assets/scripts/seo-audit.mjs +1675 -0
  181. package/skills/seo/assets/snippets/jsonld-breadcrumb.json +30 -0
  182. package/skills/seo/assets/snippets/jsonld-faq.json +39 -0
  183. package/skills/seo/assets/snippets/jsonld-medical-clinic.json +49 -0
  184. package/skills/seo/assets/snippets/jsonld-medical-webpage.json +33 -0
  185. package/skills/seo/assets/snippets/jsonld-organization.json +74 -0
  186. package/skills/seo/assets/snippets/jsonld-physician.json +46 -0
  187. package/skills/seo/assets/snippets/meta.blade.php +61 -0
  188. package/skills/seo/assets/snippets/robots.txt +61 -0
  189. package/skills/seo/assets/snippets/sitemap-urlset-example.xml +72 -0
  190. package/skills/seo/assets/snippets/sitemap.xml +36 -0
  191. package/skills/seo/references/antipatterns.md +66 -0
  192. package/skills/seo/references/audit-checklist.md +319 -0
  193. package/skills/seo/references/content-seo.md +204 -0
  194. package/skills/seo/references/eeat-medical.md +219 -0
  195. package/skills/seo/references/measurement.md +250 -0
  196. package/skills/seo/references/on-page.md +214 -0
  197. package/skills/seo/references/page-templates.md +56 -0
  198. package/skills/seo/references/stack-recipes.md +695 -0
  199. package/skills/seo/references/structured-data.md +487 -0
  200. package/skills/seo/references/technical-seo.md +296 -0
  201. package/skills/service-desk-conventions/SKILL.md +52 -0
  202. package/skills/service-desk-db-safety/SKILL.md +63 -0
  203. package/skills/service-desk-release/SKILL.md +61 -0
  204. package/skills/service-desk-testing/SKILL.md +61 -0
  205. package/skills/service-desk-ui/SKILL.md +52 -0
  206. package/skills/skills-router/SKILL.md +53 -0
  207. package/skills/skills-router/references/applying-skills.md +25 -0
  208. package/skills/skills-router/references/routing-matrix.md +52 -0
  209. package/skills/testing-strategy/SKILL.md +52 -0
  210. package/skills/ui-design-system/SKILL.md +50 -0
  211. package/skills/ui-design-system/references/accessibility-and-responsive.md +50 -0
  212. package/skills/ui-design-system/references/tokens-and-components.md +67 -0
  213. package/skills/ui-design-system/references/visual-qa.md +44 -0
  214. package/skills/web-research/SKILL.md +47 -0
  215. package/skills/web-research/references/answer-and-citations.md +60 -0
  216. package/skills/web-research/references/query-recipes.md +44 -0
  217. package/skills/wow-design/SKILL.md +89 -0
  218. package/skills/wow-design/assets/kit/README.md +195 -0
  219. package/skills/wow-design/assets/kit/assets/css/base.css +158 -0
  220. package/skills/wow-design/assets/kit/assets/css/components.css +1001 -0
  221. package/skills/wow-design/assets/kit/assets/css/fonts.css +73 -0
  222. package/skills/wow-design/assets/kit/assets/css/pages.css +737 -0
  223. package/skills/wow-design/assets/kit/assets/css/tokens.css +218 -0
  224. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-golos-text.txt +93 -0
  225. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-lora.txt +93 -0
  226. package/skills/wow-design/assets/kit/assets/fonts/LICENSE-unbounded.txt +93 -0
  227. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-400-normal.woff2 +0 -0
  228. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-500-normal.woff2 +0 -0
  229. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-600-normal.woff2 +0 -0
  230. package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-700-normal.woff2 +0 -0
  231. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-400-normal.woff2 +0 -0
  232. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-500-normal.woff2 +0 -0
  233. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-600-normal.woff2 +0 -0
  234. package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-700-normal.woff2 +0 -0
  235. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-italic.woff2 +0 -0
  236. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-normal.woff2 +0 -0
  237. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-500-normal.woff2 +0 -0
  238. package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-600-normal.woff2 +0 -0
  239. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-400-normal.woff2 +0 -0
  240. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-500-normal.woff2 +0 -0
  241. package/skills/wow-design/assets/kit/assets/fonts/lora-latin-600-normal.woff2 +0 -0
  242. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-400-normal.woff2 +0 -0
  243. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-500-normal.woff2 +0 -0
  244. package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-600-normal.woff2 +0 -0
  245. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-400-normal.woff2 +0 -0
  246. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-500-normal.woff2 +0 -0
  247. package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-600-normal.woff2 +0 -0
  248. package/skills/wow-design/assets/kit/assets/js/kit.js +550 -0
  249. package/skills/wow-design/assets/kit/pages/dashboard.html +539 -0
  250. package/skills/wow-design/assets/kit/pages/hospital.html +430 -0
  251. package/skills/wow-design/assets/kit/showcase.html +1164 -0
  252. package/skills/wow-design/assets/scripts/LICENSE-axe-core.txt +362 -0
  253. package/skills/wow-design/assets/scripts/LICENSE-playwright-core.txt +202 -0
  254. package/skills/wow-design/assets/scripts/README.md +312 -0
  255. package/skills/wow-design/assets/scripts/audit.mjs +1200 -0
  256. package/skills/wow-design/assets/scripts/capture.mjs +337 -0
  257. package/skills/wow-design/assets/scripts/package.json +30 -0
  258. package/skills/wow-design/references/anti-patterns.md +252 -0
  259. package/skills/wow-design/references/critique-rubric.md +262 -0
  260. package/skills/wow-design/references/design-brief-template.md +48 -0
  261. package/skills/wow-design/references/inspiration.md +203 -0
  262. package/skills/wow-design/references/presets.md +99 -0
  263. package/skills/wow-design/references/principles.md +371 -0
  264. package/skills/wow-design/references/quick-presets.md +50 -0
  265. package/skills/wow-design/references/report-template.md +21 -0
  266. package/skills/wow-design/references/stack-recipes.md +96 -0
  267. package/skills/wow-design/references/visual-qa.md +82 -0
  268. package/skills/wow-design/references/wow-levers.md +43 -0
  269. package/tools/skill-cost.mjs +76 -0
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: context-economy
3
+ description: "Экономия токенов и контекста: какие навыки и references грузить, как читать файлы и логи без перерасхода, когда сжимать сессию. Применять при длинных задачах, больших файлах, отладке и любых вопросах про расход токенов."
4
+ whenToUse: "Когда задача длинная или многофайловая, когда контекст приближается к лимиту, когда нужно загрузить навык/справочник, или когда пользователь спрашивает про расход токенов."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Контекст-экономика — ядро
9
+
10
+ > ≈1k токенов. Это ядро; приёмы и цифры — в `references/`.
11
+
12
+ ## 0. Когда применять
13
+ - Длинная/многошаговая задача, работа с большими файлами и логами.
14
+ - Контекст > 50–60% окна, приближается компакция.
15
+ - Выбор, какой навык или reference загрузить.
16
+ - Вопросы «почему так дорого», «сколько токенов», «как сократить расход».
17
+
18
+ ## 1. Правила загрузки навыков
19
+ 1. Сначала **ядро** навыка (`SKILL.md`). References — только когда без них нельзя принять решение.
20
+ 2. Не более **3 навыков** на задачу; если тянет больше — выбери 1–2 главных, остальные по мере надобности.
21
+ 3. Не грузи навык «на всякий случай» и не перезагружай уже загруженный.
22
+ 4. Каждый reference читай **целиком один раз**, а не по кускам; если файл > 40 КБ — сначала оглавление/заголовки.
23
+ 5. Если ядро и reference противоречат — побеждает более специфичный документ, но безопасность важнее.
24
+
25
+ ## 2. Чтение файлов и данных
26
+ 1. Сначала `grep`/`glob` — потом `read` только нужного диапазона (`offset`/`limit`).
27
+ 2. Не читай файл повторно, если он не менялся; держи в голове номера строк.
28
+ 3. Для больших логов/JSON — сначала структура (ключи, размеры), потом выборка.
29
+ 4. Не выводи в контекст целые деревья каталогов: `glob` по шаблону точнее.
30
+ 5. Перед чтением 100 КБ спроси: «какое решение это изменит?» Нет ответа — не читай.
31
+
32
+ ## 3. Экономия на инструментах
33
+ 1. Один точный вызов лучше трёх «на всякий случай».
34
+ 2. Долгие операции — в фон, результат забирай один раз.
35
+ 3. Для проверки — минимальный воспроизводимый тест, а не весь набор.
36
+ 4. Не дублируй результат инструмента в ответе целиком: цитируй 1–3 значимые строки.
37
+
38
+ ## 4. Сжатие и память
39
+ 1. При 60–70% окна: зафиксируй состояние в память проекта (решения, файлы, следующий шаг), затем сжимай.
40
+ 2. В памяти — ссылки на файлы и выводы, а не копии кода.
41
+ 3. После компакции первым делом перечитай свой план и список изменённых файлов, а не всю переписку.
42
+ 4. Не храни в контексте промежуточные версии текста — только финальные.
43
+
44
+ ## 5. Ответы
45
+ 1. Пиши плотно: решение, проверка, риск. Без пересказа задания.
46
+ 2. Длинные листинги — в файл/артефакт, в чат — сводка.
47
+ 3. Не повторяй один и тот же факт в плане, ходе и итоге.
48
+
49
+ ## 6. Куда грузить дальше
50
+ | Нужно | Файл | ≈токенов |
51
+ |---|---|---|
52
+ | Цифры, лимиты, формулы оценки | `references/token-math.md` | ≈1k |
53
+ | Приёмы для конкретных инструментов | `references/tool-recipes.md` | ≈1k |
54
+ | Чек-лист длинной сессии | `references/long-session.md` | ≈0.8k |
55
+
56
+ ## 7. Гейт перед сдачей
57
+ - [ ] Загружены только нужные навыки и references.
58
+ - [ ] Нет повторных чтений неизменённых файлов.
59
+ - [ ] Контекст не превышает 70% без плана сжатия.
60
+ - [ ] Итог содержит решение и проверку, а не пересказ.
@@ -0,0 +1,35 @@
1
+ # long-session — часть навыка context-economy
2
+
3
+ ≈0.8k токенов. Читать перед сжатием длинной сессии или при приближении к лимиту.
4
+
5
+ ## Порог
6
+ - 60% окна — план сжатия.
7
+ - 75% — сжимай на ближайшем безопасном шаге (после завершённого действия, не посреди правки).
8
+
9
+ ## Протокол сжатия
10
+ 1. Собери **handoff** (5–9 строк):
11
+ - цель и критерий готовности;
12
+ - что уже сделано (файлы/артефакты);
13
+ - что проверено и каким тестом;
14
+ - открытые вопросы и риски;
15
+ - следующий конкретный шаг.
16
+ 2. Запиши handoff в память проекта (journal) или в файл `HANDOFF.md`.
17
+ 3. Только потом запускай компакцию.
18
+ 4. После сжатия перечитай handoff и список изменённых файлов; не перечитывай переписку.
19
+
20
+ ## Что нельзя терять
21
+ - Пути к ключевым файлам и команды запуска.
22
+ - Результаты тестов/аудита (числа, а не «всё ок»).
23
+ - Принятые решения и почему отвергнуты альтернативы.
24
+ - Незакоммиченные изменения и бэкапы.
25
+
26
+ ## Признаки, что пора сжимать
27
+ - Ответы становятся общими, теряются детали.
28
+ - Приходится повторно читать те же файлы.
29
+ - Контекст > 90k токенов, а задача ещё не закончена.
30
+ - Появились длинные простыни логов в истории.
31
+
32
+ ## Дешёвая альтернатива сжатию
33
+ - Закрыть завершённую подзадачу коротким итогом.
34
+ - Удалить из истории промежуточные версии текста (оставить финал).
35
+ - Перейти на узкую задачу: «сейчас только тест X».
@@ -0,0 +1,42 @@
1
+ # token-math — часть навыка context-economy
2
+
3
+ ≈0.9k токенов. Читать, когда нужно оценить расход, сравнить варианты или посчитать бюджет.
4
+
5
+ ## Оценка без токенизатора
6
+ | Материал | Символов на токен | Байт на токен |
7
+ |---|---|---|
8
+ | Русский текст | ≈2.2–2.8 | ≈4.4–5.6 (UTF-8, 2 байта/буква) |
9
+ | Английский текст | ≈3.8–4.2 | ≈3.8–4.2 |
10
+ | Код (JS/PHP/SQL) | ≈3.0–3.5 | ≈3.0–3.5 |
11
+ | Markdown с таблицами | ≈2.5–3.0 | — |
12
+
13
+ Практическое правило: **токены ≈ байты / 3.2** для смешанного русского markdown; это оценка сверху, погрешность 10–20%.
14
+
15
+ Пример: SKILL.md 12 КБ → ≈3 800 токенов (12 000 / 3.2). Если такой файл грузится в каждой задаче — это ≈3.8k на задачу.
16
+
17
+ ## Бюджеты
18
+ | Объект | Комфортно | Предел |
19
+ |---|---|---|
20
+ | Ядро навыка (`SKILL.md`) | 2–4k токенов | 6k |
21
+ | Один reference | 1–4k | 8k |
22
+ | Навыков на задачу | 1–3 | 5 |
23
+ | Дайджест памяти проекта | 500–900 | 2 000 |
24
+ | Ответ агента | 300–800 | 2 000 |
25
+
26
+ ## Контекстное окно
27
+ - Типичное окно DeepSeek: **128 000** токенов; у части моделей — 64k.
28
+ - Рабочий порог: 60% (≈77k) — начинай думать о сжатии; 75% (≈96k) — сжимай.
29
+ - Запас нужен на ответ и инструменты: не заходи за 85%.
30
+ - Стоимость запроса растёт линейно с контекстом: каждый лишний 1k в системном промпте умножается на число шагов.
31
+
32
+ ## Что реально экономит
33
+ 1. Компактные ядра навыков: −60–70% против полного текста.
34
+ 2. Загрузка references по требованию, а не сразу.
35
+ 3. Чтение диапазонов вместо файлов целиком.
36
+ 4. Один фон-джоб вместо серии синхронных вызовов.
37
+ 5. Компакция с записанным состоянием, а не «забыть и начать заново».
38
+
39
+ ## Чего не делать
40
+ - Не считать «страницу = 500 токенов»: страница плотного текста — 800–1200.
41
+ - Не экономить на проверке безопасности/данных — цена ошибки выше токенов.
42
+ - Не резать references, которые меняют решение: это ложная экономия.
@@ -0,0 +1,34 @@
1
+ # tool-recipes — часть навыка context-economy
2
+
3
+ ≈1k токенов. Читать, когда нужны конкретные приёмы экономии в инструментах DSH.
4
+
5
+ ## Поиск и чтение
6
+ ```
7
+ grep pattern: "class Foo|function bar" include: "*.php" # сначала границы
8
+ read file_path offset: 120 limit: 40 # диапазон, не весь файл
9
+ glob pattern: "src/**/*.test.ts" # файлы, не каталоги
10
+ ```
11
+ - 3–5 точных grep дешевле одного чтения 100-КБ файла.
12
+ - После правки перечитывай только изменённый участок.
13
+ - Если файл уже менялся в сессии — помни номера строк; повторное чтение только после внешней правки.
14
+
15
+ ## Команды и логи
16
+ - Длинный вывод: `... | Select-Object -Last 80` или `2>&1 | Select-String "error"`.
17
+ - Для сборки/тестов проси краткий формат (`--reporter=dot`, `--no-progress`).
18
+ - Повторяющиеся проверки — в один скрипт, а не в пять команд.
19
+ - Фоновые задачи: запусти, продолжай работу, забери результат один раз.
20
+
21
+ ## Веб
22
+ - `web_search` — 1–4 запроса за вызов, не по одному.
23
+ - Повторно не тяни тот же URL; сохрани нужные цитаты сразу.
24
+ - `web_fetch` — только конкретная страница, не «весь сайт».
25
+
26
+ ## Плагины и конфиги
27
+ - `cordis_inspect_query` точечно: один сервис/слот, а не весь каталог.
28
+ - Не запрашивай типы, если хватает сигнатуры метода.
29
+ - Перед правкой плагина проверь его `package.json` и точку входа.
30
+
31
+ ## Долгие сессии
32
+ - Каждые 10–15 шагов фиксируй: что сделано, какие файлы изменены, следующий шаг.
33
+ - Перед компакцией — короткий handoff в 5 строк.
34
+ - После компакции не восстанавливай всю переписку: план + изменённые файлы + последний тест.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: database-safety
3
+ description: "Безопасность БД: бэкап и проверка, запрет destructive без разрешения, аддитивные миграции, копия живой базы, восстановление."
4
+ whenToUse: "Перед миграциями, сидами, массовыми UPDATE/DELETE, импортом, восстановлением и релизом с изменениями схемы или данных."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Безопасность БД
9
+
10
+ ## 0. Когда применять
11
+ - Миграции, сиды, импорт, массовые `UPDATE/DELETE`, восстановление, релиз со схемой/данными, инцидент.
12
+
13
+ ## 1. Главное
14
+
15
+ **Железные правила:**
16
+ - **Боевая БД неприкосновенна для экспериментов.** Тесты — отдельная БД на той же СУБД, что прод.
17
+ - **Destructive — только с явным разрешением пользователя И проверенным бэкапом; без обоих запрещено:** `DROP/TRUNCATE`, `db:wipe`, `drop database`, `migrate:fresh/reset/refresh`, `migrate:rollback` без плана, массовые `UPDATE/DELETE` без WHERE, пересоздание контейнера БД.
18
+ - Бэкап без проверки = бэкапа нет: `pg_restore --list`, `PRAGMA integrity_check` или тестовое восстановление.
19
+ - Миграции аддитивные (таблица/колонка/индекс), с `down()`; применённые не редактировать; схема на проде — после копии, при риске — maintenance.
20
+ - Многозаписные — в транзакции; гонки — `lockForUpdate()`; массовые — батчами; тяжёлые — `EXPLAIN`.
21
+ - Инспекция прода — только read-only; не запускай прод-команды с dev-машины.
22
+
23
+ **Бэкап (проверь восстановлением):**
24
+ - PostgreSQL: `pg_dump -Fc -f backup_$(date +%F_%H%M).dump "$DATABASE_URL"` → `pg_restore --list backup.dump | head`.
25
+ - MySQL: `mysqldump --single-transaction --routines --triggers db > backup.sql`.
26
+ - SQLite: `sqlite3 app.db ".backup 'backup.db'"` → `PRAGMA integrity_check;`.
27
+ - Копия вне сервера; `php artisan migrate:status`, `php artisan migrate --pretend` — до изменений.
28
+
29
+ **Перед миграцией/релизом:**
30
+ 1. Сравни наборы миграций старой/новой версии, прочитай новые (drop/rename/NOT NULL/типы).
31
+ 2. `--pretend`/SQL-план + прогон на копии живой БД (`pg-upgrade-verify`).
32
+ 3. Бэкап и проверка.
33
+ 4. Выкатка (maintenance при риске) → smoke + сверка счётчиков.
34
+
35
+ **Восстановление:** останови приложение; восстанавливай в пустую БД; проверь целостность, счётчики, smoke; живую не перезаписывай без разрешения, старый бэкап не удаляй до проверки.
36
+
37
+ **Гигиена:** секреты — в `.env`/хранилище, не в коде/гите/логах; PII — не в тестовых данных/скриншотах (фабрики/анонимизация); ежедневный бэкап + проверка + копия вне сервера, минимум прав. Инцидент: стоп записи, снимок, не затирать бэкапы, зафиксировать, сообщить.
38
+
39
+ ## 2. Куда грузить дальше
40
+ Смежные: `pg-upgrade-verify`, `service-desk-db-safety`, `release-and-deploy`.
41
+
42
+ ## 3. Гейт перед сдачей
43
+ - [ ] На destructive — явное разрешение и проверенный бэкап.
44
+ - [ ] Боевая не тронута; эксперименты на отдельной БД.
45
+ - [ ] Миграции аддитивные, с `down()`, проверены на копии; `--pretend` прочитан.
46
+ - [ ] План отката/восстановления проверен; maintenance при риске.
47
+ - [ ] После — smoke, счётчики, чистые логи; секреты и PII не утекли.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: debugging-playbook
3
+ description: "Отладка бага: воспроизведение, факты и логи, изоляция, одна гипотеза, фикс в причине, регрессионный тест и проверка."
4
+ whenToUse: "Когда что-то не работает: падает тест, ошибка в логах, поведение не совпадает с ожидаемым или баг только на проде."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Плейбук отладки
9
+
10
+ ## 0. Когда применять
11
+ - Ошибка, красный тест, «не работает» без деталей; поведение ≠ ожидаемое.
12
+ - Баг только на проде/у части пользователей; нужна причина, а не маскировка симптома.
13
+
14
+ ## 1. Главное
15
+ 1. **Симптом:** ожидалось / произошло; где (URL, экран, команда), шаги, частота, окружение, версия.
16
+ 2. **Факты, а не догадки:** полный текст ошибки и стек; логи (`storage/logs/laravel.log`, `journalctl -u <service> -n 200 --no-pager`, браузер); состояние БД; конфиг; недавние изменения (`git log --oneline -10`, `git diff`, `git status`).
17
+ 3. **Минимальное воспроизведение:** один тест/запрос/сценарий; убери лишнее; не воспроизводится — собери факты, не меняй код наугад.
18
+ 4. **Сузить область:** бинарный поиск (отключай middleware/события/кеш, комментируй блоки, `git bisect`); сравни «работает / не работает»; проверь кеши (`php artisan config:clear`, `route:clear`, `view:clear`, `cache:clear`), порты, данные (NULL, кодировки, FK), права, `.env`, версии.
19
+ 5. **Гипотеза → проверка:** одна за раз, «если …, то …»; подтверждай логом/дампом/тестом.
20
+ 6. **Фикс:** минимальный, в причине, а не в симптоме. Добавь **регрессионный тест**: без фикса красный, с фиксом зелёный.
21
+ 7. **Проверка:** исходный сценарий на реальных данных/экране; соседние сценарии; полный набор тестов.
22
+ 8. **Закрыть:** причина и фикс — в память/CHANGELOG; как предотвратить повтор (валидация, guard, тест, алерт).
23
+
24
+ **Стоп-правила:**
25
+ - Не отлаживай на боевой БД; только чтение или копия. Деструктивные эксперименты запрещены.
26
+ - Не отключай auth/CSRF/права, чтобы «проверить»; не коммить `dd`/`var_dump`/временные логи; не удаляй улики.
27
+ - Прод-баг: сравни конфиг, версию, данные и кеши с локалью; не воспроизводи на живых пользователях.
28
+
29
+ **Частые ловушки:**
30
+ - «Помогло после очистки кеша» / «после перезапуска» — причина в кеше, состоянии или деплое.
31
+ - Только на проде — конфиг/версия/данные/права.
32
+ - Тест зелёный, баг есть — тест проверяет не то поведение.
33
+
34
+ ## 2. Куда грузить дальше
35
+ Смежные: `testing-strategy`, `code-review-checklist`.
36
+
37
+ ## 3. Гейт перед сдачей
38
+ - [ ] Есть воспроизведение и подтверждённая причина (факт, не догадка).
39
+ - [ ] Фикс в причине, минимальный; симптом исчез на реальном сценарии.
40
+ - [ ] Регрессионный тест падает без фикса и проходит с ним; полный набор зелёный.
41
+ - [ ] Соседние сценарии проверены; нет временного кода/логов/`dd`.
42
+ - [ ] Причина, фикс и профилактика записаны в память/CHANGELOG.
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: design-critique
3
+ description: "Дизайн-критик: аудит готового UI по 12 критериям, скриншоты, axe, правки «до/после»; вердикт SHIP/NEEDS WORK/REDESIGN."
4
+ whenToUse: "Оценить интерфейс, понять «почему выглядит дёшево», ревью страницы/дашборда/формы, сравнить варианты, поднять UI до WOW."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # DESIGN-CRITIQUE — дизайн-критик
9
+
10
+ > Строгий, но справедливый арт-директор: видишь то, что не видит автор, и превращаешь «нормально»
11
+ > в «дорого». Формула: что вижу → почему плохо → как исправить (в px/rem/токенах).
12
+
13
+ ## 1. Контекст и «до»
14
+ Когда: оценка, второй взгляд перед сдачей, сравнение 2–3 вариантов.
15
+ Аудитория, задача экрана, что важнее (скорость/доверие/конверсия/плотность) — без этого «красиво» нет.
16
+ Собери «до»:
17
+ `node ../wow-design/assets/scripts/capture.mjs <file|url> --name before --out <dir>`
18
+ `node ../wow-design/assets/scripts/audit.mjs <file|url> --out <dir>`
19
+ Нужны 1440 light, 390, dark; смотри PNG через `read_image`.
20
+
21
+ ## 2. Быстрые тесты (10 минут)
22
+ 5 секунд · squint/blur 8px · grayscale · zoom 200% · 390/768 · Tab/Escape · dark · axe.
23
+ Что ловит и пороги — `references/quick-tests.md`.
24
+
25
+ ## 3. Рубрика: 12 критериев, 1–5
26
+ К1 впечатление 15% · К2 иерархия 12% · К3 типографика 12% · К4 цвет/контраст 10% · К5 сетка 10% ·
27
+ К6 воздух 8% · К7 компоненты/состояния 8% · К8 консистентность 7% · К9 детали 6% · К10 адаптив 5% ·
28
+ К11 доступность 4% · К12 оригинальность 3%.
29
+ Балл = Σ(оценка×вес); 5 — Linear/Stripe/Apple, 3 — «нормально», 1 — сломано.
30
+ **Сдача: ≥4.4/5 и все ≥4.** Блокеры вне баллов: axe critical/serious, overflow 390, контраст <4.5,
31
+ сломанные состояния. Дескрипторы — `references/rubric-fast.md`.
32
+
33
+ ## 4. Приоритеты и фиксы
34
+ P0: нечитаемый контраст, сломанный мобильный, нет иерархии, AI-slop, нерабочие состояния, axe.
35
+ P1: типографика, воздух, ритм, тени/радиусы, отступы, слабый первый экран.
36
+ P2: микродетали, motion, selection/scrollbar/focus.
37
+ Каждый пункт: что вижу (скрин/координата) → почему → фикс со значениями → приоритет.
38
+ Не «современнее», а «H1 48→72px; радиус 24→14; +48px воздуха». P0+P1 → переснять → «до/после».
39
+ Диагнозы — `references/diagnoses.md`.
40
+
41
+ ## 5. Доступность
42
+ Контраст 4.5:1 (крупный/границы 3:1); Tab/focus-visible/Escape/focus trap; alt, `aria-label`, `<label>`;
43
+ не только цветом; reduced-motion; axe 0 critical/serious. Детали — `references/a11y.md`.
44
+
45
+ ## 6. Нужно → файл → ≈токенов
46
+ | Нужно | Файл | ≈токенов |
47
+ |---|---|---|
48
+ | Рубрика, дескрипторы, подсчёт | `rubric-fast.md` | 2.2k |
49
+ | Тесты за 10 минут | `quick-tests.md` | 0.9k |
50
+ | Симптом → лечение | `diagnoses.md` | 1k |
51
+ | Доступность | `a11y.md` | 0.7k |
52
+ | Шаблон отчёта | `report-template.md` | 1k |
53
+ | Полная рубрика | `../wow-design/references/critique-rubric.md` | 7.4k |
54
+
55
+ ## 7. Гейт
56
+ - [ ] Скриншоты 1440/768/390, light/dark.
57
+ - [ ] Рубрика ≥4.4, все ≥4.
58
+ - [ ] Axe 0 critical/serious.
59
+ - [ ] 390: overflow 0, тапы ≥44.
60
+ - [ ] P0 закрыты; есть «до/после».
61
+ - [ ] «Что уже хорошо» — 3–5 пунктов.
62
+
63
+ ## 8. Отчёт
64
+ Вердикт SHIP/NEEDS WORK/REDESIGN · балл и минимум · впечатление за 5 сек · P0/P1/P2 с фиксами ·
65
+ что хорошо · проверено · после правок. Формат — `references/report-template.md`.
@@ -0,0 +1,25 @@
1
+ # Доступность: обязательный чек-лист
2
+
3
+ > Часть навыка design-critique. ≈0.7k токенов. Читать, когда: проверяешь доступность и нужно
4
+ > не забыть ни один пункт; axe critical/serious — блокер сдачи.
5
+
6
+ - [ ] **Контраст:** текст ≥4.5:1; крупный (≥24px или ≥18.66px bold) ≥3:1; иконки и границы
7
+ контролов ≥3:1. `--faint` — только декор.
8
+ - [ ] **Клавиатура:** все интерактивные элементы доступны, `focus-visible` видим, порядок логичен.
9
+ Модалка держит фокус (focus trap), закрывается Escape, после закрытия фокус возвращается.
10
+ - [ ] **Семантика:** landmarks (`header/nav/main/footer`), один `h1`, порядок заголовков без
11
+ пропусков, `lang="ru"`, skip-link; кнопка — `<button>`, ссылка — `<a>`.
12
+ - [ ] **Изображения и иконки:** у изображений alt (декоративное — `alt=""`), у иконок-кнопок
13
+ `aria-label`, декоративные иконки — `aria-hidden="true"`.
14
+ - [ ] **Не только цветом:** статусы дублируются текстом/иконкой; проверить grayscale.
15
+ - [ ] **Формы:** `<label for>` у каждого поля, ошибки программно связаны (`aria-invalid`,
16
+ `aria-describedby`), placeholder не заменяет лейбл, `autocomplete` где уместно.
17
+ - [ ] **Motion:** `prefers-reduced-motion` уважается; контент виден без анимации.
18
+ - [ ] **axe:** 0 critical/serious; critical/serious — блокер, minor — в P1/P2.
19
+
20
+ ## Частые провалы
21
+ - `outline:none` без замены — клавиатура «слепая».
22
+ - Серый текст 2.4–4.3:1 на фоне; акцентный мелкий текст <4.5:1.
23
+ - `<div onclick>` вместо кнопки; действия только по hover.
24
+ - Ошибка только цветом/тостом, без текста у поля.
25
+ - Модалка без `role="dialog"`, `aria-modal` и возврата фокуса.
@@ -0,0 +1,33 @@
1
+ # Частые диагнозы и лечение
2
+
3
+ > Часть навыка design-critique. ≈1k токенов. Читать, когда: слышишь «выглядит дёшево/шаблонно/каша»
4
+ > и нужен точный диагноз с конкретными правками.
5
+
6
+ | Симптом | Диагноз | Лечение |
7
+ |---|---|---|
8
+ | «Выглядит как шаблон» | нет характера: дефолтные радиусы/цвета/шрифт | 1 signature-деталь, serif display, свой акцент, асимметрия |
9
+ | «Дёшево» | мало воздуха, всё в рамках, мелкие заголовки | ×1.5–2 к отступам секций, H1 больше на 30–60%, контрастнее иерархия |
10
+ | «Каша» | нет маршрута взгляда, всего поровну | 1 главный акцент на экран, приглушить второстепенное (muted), убрать лишние рамки |
11
+ | «Серо и скучно» | только нейтрали, нет тёплого/акцента | 1 акцент + тёплый полутон (медь/терракота), тонкие линии, зерно 2% |
12
+ | «Пёстро» | много акцентов и цветов | 60-30-10: нейтрали 60%, вторичный 30%, акцент 10% |
13
+ | «Тяжело читать» | длинная строка, мелкий текст, низкий контраст | 60–72ch, 16–18px body, 1.6 line-height, контраст ≥4.5 |
14
+ | «Дёргается» | анимации ради анимаций, разные easing | только hover/reveal, 160–260ms, один easing, reduced-motion |
15
+ | «Неудобно» | нет состояний, мелкие тапы, таблица ломается | states, 44px тапы, `.table-wrap`, явные CTA |
16
+ | «Мобильный ужас» | десктопный layout сжат | мобильная композиция: стек, порядок, скрыть декор, sticky CTA |
17
+
18
+ ## Быстрая проверка «AI-slop» за 5 секунд
19
+ 1. Фиолетово-синий градиент / цветные блобы? → нет.
20
+ 2. Три одинаковые карточки с иконками в первом экране? → нет.
21
+ 3. Заголовок 20–24px при body 16px? → нет иерархии.
22
+ 4. Серый текст ниже 4.5:1 / подписи `#999`? → нечитаемо.
23
+ 5. Отступы 13/17/22px? → несогласованно.
24
+ 6. Эмодзи, иконки-ракеты, стекло, радиусы 24px у всего? → шаблон.
25
+ 7. Lorem ipsum / «инновационные решения»? → нет контента.
26
+ 8. Нет focus-visible / только hover? → недоступно.
27
+
28
+ Хотя бы один пункт «да» — P0-блокер: до рубрики 4.4 не допускается.
29
+
30
+ ## Не переусердствуй
31
+ - **Стерильный минимализм** — тоже дёшево: без иерархии и характера белый экран не спасает.
32
+ - **Погоня за «дорого»** — всё serif и бежевое без акцента и цифр = «йога-студия», а не клиника.
33
+ - **Красота в ущерб функции** — контраст, кегль, состояния и доступность не приносятся в жертву.
@@ -0,0 +1,30 @@
1
+ # Быстрые тесты за 10 минут
2
+
3
+ > Часть навыка design-critique. ≈0.9k токенов. Читать, когда: проводишь 10-минутную диагностику
4
+ > перед оценкой по рубрике и нужны пороги.
5
+
6
+ | Тест | Как | Что ловит | Порог |
7
+ |---|---|---|---|
8
+ | **5 секунд** | Открыть, отвернуться, посмотреть | Непонятно, что это и что делать | за 5 сек читаются смысл + главное действие |
9
+ | **Squint** | Прищуриться / blur 8px | Провалы иерархии, «серая каша» | главный акцент виден, блоки различимы |
10
+ | **Grayscale** | DevTools → Rendering → Grayscale / `filter:grayscale(1)` | Всё держится только на цвете | структура и статусы понятны без цвета |
11
+ | **200% zoom** | Ctrl+= до 200% | Мелкий текст, поломки сетки | текст читаем, ничего не обрезано |
12
+ | **390px** | DevTools device mode 390×844 | Overflow, мелкие тапы, обрезка | `scrollWidth ≤ innerWidth`, тапы ≥44px |
13
+ | **768px** | Планшет | Промежуточные поломки сетки | плитки не рвутся, меню работает |
14
+ | **Dark** | Переключить `data-theme=dark` | Инверсия, нечитаемый акцент, белые SVG | контраст AA, слои и тени читаются |
15
+ | **Keyboard** | Tab/Shift+Tab/Escape/Enter | Нет фокуса, ловушки, нерабочие действия | фокус виден везде, Escape закрывает модалку |
16
+ | **axe** | `node ~/.dsh/skills/wow-design/assets/scripts/audit.mjs <file>` | Контраст, alt, aria, landmarks | critical/serious = 0 |
17
+ | **Reduced motion** | DevTools → Emulate prefers-reduced-motion | Контент, скрытый анимацией | контент виден, анимаций нет |
18
+
19
+ ## Как смотреть скриншоты
20
+ 1. `read_image` каждого PNG — не «по памяти», а реально открыть.
21
+ 2. Первый взгляд 5 секунд: что это, для кого, куда нажать; что цепляет первым.
22
+ 3. Squint: видна ли иерархия или всё слилось.
23
+ 4. Grayscale: остаётся ли структура без цвета.
24
+ 5. 390: нет обрезаний, скролла вбок, мелких тапов, «сжатого десктопа».
25
+ 6. Dark: фон/поверхности/контраст/акцент — отдельная палитра, не инверсия.
26
+ 7. Сравни с референсом из брифа: тот же уровень «дорого»?
27
+ 8. Выпиши 5–10 правок с числами, а не «сделать красивее».
28
+
29
+ ## Мини-набор, если времени нет
30
+ 5 секунд + 390px + контраст/axe + keyboard. Эти четыре теста ловят большинство P0.
@@ -0,0 +1,63 @@
1
+ # Шаблон отчёта дизайн-ревью
2
+
3
+ > Часть навыка design-critique. ≈1k токенов. Читать, когда: оформляешь ревью и нужен формат
4
+ > с оценкой, вердиктом, P0/P1/P2 и «до/после».
5
+
6
+ ```markdown
7
+ # Дизайн-ревью: <страница / компонент / продукт>
8
+ **Контекст:** <аудитория; задача экрана; что важнее — доверие / скорость / плотность / конверсия>
9
+ **Материалы:** <пути к скриншотам: 1440 light, 390, dark; ссылка/файл>
10
+ **Вердикт:** SHIP / NEEDS WORK / REDESIGN
11
+
12
+ ## Оценка
13
+ | # | Критерий | Вес | Балл | Комментарий (1 строка) |
14
+ |---|---|---|---|---|
15
+ | К1 | Первое впечатление / концепция | 15% | 5 | ... |
16
+ | К2 | Иерархия и маршрут взгляда | 12% | 4 | ... |
17
+ | К3 | Типографика | 12% | 4 | ... |
18
+ | К4 | Цвет и контраст | 10% | 4 | ... |
19
+ | К5 | Сетка, выравнивание, ритм | 10% | 4 | ... |
20
+ | К6 | Воздух и плотность | 8% | 5 | ... |
21
+ | К7 | Компоненты и состояния | 8% | 4 | ... |
22
+ | К8 | Консистентность | 7% | 5 | ... |
23
+ | К9 | Детали и полировка | 6% | 4 | ... |
24
+ | К10 | Адаптив и мобильный | 5% | 4 | ... |
25
+ | К11 | Доступность | 4% | 4 | ... |
26
+ | К12 | Оригинальность vs польза | 3% | 4 | ... |
27
+ **Итог:** X.XX / 5 · минимум по критериям: Y · блокеры: нет/есть
28
+
29
+ ## Первое впечатление (5 секунд)
30
+ <Что понятно сразу; что пришлось искать; какое чувство производит экран>
31
+
32
+ ## P0 — блокеры (без них не сдаём)
33
+ 1. **Что вижу:** <...> (скрин: <путь>)
34
+ **Почему:** <...>
35
+ **Фикс:** <селектор/значение/токен: H1 48→72px, contrast #999→--ink-2>
36
+ 2. ...
37
+
38
+ ## P1 — важное (до сдачи)
39
+ 1. ...
40
+
41
+ ## P2 — полировка (после сдачи, если есть время)
42
+ 1. ...
43
+
44
+ ## Что уже хорошо (обязательно 3–5 пунктов)
45
+ - ...
46
+
47
+ ## Проверено
48
+ - [ ] 1440 desktop light · [ ] 390 mobile · [ ] 768 tablet · [ ] dark
49
+ - [ ] 5 сек / squint / grayscale / 200% zoom
50
+ - [ ] keyboard/focus · [ ] axe critical/serious = 0 · [ ] reduced-motion
51
+ - [ ] нет horizontal overflow на 390
52
+
53
+ ## После правок
54
+ <новые скриншоты, повторный балл, что исправлено>
55
+ ```
56
+
57
+ ## Тон и формат
58
+ - Пиши в терминах экрана, а не кода: «три равных акцента», а не «bad hierarchy».
59
+ - Всегда давай значение: «H1 до 72–88px», «радиус 24→14px», «строка 110→66ch».
60
+ - Не больше 5–7 правок за итерацию.
61
+ - Оценивай результат, а не намерение.
62
+ - «Что уже хорошо» — обязательно 3–5 пунктов, иначе ревью не принимается.
63
+ - Если правит другой исполнитель — отдай P0/P1 с точными значениями и критериями приёмки.
@@ -0,0 +1,73 @@
1
+ # Рубрика-инструмент: 12 критериев, дескрипторы, подсчёт
2
+
3
+ > Часть навыка design-critique. ≈2.2k токенов. Читать, когда: оцениваешь UI по 12 критериям, нужны
4
+ > дескрипторы уровней 5/3/1, формула балла, блокеры и правила критика.
5
+
6
+ ## Правила критика
7
+ 1. **Контекст раньше красоты:** аудитория, задача экрана, приоритет (доверие/скорость/плотность).
8
+ 2. **Каждое замечание — с доказательством:** что вижу (скрин/координата) → почему → фикс в px/rem/токенах.
9
+ 3. **Сначала блокеры:** P0 до P1/P2, даже если P2 «обиднее».
10
+ 4. **Хвалить обязательно:** 3–5 пунктов, что уже работает.
11
+ 5. **5–7 правок за итерацию**, не больше: иначе исполнитель распыляется.
12
+ 6. **Оценивай результат, а не намерение.** «Задумано красиво» не считается.
13
+ 7. **Сомневаешься 4/3 — ставь 3; 4/5 — ставь 4.** 5 — только уровень Linear/Stripe/Apple.
14
+ 8. Каждая итерация заканчивается скриншотом; без «до/после» критика не принимается.
15
+
16
+ Шкала: **5** — уровень Linear/Stripe/Apple; **4** — крепкий профессиональный; **3** — «нормально,
17
+ без характера»; **2** — заметно дёшево; **1** — сломано.
18
+
19
+ ## Веса и что проверяет
20
+ | # | Критерий | Вес | Что проверяет |
21
+ |---|---|---|---|
22
+ | К1 | Первое впечатление / концепция | 15% | понятно ли за 5 секунд, есть ли идея и характер |
23
+ | К2 | Иерархия и маршрут взгляда | 12% | одна главная точка, 3 уровня, путь к CTA |
24
+ | К3 | Типографика | 12% | шкала, строка 60–72ch, интерлиньяж, трекинг, кириллица |
25
+ | К4 | Цвет и контраст | 10% | 60-30-10, один акцент, AA, семантика статусов |
26
+ | К5 | Сетка, выравнивание, ритм | 10% | 12 колонок, единые отступы, «ничего не гуляет» |
27
+ | К6 | Воздух и плотность | 8% | дышит ли страница, группировка, нет «каши» |
28
+ | К7 | Компоненты и состояния | 8% | все состояния, формы, таблицы, модалки, empty |
29
+ | К8 | Консистентность | 7% | один язык на экранах и в обеих темах |
30
+ | К9 | Детали и полировка | 6% | оптика, иконки, цифры, фокус, скроллбар |
31
+ | К10 | Адаптив и мобильный | 5% | 390/768/1440, overflow, тач-цели, композиция |
32
+ | К11 | Доступность | 4% | контраст, клавиатура, семантика, alt/aria, motion |
33
+ | К12 | Оригинальность vs польза | 3% | не шаблон, но и не арт ради арта |
34
+
35
+ ## Дескрипторы: 5 / 3 / 1 и типичный провал
36
+ | # | 5 | 3 | 1 | Провал |
37
+ |---|---|---|---|---|
38
+ | К1 | смысл и характер сразу, signature-деталь | понятно, но нейтрально/шаблонно, фокус размыт | хаос или пустота, доверия нет | центрированный hero с общими словами и 3 равными CTA |
39
+ | К2 | H1 → lead → CTA, один акцент | много равных элементов, маршрут ищешь | иерархии нет, «серая каша» | два primary-CTA, акцентные заголовки секций |
40
+ | К3 | ясная шкала, 60–72ch, безупречная кириллица | нерегулярная шкала, длинная строка | 5 размеров, 4 жирности, капс в абзацах | один гротеск на всё, одинаковые размеры |
41
+ | К4 | спокойная палитра, акцент ≤10%, AA, ч/б держит структуру | 2–3 акцента, спорный контраст | кислотная палитра, текст нечитаем | `#999` на белом, 4 акцентных цвета |
42
+ | К5 | одна сетка, ровные края, предсказуемый ритм | края гуляют, отступы «на глаз» | всё рассыпано, нет осей | три карточки разной высоты, «плавающие» CTA |
43
+ | К6 | воздух идеален, группы читаются | местами прилипло/пусто | контент свален в кучу | 24px между секциями, 0 внутри карточек |
44
+ | К7 | все состояния, живые формы, empty/loading | базовые есть, focus/disabled спорные | нет подписей, div-кнопки, формы без валидации | красивые кнопки без состояний, empty «Нет данных» |
45
+ | К8 | один визуальный язык, темы без сюрпризов | разные радиусы/тени/иконки от экрана к экрану | три набора кнопок и два шрифта | showcase и dashboard как разные продукты |
46
+ | К9 | уровень Linear/Stripe, ничего не обрезано | недокручено: оптика, отступы, сырые детали | небрежно, сломанные иконки | иконка ниже базовой линии во всех кнопках |
47
+ | К10 | 390 читается, тапы крупные, таблица внутри | сжатый десктоп, мелкий текст, узкие отступы | на 390 неюзабельно | overflow из-за таблицы и 12px текст |
48
+ | К11 | AA, видимый фокус, семантика, reduced-motion | фокус частичный, подписи слабые, axe minor | axe critical, недоступно с клавиатуры | `outline:none` и серый текст 2.4:1 |
49
+ | К12 | запоминается одной деталью, но очевиден | «видел у 20 компаний», детали нет | копия или дизайн мешает пользоваться | необычный hero, скрывающий, чем занимается клиника |
50
+
51
+ ## Приоритеты
52
+ - **P0 (блокеры):** нечитаемый контраст, сломанный мобильный, нет иерархии, AI-slop, нерабочие
53
+ состояния, критичные axe-нарушения. Без них нельзя сдавать.
54
+ - **P1 (важное):** типографика, воздух, ритм, тени/радиусы, неконсистентные отступы, слабый первый экран.
55
+ - **P2 (полировка):** микродетали, motion, selection/scrollbar/focus, редакционные штрихи.
56
+
57
+ ## Подсчёт и пороги
58
+ ```
59
+ Итог = Σ(оценка_i × вес_i), i = 1..12
60
+ Сдача: Итог ≥ 4.40 И min(оценка_i) ≥ 4 И нет P0-блокеров
61
+ ```
62
+ Итог округляй до 2 знаков. Пример: 5,4,5,4,4,5,4,5,4,4,4,3 → 4.39, но К12=3 → **не сдано**
63
+ (ни один критерий <4).
64
+ 4.44 без блокеров — сдано. 4.6 с axe critical — **не сдано**.
65
+
66
+ **Блокеры вне баллов:** axe critical/serious > 0; горизонтальный overflow на 390; смысловой текст
67
+ ниже 4.5:1; сломанные состояния (кнопка без фокуса, форма без ошибок); битые шрифты/изображения,
68
+ ошибки в консоли на ключевых страницах.
69
+
70
+ ## Вердикт
71
+ - **SHIP** — гейт пройден: ≥4.4, все ≥4, блокеров нет.
72
+ - **NEEDS WORK** — есть P0/P1 или балл ниже порога, но основа рабочая.
73
+ - **REDESIGN** — несколько P0 в структуре/иерархии: нужна переработка, а не полировка.