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,53 @@
1
+ ---
2
+ name: skills-router
3
+ description: "Старт любой задачи: классифицировать работу и загрузить все применимые скиллы до действий — код, дизайн, SEO, БД, тесты, безопасность, релиз, плагины."
4
+ whenToUse: "В начале КАЖДОЙ задачи, даже мелкой правки: определить тип работы и загрузить нужные скиллы через tool skill до чтения кода и правок."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Skills-router — навыки применяются сами
9
+ > ≈1 600 токенов. Это ядро; детали — по ссылкам и только когда реально нужны.
10
+
11
+ ## 0. Когда применять
12
+ - В начале ЛЮБОЙ задачи — до чтения кода, данных, конфигов; сомневаешься — загрузи и просмотри.
13
+ - «Маленькая задача» — тоже: мелочи ломают данные, дизайн и SEO.
14
+
15
+ ## 1. Протокол (жёсткие правила)
16
+ 1. **Триаж до действий:** что меняем; стек; риски (данные, доступ, деньги, прод, необратимость); что увидит пользователь; как проверим; артефакты (вопросы — `references/routing-matrix.md`).
17
+ 2. **Загрузи ВСЕ применимые скиллы** через tool `skill` ДО работы; 2–3 — норма. Несколько типов — всё: «лендинг» = `wow-design` + `seo` + `testing-strategy`.
18
+ 3. В плане/первом сообщении **перечисли скиллы и почему**.
19
+ 4. В отчёте — **какие гейты пройдены**: тесты, скриншоты, SEO, бэкап, ревью; ни один не применим — скажи прямо.
20
+ 5. Проектные скиллы уточняют универсальные; при конфликте побеждает проектный — но не в ущерб безопасности.
21
+ 6. Актуальное/сегодня/цены/версии/законы — `web-research` (`web_search` + `web_fetch`, дата и ссылки): память модели не источник свежих фактов.
22
+
23
+ ### Быстрая маршрутизация
24
+ | Триггер | Скиллы |
25
+ |---|---|
26
+ | Любая задача: старт → финал | `skills-router` + `dev-workflow`; в конце `code-review-checklist` |
27
+ | Планирование, ТЗ, анализ, оценка, сравнение вариантов | `requirements-and-planning` (+ `dev-workflow`) |
28
+ | Факты, новости, цены, версии, законы, документация | `web-research` + профильный по теме |
29
+ | Вёрстка, UI, компонент, лендинг, дашборд, адаптив | `wow-design`; ревью — `design-critique`; стили и токены — `ui-design-system` |
30
+ | Любой веб-артефакт: страница, шаблон, URL, мета, блог | `seo` (+ `wow-design`, если UI) |
31
+ | Laravel / PHP / Blade / Eloquent | `php-laravel` (если установлен) + `wow-design`/`seo` по задаче |
32
+ | Bitrix / Aspro / шаблоны сайта | `bitrix-aspro` (если установлен) + `seo` |
33
+ | React / JS / TS / Node / плагины DSH | `javascript-typescript` (если установлен) + `security-review` + `testing-strategy` |
34
+ | БД, SQL, миграции, импорт/восстановление | `database-safety` (+ `service-desk-db-safety`); бэкап до миграций |
35
+ | Тесты, baseline, баг | `testing-strategy` / `service-desk-testing`; баг — `debugging-playbook` |
36
+ | Права, аутентификация, загрузки, секреты | `security-review` (+ `code-review-checklist`) |
37
+ | Релиз, деплой, git, CI, откат | `release-and-deploy` + `git-and-ci` (+ `service-desk-release`) |
38
+ | Word/Excel/PDF, изображения | `office` / `img` (если установлены) |
39
+
40
+ > Навыки с пометкой «если установлен» не входят в `dsh-desktop-kit`. Вызывай их, только когда они есть в каталоге навыков сессии; иначе применяй правила из профиля/памяти проекта, не тратя вызов на ошибку.
41
+
42
+ ## 2. Куда грузить дальше
43
+ | Нужно | Файл | ≈токенов |
44
+ |---|---|---|
45
+ | Триаж, полная матрица, минимум по артефактам | references/routing-matrix.md | ≈1 700 |
46
+ | Что считается «применил скилл», антипаттерны | references/applying-skills.md | ≈810 |
47
+
48
+ ## 3. Гейт перед сдачей
49
+ - [ ] Триаж выполнен в начале, скиллы зафиксированы в плане.
50
+ - [ ] Все применимые загружены и использованы, а не только `description`.
51
+ - [ ] Взяты их гейты: тесты, скриншоты 1440/768/390 + light/dark, SEO, бэкап, ревью.
52
+ - [ ] В отчёте — скиллы и результаты гейтов.
53
+ - [ ] Пропущенный скилл — осознанное решение, не забывчивость.
@@ -0,0 +1,25 @@
1
+ # Что значит «применил скилл» и антипаттерны
2
+
3
+ > Часть навыка skills-router. ≈810 токенов. Читать, когда: нужно понять, засчитано ли применение скилла, или проверить себя на антипаттерны перед сдачей.
4
+
5
+ ## Что считается «применил скилл»
6
+ - Прочитал `SKILL.md` и релевантные `references/` (не только каталог).
7
+ - Взял оттуда конкретные правила/шаблоны/чек-листы и применил их в работе.
8
+ - Прошёл гейт/DoD из скилла: тесты, скриншоты, SEO-аудит, бэкап, ревью и т.д.
9
+ - Указал в отчёте: «Применено: wow-design (гейт рубрики 4.6), seo (title/meta/schema), testing-strategy (unit+E2E)».
10
+
11
+ ## Антипаттерны (не делать)
12
+ - «Загружу скилл, если вспомню» — триаж обязателен в начале.
13
+ - Прочитать только `description` и считать, что применил.
14
+ - Пропустить `seo`, потому что «это просто правка шаблона» — именно шаблоны ломают индексацию.
15
+ - Пропустить `database-safety`, потому что «миграция аддитивная» — бэкап всё равно обязателен.
16
+ - Игнорировать `wow-design`, потому что «это внутренняя админка» — качество UI влияет на скорость работы.
17
+ - Применять веб-скиллы (`css-scss`, `seo`) к не-веб задачам (скрипт, документ, БД) — шум и потеря времени.
18
+ - Загрузить 5 скиллов и не применить ни один.
19
+
20
+ ## Самопроверка перед сдачей
21
+ - [ ] Триаж выполнен в начале, список скиллов зафиксирован.
22
+ - [ ] Все применимые скиллы загружены и реально использованы.
23
+ - [ ] Гейты пройдены: тесты / скриншоты / SEO / бэкап / ревью — что применимо.
24
+ - [ ] В отчёте перечислены применённые скиллы и результаты гейтов.
25
+ - [ ] Если скилл не применим — это осознанное решение, а не забывчивость.
@@ -0,0 +1,52 @@
1
+ # Триаж и матрица маршрутизации
2
+
3
+ > Часть навыка skills-router. ≈1 700 токенов. Читать, когда: нужно классифицировать задачу, выбрать скиллы по типу работы или по артефакту.
4
+ >
5
+ > Внешние навыки (`php-laravel`, `bitrix-aspro`, `css-scss`, `javascript-typescript`, `react`, `office`, `img`) вызывай только если они есть в каталоге навыков сессии; иначе применяй правила из профиля/памяти проекта.
6
+
7
+ ## Триаж за 60 секунд
8
+ - **Что создаём/меняем?** Код, интерфейс, контент, данные, конфиг, документ, инфраструктура, плагин.
9
+ - **Какой стек?** PHP/Laravel, Bitrix/Aspro, JS/TS/React, Python, PowerShell, SQL, HTML/CSS.
10
+ - **Какие риски?** Данные/БД, безопасность/доступ, деньги, публичный контент, прод, необратимость.
11
+ - **Что пользователь увидит/измерит?** UI, SEO, скорость, отчёты, API.
12
+ - **Как проверим?** Тесты, скриншоты, аудит, ручной сценарий, бэкап/восстановление.
13
+ - **Какие артефакты на выходе?** Файлы, архив, релиз, документация, скриншоты.
14
+
15
+ ## Полная матрица «тип задачи → скиллы»
16
+
17
+ | Тип задачи / триггер | Обязательные скиллы |
18
+ |---|---|
19
+ | **Любая задача** (старт и финал) | `skills-router`, `dev-workflow`; в конце — `code-review-checklist` |
20
+ | Планирование, ТЗ, анализ, декомпозиция, оценка, исследование | `requirements-and-planning` (+ `dev-workflow`) |
21
+ | Актуальные факты, новости, «что сейчас», цены, версии, законы, документация, конкуренты | `web-research` (+ профильный: `content-writing` / `seo` / `php-laravel` / `bitrix-aspro` по теме) |
22
+ | Любая вёрстка, UI, компонент, лендинг, дашборд, тема, адаптив | `wow-design`; ревью/апгрейд — `design-critique`; стили/каскад — `css-scss` |
23
+ | Любой веб-артефакт: страница, шаблон, URL, мета, контент, миграция сайта, лендинг, блог | `seo` (SEO по умолчанию) + `wow-design` (если UI) |
24
+ | Laravel / PHP / Blade / Eloquent / artisan | `php-laravel`; при UI — `wow-design`; при контенте — `seo` |
25
+ | Bitrix / Aspro / шаблоны сайта | `bitrix-aspro` + `seo` (+ `css-scss` при стилях) |
26
+ | React / JS / TS / Vite / Node / плагины DSH | `javascript-typescript` (+ `react` для React, `security-review` для плагинов) |
27
+ | БД, SQL, миграции, импорт/экспорт, восстановление | `database-safety` (+ проектный `service-desk-db-safety`); перед миграциями — бэкап |
28
+ | Тесты (unit/feature/E2E/визуальные), baseline | `testing-strategy` (+ `service-desk-testing` для Service Desk) |
29
+ | Баг, падение теста, «не работает» | `debugging-playbook`; тесты — `testing-strategy` |
30
+ | Аутентификация, авторизация, роли, загрузки, платежи, секреты | `security-review` (+ `code-review-checklist`) |
31
+ | Релиз, деплой, версия, архив, откат | `release-and-deploy` (+ `git-and-ci`, `service-desk-release` при необходимости) |
32
+ | Git, ветки, CI, теги, коммиты | `git-and-ci` |
33
+ | Документы Word/Excel/PowerPoint/PDF | `office` + соответствующий `office-*` |
34
+ | Генерация изображений | `img` |
35
+ | Проверка/аудит готового кода/UI | `code-review-checklist` + `design-critique` (UI) + `seo` (веб) |
36
+ | Анализ/исследование/сравнение вариантов | `requirements-and-planning` + `dev-workflow`; выводы фиксировать в память |
37
+
38
+ Несколько строк применимы одновременно — загрузи все: «новый лендинг на Laravel» → `php-laravel` + `wow-design` + `seo` + `testing-strategy` + `code-review-checklist`.
39
+
40
+ ## Минимальный набор по артефактам
41
+
42
+ | Артефакт | Минимум |
43
+ |---|---|
44
+ | Новая страница/лендинг | `wow-design` + `seo` (+ `css-scss`, если правятся стили) |
45
+ | Новый компонент/UI-кит | `wow-design` (+ `react` / `javascript-typescript`) |
46
+ | Правка шаблона Bitrix | `bitrix-aspro` + `seo` (+ `wow-design` для UI) |
47
+ | Миграция/изменение схемы | `database-safety` + `php-laravel` (+ бэкап) |
48
+ | Новый API/форма/авторизация | `php-laravel` + `security-review` + `testing-strategy` |
49
+ | Плагин/скрипт автоматизации | `javascript-typescript` + `security-review` + `testing-strategy` |
50
+ | Релизный архив/выкатка | `release-and-deploy` + `git-and-ci` (+ `code-review-checklist`) |
51
+ | Тексты/статьи/анкеты для сайта | `seo` + `requirements-and-planning` (+ `wow-design`, если вёрстка) |
52
+ | Аудит существующего | `code-review-checklist` (+ `design-critique` / `seo` по объекту) |
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: testing-strategy
3
+ description: "Тесты до и после правки: baseline, пирамида unit/feature/E2E, герметичная БД, регрессия на баг, скриншоты, axe, CI."
4
+ whenToUse: "Когда меняешь код и нужен baseline, выбираешь уровень теста, настраиваешь CI, чинишь упавший/flaky тест или проверяешь UI и права."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Стратегия тестирования (любой стек)
9
+
10
+ ## 0. Когда применять
11
+ - Перед правкой — baseline; после — сравнение.
12
+ - Выбор уровня теста, настройка/починка CI, flaky или медленный набор.
13
+
14
+ ## 1. Главное
15
+
16
+ **Baseline (до правки):** команда, число тестов/assertion, падения и skip; после — не хуже. Типовые: `vendor/bin/phpunit`, `npm test`, `npx playwright test`; вывод — в файл.
17
+
18
+ **Пирамида:**
19
+ 1. **Unit** — чистая логика, без БД/сети.
20
+ 2. **Feature** — HTTP/сценарии, валидация, права; та же СУБД, что прод; отдельная тестовая БД, миграции с нуля.
21
+ 3. **E2E/UI** — Playwright: вход, ключевые сценарии, ошибки форм; Chromium + мобильный viewport.
22
+ 4. **Визуальные** — `toHaveScreenshot`; обновлять осознанно, дифф смотреть.
23
+ 5. **Доступность** — axe-core: контраст, aria, клавиатура, фокус.
24
+ 6. **Smoke** — 5–10 проверок после деплоя (вход, список, создание, права).
25
+
26
+ **Правила:**
27
+ - **Герметичность:** не боевой `.env`, не сеть, не текущая дата; отдельная БД, фабрики, фиксированное время.
28
+ - Проверяй поведение, не реализацию; приватные методы не трогай.
29
+ - Баг → воспроизводящий тест (красный), затем фикс (зелёный).
30
+ - Flaky не игнорируй и не «лечи» retry: ищи гонку/время/данные.
31
+ - Быстро: без `sleep`, реальных писем/очередей (`Mail::fake`, `Queue::fake`).
32
+ - Нет необязательного сервиса/файла → `markTestSkipped('причина')`, не падение.
33
+ - Тестовые данные без PII; после теста — очистка или транзакция.
34
+ - Ассерты значимые; один тест — одно поведение; негативный сценарий тоже.
35
+ - Не отключай auth/CSRF/права ради зелёного теста.
36
+
37
+ **Фича:** feature (happy path + права admin/user/guest + валидация/границы), unit на логику, E2E/скриншот+axe для UI, миграции — на копии.
38
+
39
+ **CI:** линтер (`php -l`, `npm run lint`) → статанализ → unit+feature на реальной СУБД → E2E на стенде → артефакты при падении. Падение = красный CI; без `|| true` и «известных падений» без тикета.
40
+
41
+ **Отчёт:** команды, тесты/assertion, упало/скипнуто и почему, что проверено руками.
42
+
43
+ ## 2. Куда грузить дальше
44
+ Смежные: `debugging-playbook` (баг), `pg-upgrade-verify` (БД), `code-review-checklist` (финал).
45
+
46
+ ## 3. Гейт перед сдачей
47
+ - [ ] Baseline снят, после — не хуже.
48
+ - [ ] Тест на баг падал до фикса и проходит после (или причина, почему нельзя).
49
+ - [ ] Герметично: отдельная БД, без сети/времени/боевого `.env`, без PII.
50
+ - [ ] Полный набор зелёный; flaky разобран; skip объяснён.
51
+ - [ ] UI: E2E/скриншоты/axe.
52
+ - [ ] В отчёте — команды, цифры, непокрытое и почему.
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: ui-design-system
3
+ description: "Правила интерфейса: дизайн-токены, компоненты, все состояния, адаптивность, темы, доступность и визуальная проверка."
4
+ whenToUse: "Любая работа с UI: страница, компонент, форма, стили, адаптив, темы, доступность, дизайн-апгрейд, проверка UX."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # UI/UX и дизайн-система (универсально)
9
+
10
+ > ≈1 450 токенов. Минимум для интерфейса; детали — §2.
11
+
12
+ ## 0 Когда применять
13
+ - Любая вёрстка и правка стилей: страница, лендинг, дашборд, форма, компонент, тема, адаптив.
14
+ - До кода сверить токены и состояния, после — §3.
15
+ - WOW — `wow-design`, аудит готового интерфейса — `design-critique`; здесь минимум, который нельзя пропустить.
16
+
17
+ ## 1 Главное
18
+
19
+ **Токены.** Цвета, отступы, радиусы, типографика, тени, z-index — в переменных; одна шкала отступов 4/8/12/16/24/32, выравнивание, ограничение ширины. В разметке нет hex и магических px.
20
+
21
+ **Компоненты.** Кнопки, поля, селекты, чекбоксы, бейджи, карточки, таблицы, модалки — один вид и поведение.
22
+
23
+ **Состояния:** default, hover, focus-visible, active, disabled, loading, empty, error (+ selected/checked). Не только цветом — текстом или иконкой.
24
+
25
+ **Типографика.** 2–3 размера + заголовки, строка 60–75 символов, один H1, ясная иерархия.
26
+
27
+ **UX.** Один главный сценарий; действия заметны и в конце пути взгляда; подписи по-человечески; ошибки у поля и с решением; пустые состояния объясняют, что будет и что делать; не заставлять запоминать (подсказки, умолчания, автосохранение); не блокировать — прогресс и скелетоны.
28
+
29
+ **Адаптив.** Точки 560/960, проверка 360/390/768/1440; таблицы скроллятся внутри контейнера; кнопки на mobile — на всю ширину; тач-цели ≥ 40–44px; важное не только по hover.
30
+
31
+ **Темы и доступность.** Light/dark/contrast, контраст ≥ 4.5:1, без цветов в разметке. Keyboard-first: focus-visible, Tab-порядок, Escape, aria у иконок и модалок; не только цветом.
32
+
33
+ **Проверка.** Скриншоты desktop+mobile, «до/после»; axe critical/serious = 0; длинные тексты, кириллица, числа, переполнение, ошибки сети.
34
+
35
+ **«ВАУ» без вреда.** Спокойная палитра, аккуратные акценты, анимации 120–200 мс на действиях; сначала ясность, потом эффекты.
36
+
37
+ ## 2 Куда грузить дальше
38
+ | Когда нужно | Файл | ≈токенов |
39
+ |---|---|---|
40
+ | Токены, компоненты, состояния, формы, таблицы | references/tokens-and-components.md | ≈2 100 |
41
+ | Доступность, клавиатура, контраст, адаптив | references/accessibility-and-responsive.md | ≈1 400 |
42
+ | Скриншоты и визуальное QA | references/visual-qa.md | ≈1 100 |
43
+
44
+ ## 3 Гейт перед сдачей
45
+ - [ ] Только токены: нет hex и произвольных px.
46
+ - [ ] Все 8 состояний у интерактивных элементов.
47
+ - [ ] 360/390/768/1440 без горизонтального скролла; тач-цели ≥ 40px.
48
+ - [ ] Обе темы, контраст ≥ 4.5:1, focus-visible виден, проход с клавиатуры.
49
+ - [ ] axe critical/serious = 0; пустое, ошибочное и загрузочное состояния осмысленны.
50
+ - [ ] Скриншоты приложены (desktop+mobile, light/dark), замечания исправлены.
@@ -0,0 +1,50 @@
1
+ # Доступность, клавиатура и адаптивность
2
+
3
+ > Часть навыка ui-design-system. ≈1 400 токенов. Читать, когда: проверяешь контраст, клавиатуру, ARIA, тач-цели, брейкпоинты и поведение на 360–1440.
4
+
5
+ ## 1. Контраст и цвет
6
+ - Текст ≥ 4.5:1 к фону; крупный (≥ 24px или ≥ 19px bold) ≥ 3:1.
7
+ - Границы полей, иконки и индикаторы ≥ 3:1; focus-ring заметен и на светлом, и на тёмном.
8
+ - Проверять обе темы и состояния hover/disabled; полупрозрачный текст считать по итоговому цвету.
9
+ - Смысл не передавать только цветом: ошибка — текст + иконка, статус — подпись.
10
+
11
+ ## 2. Клавиатура
12
+ - Всё интерактивное доступно Tab в визуальном порядке; нет ловушек и «мёртвых» элементов.
13
+ - `:focus-visible` виден всегда (2px, offset 2px); не убирать outline без замены.
14
+ - Enter/Space активируют, Escape закрывает модалку/меню, стрелки ходят внутри списков и табов.
15
+ - Модалка: фокус переходит внутрь, Tab не выходит наружу, после закрытия фокус возвращается на кнопку.
16
+ - Skip-link к основному контенту; скрытые меню не ловят фокус.
17
+
18
+ ## 3. Семантика и ARIA
19
+ - Нативные элементы вместо `div` с role: `button`, `a`, `input`, `label`, `table`, `dialog`.
20
+ - `label` связан с полем; иконочные кнопки — `aria-label`; изображения — `alt` (декоративные — `alt=""`).
21
+ - `aria-expanded` для аккордеонов/меню, `aria-current` для активной навигации, `aria-live` для toast и счётчиков.
22
+ - Ошибки полей — текстом и через `aria-describedby`; не только красная рамка.
23
+ - Заголовки по уровням (H1 → H2 → H3), один H1; landmark-зоны (`header`, `nav`, `main`, `footer`).
24
+
25
+ ## 4. Указатель и тач
26
+ - Тач-цели ≥ 44×44 px (минимум по WCAG 2.2 — 24×24), между соседними — зазор.
27
+ - Важные действия не только по hover/right-click/drag: дублировать кнопкой.
28
+ - Курсор pointer у кликабельного; disabled — `cursor: not-allowed` и понятная причина.
29
+
30
+ ## 5. Адаптив
31
+ - Брейкпоинты: mobile ≤ 560, tablet ≤ 960, desktop > 960; проверять 360/390/768/1440.
32
+ - Контент в max-width, поля не «прилипают» к краям на планшете.
33
+ - Таблицы: скролл-контейнер или карточки на mobile; не обрезать колонки.
34
+ - Кнопки на mobile — на всю ширину; меню — бургер с `aria-expanded` и закрытием по Escape.
35
+ - Изображения — с `width/height` или aspect-ratio, `object-fit`, без скачков layout.
36
+ - Не фиксировать высоту текстовых блоков; длинные слова — `overflow-wrap: anywhere`.
37
+ - Проверить zoom 200% и системный крупный шрифт: ничего не обрезается и не наезжает.
38
+
39
+ ## 6. Движение и время
40
+ - `prefers-reduced-motion` отключает необязательные анимации.
41
+ - Без мигания чаще 3 раз в секунду и автопрокрутки, которую нельзя остановить.
42
+ - Таймауты сессий и форм — предупреждать и давать продлить.
43
+
44
+ ## 7. Быстрый чек-лист
45
+ - [ ] Контраст в light/dark, включая disabled и placeholder.
46
+ - [ ] Проход только с клавиатуры: Tab, Enter, Space, Escape, стрелки.
47
+ - [ ] Фокус виден и возвращается после модалок.
48
+ - [ ] Все поля с label, ошибки — текстом.
49
+ - [ ] 360/390/768/1440 без горизонтального скролла.
50
+ - [ ] zoom 200% и длинный контент не ломают вёрстку.
@@ -0,0 +1,67 @@
1
+ # Токены и компоненты интерфейса
2
+
3
+ > Часть навыка ui-design-system. ≈2 100 токенов. Читать, когда: нужно завести или проверить токены, собрать компоненты и их состояния, оформить формы, таблицы, модалки и уведомления.
4
+
5
+ ## 1. Токены: что заводить
6
+ - **Цвета — по роли, не по оттенку:** `--color-bg`, `--color-surface`, `--color-text`, `--color-text-muted`, `--color-border`, `--color-accent`, `--color-accent-hover`, `--color-danger`, `--color-success`, `--color-focus-ring`. В разметке — только `var(--…)`.
7
+ - **Отступы:** одна шкала 4/8/12/16/24/32 (+48/64 для секций). Никаких 7px и 13px «на глаз».
8
+ - **Радиусы:** 2–3 значения (4/8/12/16). **Тени:** 2–3 уровня (карточка, поповер, модалка), одно направление света.
9
+ - **Типографика:** H1–H3 + body + caption; шаг размеров 1.2–1.33; line-height 1.2–1.25 для заголовков и 1.5–1.6 для текста; вес 400/500/600, не больше.
10
+ - **Прочее:** z-index-шкала (dropdown/popover/modal/toast), длительности 120–200 мс, общий easing (на входе — ease-out).
11
+ - **Темы:** одни имена токенов, разные значения для light/dark/contrast; переключение через `data-theme` или `prefers-color-scheme`. Цвета не дублировать в компонентах и не зашивать в HTML.
12
+
13
+ ## 2. Компоненты: единый вид и поведение
14
+
15
+ | Группа | Что должно быть согласовано |
16
+ |---|---|
17
+ | Кнопки | primary/secondary/ghost/danger, 2–3 размера, одинаковая высота, иконка слева/справа |
18
+ | Поля | input/textarea/select, label сверху, подсказка и ошибка под полем |
19
+ | Выбор | checkbox, radio, switch — зона клика на весь label, явное состояние |
20
+ | Данные | таблица, список, карточка, бейдж/тег, пагинация |
21
+ | Обратная связь | alert, toast, tooltip, skeleton, пустое состояние |
22
+ | Навигация | табы, хлебные крошки, меню, модалка/диалог |
23
+
24
+ - Одинаковые радиусы, отступы, высота строки и focus-ring у всех интерактивных элементов.
25
+ - Иконки — один набор и одна толщина линии; в интерфейсе не эмодзи.
26
+ - Компонент описывается состояниями и вариантами, а не «нарисован один раз под макет».
27
+
28
+ ## 3. Состояния: матрица
29
+
30
+ | Состояние | Что проверять |
31
+ |---|---|
32
+ | default | базовый вид, читаемость, размеры |
33
+ | hover | усиление фона/границы и курсор; не единственный сигнал действия |
34
+ | focus-visible | видимое кольцо 2px + offset, работает и в тёмной теме |
35
+ | active/pressed | короткое затемнение или сдвиг, без «прыжка» вёрстки |
36
+ | disabled | приглушение + запрет клика + причина/подсказка, не только opacity |
37
+ | loading | спиннер/скелетон, ширина не скачет, повторный клик заблокирован |
38
+ | empty | объяснение, что здесь будет, и действие |
39
+ | error | текст ошибки рядом и что делать; поле подсвечено, но не только цветом |
40
+
41
+ - Для выбора и переключателей добавить selected/checked/indeterminate.
42
+ - Для ссылок и иконочных кнопок — свои hover/focus, а не «как у кнопки».
43
+
44
+ ## 4. Формы
45
+ - Label всегда видимый (placeholder — не label), обязательность помечена и в подписи.
46
+ - Валидация — после отправки и на blur; не ругать за поле, которое ещё не трогали.
47
+ - Ошибка конкретная и с решением: «Введите телефон в формате +7…», не «Ошибка».
48
+ - Ввод не сбрасывать при ошибке; для длинных форм — черновик/автосохранение.
49
+ - Связанные поля группировать, на мобильном — один столбец, кнопка отправки одна и заметная.
50
+
51
+ ## 5. Таблицы и списки
52
+ - Числа — по правому краю и с одинаковым числом знаков; даты — в одном формате.
53
+ - Заголовок таблицы закреплён при скролле, сортировка явная (стрелка + `aria-sort`).
54
+ - Горизонтальный скролл — внутри контейнера таблицы, страница не «едет».
55
+ - Пустое состояние: что тут появится и как добавить; фильтры не дают «пусто без объяснений».
56
+
57
+ ## 6. Модалки и уведомления
58
+ - Модалка: заголовок, закрытие (крестик + Escape), фокус внутрь и возврат после закрытия, блокировка фона.
59
+ - Не вкладывать модалку в модалку; длинный контент — скролл внутри.
60
+ - Toast — 3–5 с, не перекрывает главное действие, важное дублируется в интерфейсе.
61
+ - Tooltip — подсказка, а не место для обязательной информации.
62
+
63
+ ## 7. Мелочи, которые видно
64
+ - Выравнивание по одной сетке; одинаковые внутренние отступы карточек.
65
+ - Длинные заголовки переносятся, а не обрезаются многоточием без `title`.
66
+ - Кнопки-иконки имеют `aria-label` и одинаковый размер.
67
+ - Тени и бордеры не спорят: либо тень, либо рамка.
@@ -0,0 +1,44 @@
1
+ # Визуальная проверка UI
2
+
3
+ > Часть навыка ui-design-system. ≈1 100 токенов. Читать, когда: снимаешь скриншоты, оцениваешь экран глазами и закрываешь UI-задачу.
4
+
5
+ ## 1. Что снять
6
+ - Экраны: 1440 (desktop), 768 (tablet), 390 (mobile); дополнительно 360, если интерфейс узкий.
7
+ - Темы: light и dark; contrast — если есть.
8
+ - Состояния: default, пустое, ошибка, загрузка, открытая модалка/меню, фокус на поле.
9
+ - «До/после» — для правок существующего интерфейса.
10
+
11
+ ## 2. Чем снимать
12
+ - Playwright или headless Chrome/Edge; полный экран и отдельные блоки крупно.
13
+ - Один масштаб и размер окна при сравнении; не ресайзить вручную между кадрами.
14
+ - PNG с понятными именами (`home-1440-light.png`) — чтобы приложить к отчёту.
15
+
16
+ ## 3. На что смотреть
17
+ - Иерархия: один H1, понятный главный CTA, второй план не спорит.
18
+ - Воздух и ритм: одна шкала отступов, блоки не «слипаются» и не разъезжаются.
19
+ - Выравнивание: края, базовые линии, одинаковые внутренние отступы карточек.
20
+ - Адаптив: нет горизонтального скролла, ничего не обрезано, меню работает.
21
+ - Читаемость: контраст, длина строки, размер текста, переносы длинных заголовков.
22
+ - Состояния: hover/focus/disabled/error действительно отличаются.
23
+ - Мелочи: иконки одного стиля, без эмодзи; тени и бордеры не спорят.
24
+
25
+ ## 4. Автопроверки
26
+ - axe-core: critical и serious = 0; остальное — осознанно в бэклог.
27
+ - Консоль без ошибок; шрифты и картинки загрузились, нет «прыжков» layout.
28
+ - Клавиатурный проход и доступные имена кнопок.
29
+
30
+ ## 5. Стресс контента
31
+ - Длинные ФИО, адреса, названия организаций; числа с разрядами; латиница + кириллица.
32
+ - Пустое поле, очень длинный список, нулевые данные, ошибка сети.
33
+ - Кнопки с длинным текстом; подписи в узкой колонке.
34
+
35
+ ## 6. «ВАУ» без вреда
36
+ - Спокойная палитра и 1–2 акцента; микроанимации 120–200 мс только на действиях.
37
+ - Красота не снижает скорость, контраст и понятность: сначала ясность, потом эффект.
38
+ - Не тащить эффект, если он ломает адаптив, доступность или производительность.
39
+
40
+ ## 7. Приёмка
41
+ - [ ] Скриншоты 1440/768/390, обе темы, ключевые состояния.
42
+ - [ ] Нет горизонтального скролла и обрезанного контента.
43
+ - [ ] axe critical/serious = 0.
44
+ - [ ] Замечания исправлены и проверены повторным кадром.
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: web-research
3
+ description: "Живой поиск в интернете: актуальные факты, новости, цены, версии, законы и документация — 2+ источника, дата «актуально на» и ссылки."
4
+ whenToUse: "Нужны свежие или внешние данные: новости, «что сейчас», цены, версии ПО, законы, документация, конкуренты; просьба «поищи в интернете»."
5
+ user-invocable: true
6
+ ---
7
+
8
+ # Живой веб-поиск (реальное время)
9
+
10
+ > ≈1 450 токенов. Только `web_search` + `web_fetch`: память — не источник свежих фактов; рецепты и формат — §2.
11
+
12
+ ## 0 Когда применять
13
+ - Вопрос про **сейчас/сегодня/последние**: новости, курсы, цены, релизы, версии, тарифы.
14
+ - Проверка факта, цитаты, даты, имени, закона, медицинской или правовой нормы.
15
+ - Документация перед кодом: версии API, breaking changes.
16
+ - Конкуренты и рынок для SEO, свежие исследования для статьи.
17
+ - Прямая просьба «поищи в интернете»; при важной свежести обязателен, даже если ответ «кажется известным».
18
+
19
+ ## 1 Главное
20
+
21
+ **Только живой поиск.** `web_search` + `web_fetch`; сниппетов мало для деталей и цифр; никаких URL, цифр и дат «по памяти».
22
+
23
+ **Запросы.** 2–4 формулировки: рус/англ, синонимы, официальные термины; для версий и цен — `site:` официального домена.
24
+
25
+ **Источники.** 2–3 независимых, сначала официальные: документация, госсайты, производитель, крупные СМИ. Факт подтверждают **2+ источника**; расхождения — показать оба и объяснить.
26
+
27
+ **Даты.** Фиксировать дату поиска и публикации источника; по умолчанию данные не старше 12 месяцев (кроме исторических справок); в ответе — **«актуально на YYYY-MM-DD»**.
28
+
29
+ **Ссылки.** Markdown-ссылки (название + URL). URL и цифры не выдумывать: нет ссылки — нет утверждения.
30
+
31
+ **Достоверность.** Факт отличать от мнения и маркетинга; медицина и право — только официальные источники и осторожные формулировки; платный источник — сказать прямо, не выдавать пересказ за первоисточник; результата нет — честно сообщить и уточнить запрос; устаревшее — предупредить, при смене версии/цены — оба значения с датами.
32
+
33
+ **Формат.** Вывод (1–3 предложения) → детали с датами и версиями → «Источники:» (название, URL, дата) → «Актуально на: YYYY-MM-DD».
34
+
35
+ **Связки.** `content-writing` и `seo` — факты только после проверки; версии API — перед кодом; вводные для `requirements-and-planning` — со ссылками.
36
+
37
+ ## 2 Куда грузить дальше
38
+ | Когда нужно | Файл | ≈токенов |
39
+ |---|---|---|
40
+ | Запросы, источники, версии и цены | references/query-recipes.md | ≈1 450 |
41
+ | Ответ со ссылками, расхождения, медицина/право | references/answer-and-citations.md | ≈1 500 |
42
+
43
+ ## 3 Гейт перед сдачей
44
+ - [ ] Поиск вживую; ≥ 2 независимых источника.
45
+ - [ ] Дата поиска и публикаций зафиксированы; «актуально на YYYY-MM-DD» в ответе.
46
+ - [ ] Каждое утверждение со ссылкой; URL и цифры не выдуманы.
47
+ - [ ] Расхождения, устаревшее и платные источники раскрыты.
@@ -0,0 +1,60 @@
1
+ # Ответ, ссылки и спорные случаи
2
+
3
+ > Часть навыка web-research. ≈1 500 токенов. Читать, когда: собираешь ответ с цитатами, источники расходятся, данные устарели или тема медицинская/юридическая.
4
+
5
+ ## 1. Каркас ответа
6
+ ```
7
+ 1. Вывод — 1–3 предложения.
8
+ 2. Детали — даты, версии, цифры, условия.
9
+ 3. Источники — название + URL + дата публикации.
10
+ 4. Актуально на: YYYY-MM-DD.
11
+ ```
12
+
13
+ - Дату брать из системного времени и дат источников, не придумывать.
14
+ - Ссылки — markdown, кликабельные: `[Название](https://…)`.
15
+ - Источник на английском — цитировать оригинал и пересказать суть по-русски.
16
+
17
+ ## 2. Как цитировать
18
+ - На каждое фактическое утверждение — ссылка на страницу, где это сказано.
19
+ - Ссылка ведёт на конкретную страницу или раздел, а не на главную.
20
+ - Дата публикации — если есть; если нет, писать «дата не указана».
21
+ - Не смешивать своё мнение с цитатой: «По данным X…», «Рекомендую…».
22
+
23
+ ## 3. Источники расходятся
24
+ - Показать оба значения и оба источника, объяснить вероятную причину: разные даты, методики, регионы.
25
+ - Выбрать более свежий и официальный как основной, но не скрывать второй.
26
+ - Если вопрос критичный — сказать, что нужно уточнение у владельца данных.
27
+
28
+ ## 4. Данные устарели
29
+ - Предупредить: «данные за <год>, актуальнее не найдено».
30
+ - При смене версии или цены — «было → стало» с датами.
31
+ - Историческую справку помечать как историческую и не требовать от неё свежести.
32
+
33
+ ## 5. Платные и закрытые источники
34
+ - Сказать прямо: «полный текст платный или по подписке», дать видимую часть.
35
+ - Не выдавать пересказ за первоисточник.
36
+ - Не обходить paywall и не искать пиратские копии.
37
+
38
+ ## 6. Медицина и право
39
+ - Только официальные источники и осторожные формулировки: «по клиническим рекомендациям…», «согласно ст. …».
40
+ - Не ставить диагнозы и не заменять консультацию врача или юриста; для решений направлять к специалисту.
41
+ - Указывать редакцию закона и дату вступления в силу.
42
+ - Не переносить зарубежные нормы на РФ без оговорки.
43
+
44
+ ## 7. Если ничего не найдено
45
+ - Честно: «надёжных источников не найдено».
46
+ - Коротко: что пробовал — запросы, домены.
47
+ - Что уточнить у пользователя: город, год, версия, организация.
48
+ - Не заполнять пробел догадкой и не выдумывать ссылку.
49
+
50
+ ## 8. Примеры
51
+ - Плохо: «Новая версия вышла недавно» — без номера, ссылки и даты.
52
+ - Хорошо: «Версия X.Y — [release notes](https://…), опубликовано <дата>; актуально на <дата>».
53
+ - Плохо: «Врачи советуют…» — без источника.
54
+ - Хорошо: «Согласно клиническим рекомендациям ([ссылка], <год>)…».
55
+
56
+ ## 9. Связка с другими навыками
57
+ - `content-writing` — факты и цитаты только после `web-research`, ссылки — в черновике.
58
+ - `seo` — свежая семантика, конкуренты, тренды и проверка выдачи.
59
+ - Стековые скиллы (PHP/Laravel, JS/TS, Bitrix и т. п.) — версии и API сверять с официальной документацией.
60
+ - `requirements-and-planning` — рыночные и правовые вводные подтверждать источниками.
@@ -0,0 +1,44 @@
1
+ # Рецепты запросов и иерархия источников
2
+
3
+ > Часть навыка web-research. ≈1 450 токенов. Читать, когда: поиск даёт мусор, нужен первоисточник, версия/цена/закон или сравнение нескольких источников.
4
+
5
+ ## 1. Как формулировать запросы
6
+ - 2–4 варианта на один вопрос: русский и английский, синонимы, официальные термины («Правительство Москвы», а не «мэрия»).
7
+ - Короткие запросы лучше длинных: 3–6 значимых слов; убрать «подскажите», «срочно», «пожалуйста».
8
+ - Уточнять контекст: город, организация, год, редакция, версия продукта.
9
+ - Для кода и документации: `site:` официального домена, имя функции или текст ошибки в кавычках.
10
+ - Для законов: номер, дата, «действующая редакция», официальный портал правовой информации.
11
+ - Для цен и тарифов: название продукта + «тарифы» + год и `site:` вендора.
12
+ - Точные фразы — в кавычках; исключения — минусом; операторами не злоупотреблять.
13
+
14
+ ## 2. Иерархия источников
15
+ 1. **Первоисточник:** официальная документация, закон, приказ, пресс-релиз вендора, статистика ведомства.
16
+ 2. **Профильные авторитетные:** отраслевые издания, крупные СМИ, рецензируемые журналы.
17
+ 3. **Агрегаторы, обзоры, форумы** — подсказка, где искать, но не доказательство.
18
+
19
+ - Медицина: Минздрав, Росздравнадзор, клинические рекомендации, ВОЗ; не сайты-обзоры о здоровье.
20
+ - Право: текст закона и официальные разъяснения; статьи юристов — вторичны.
21
+ - Софт: CHANGELOG, документация, страницы релизов; блоги-пересказы — вторичны.
22
+
23
+ ## 3. Как найти первоисточник
24
+ - Начать с официального домена, затем смотреть, кто ссылается на оригинал, а не на пересказ.
25
+ - В статье искать ссылку на документ или исследование и открывать её.
26
+ - Проверить, что страница та самая: версия, дата, нужный раздел, а не редирект на главную.
27
+ - Для цифр искать таблицу или методику расчёта, а не только число в тексте.
28
+
29
+ ## 4. Версии, цены, законы
30
+ - Версия: CHANGELOG, release notes, тег в репозитории; фиксировать номер и дату.
31
+ - Цена/тариф: официальная страница тарифов; указывать дату, валюту и условия (регион, НДС).
32
+ - Закон: действующая редакция и дата вступления в силу; проверить, не отменён ли.
33
+ - Изменение: показывать «было → стало» с датами, а не только текущее значение.
34
+
35
+ ## 5. Если результатов нет
36
+ - Переформулировать: убрать жаргон, сменить язык, добавить год или организацию.
37
+ - Проверить официальный сайт напрямую и поиск по нему.
38
+ - После 2–3 попыток честно сказать, что надёжных данных нет; не подменять догадкой.
39
+
40
+ ## 6. Чего не делать
41
+ - Не цитировать сниппет как источник, не открыв страницу.
42
+ - Не брать цифры из SEO-статей без первоисточника.
43
+ - Не выдавать старую версию за текущую; не игнорировать дату публикации.
44
+ - Не выдумывать URL «по шаблону» и не собирать домены на глаз.