dsh-desktop-kit 1.0.0 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (144) hide show
  1. package/README.md +106 -41
  2. package/client.js +780 -28
  3. package/docs/ARCHITECTURE.md +114 -0
  4. package/docs/COMPATIBILITY.md +61 -0
  5. package/docs/INSTALL.md +97 -0
  6. package/docs/PRIVACY.md +50 -0
  7. package/docs/ROADMAP.md +57 -0
  8. package/docs/TOKENS.md +118 -0
  9. package/docs/TROUBLESHOOTING.md +68 -0
  10. package/docs/images/hero.png +0 -0
  11. package/index.js +4 -0
  12. package/package.json +15 -5
  13. package/plugins/dsh-gkb-ru-ui/lib/client.js +276 -28
  14. package/plugins/dsh-gkb-ru-ui/lib/index.js +45 -1
  15. package/plugins/dsh-gkb-ru-ui/lib/skills.js +195 -1
  16. package/plugins/dsh-gkb-ru-ui/package.json +2 -2
  17. package/plugins/dsh-gkb-ru-ui/screenshots/01-home-tiles-1440-light.png +0 -0
  18. package/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png +0 -0
  19. package/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png +0 -0
  20. package/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png +0 -0
  21. package/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png +0 -0
  22. package/plugins/dsh-gkb-ru-ui/screenshots/06-home-tiles-1440-dark.png +0 -0
  23. package/plugins/dsh-peak-guard/screenshots/01-real-time-peak-start.png +0 -0
  24. package/plugins/dsh-peak-guard/screenshots/02-real-time-peak-end.png +0 -0
  25. package/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png +0 -0
  26. package/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png +0 -0
  27. package/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png +0 -0
  28. package/plugins/dsh-peak-guard/screenshots/05-peak-card-768-light.png +0 -0
  29. package/plugins/dsh-peak-guard/screenshots/06-peak-card-390-light.png +0 -0
  30. package/plugins/dsh-peak-guard/screenshots/07-live-preview-check.png +0 -0
  31. package/plugins/dsh-peak-guard/screenshots/07-pre-peak-1440-light.png +0 -0
  32. package/plugins/dsh-peak-guard/screenshots/08-peak-start-1440-light.png +0 -0
  33. package/plugins/dsh-peak-guard/screenshots/09-peak-end-1440-light.png +0 -0
  34. package/plugins/dsh-peak-guard/screenshots/10-pre-peak-card-1440-light.png +0 -0
  35. package/plugins/dsh-peak-guard/screenshots/11-pre-peak-card-1440-dark.png +0 -0
  36. package/plugins/dsh-peak-guard/screenshots/12-pre-peak-card-390-light.png +0 -0
  37. package/plugins/dsh-peak-guard/screenshots/qa-report.json +74 -0
  38. package/plugins/dsh-profile-transfer/screenshots/01-settings-transfer-1440-light.png +0 -0
  39. package/plugins/dsh-profile-transfer/screenshots/02-settings-transfer-preview-1440-light.png +0 -0
  40. package/plugins/dsh-profile-transfer/screenshots/03-settings-transfer-1440-dark.png +0 -0
  41. package/plugins/dsh-profile-transfer/screenshots/04-settings-transfer-390-light.png +0 -0
  42. package/plugins/dsh-profile-transfer/screenshots/05-settings-transfer-768-light.png +0 -0
  43. package/plugins/dsh-profile-transfer/screenshots/06-settings-transfer-390-dark.png +0 -0
  44. package/plugins/dsh-profile-transfer/screenshots/07-settings-transfer-export-result.png +0 -0
  45. package/plugins/dsh-profile-transfer/screenshots/08-settings-transfer-workspaces-1440-light.png +0 -0
  46. package/plugins/dsh-profile-transfer/screenshots/09-settings-transfer-workspaces-1440-dark.png +0 -0
  47. package/plugins/dsh-profile-transfer/screenshots/10-settings-transfer-workspaces-390-light.png +0 -0
  48. package/plugins/dsh-session-move/screenshots/01-row-menu-1440-light.png +0 -0
  49. package/plugins/dsh-session-move/screenshots/02-dialog-1440-light.png +0 -0
  50. package/plugins/dsh-session-move/screenshots/03-dialog-390-light.png +0 -0
  51. package/plugins/dsh-session-move/screenshots/04-dialog-1440-dark.png +0 -0
  52. package/plugins/dsh-session-move/screenshots/05-drag-highlight-1440-light.png +0 -0
  53. package/plugins/dsh-session-move/screenshots/06-drop-ungrouped-highlight.png +0 -0
  54. package/plugins/dsh-session-move/screenshots/07-after-drop-ungrouped.png +0 -0
  55. package/plugins/dsh-session-move/screenshots/08-move-dialog.png +0 -0
  56. package/plugins/dsh-session-move/screenshots/09-moved-to-second-workspace.png +0 -0
  57. package/plugins/dsh-session-move/screenshots/qa-report.json +62 -0
  58. package/plugins/dsh-skill-autopilot/cordis.patch.yml +3 -0
  59. package/plugins/dsh-skill-autopilot/index.js +444 -0
  60. package/plugins/dsh-skill-autopilot/package.json +19 -0
  61. package/plugins/dsh-token-lab/cordis.patch.yml +3 -0
  62. package/plugins/dsh-token-lab/lib/client.js +504 -0
  63. package/plugins/dsh-token-lab/lib/index.js +275 -0
  64. package/plugins/dsh-token-lab/package.json +26 -0
  65. package/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png +0 -0
  66. package/plugins/dsh-token-lab/screenshots/02-token-lab-1440-dark.png +0 -0
  67. package/skills/code-review-checklist/SKILL.md +48 -30
  68. package/skills/content-writing/SKILL.md +64 -327
  69. package/skills/content-writing/references/process.md +123 -0
  70. package/skills/content-writing/references/quick-recipes.md +99 -0
  71. package/skills/content-writing/references/rules.md +85 -0
  72. package/skills/content-writing/references/sources.md +49 -0
  73. package/skills/context-economy/SKILL.md +60 -0
  74. package/skills/context-economy/references/long-session.md +35 -0
  75. package/skills/context-economy/references/token-math.md +42 -0
  76. package/skills/context-economy/references/tool-recipes.md +34 -0
  77. package/skills/database-safety/SKILL.md +40 -24
  78. package/skills/debugging-playbook/SKILL.md +30 -27
  79. package/skills/design-critique/SKILL.md +57 -110
  80. package/skills/design-critique/references/a11y.md +25 -0
  81. package/skills/design-critique/references/diagnoses.md +33 -0
  82. package/skills/design-critique/references/quick-tests.md +30 -0
  83. package/skills/design-critique/references/report-template.md +63 -0
  84. package/skills/design-critique/references/rubric-fast.md +73 -0
  85. package/skills/dev-workflow/SKILL.md +41 -34
  86. package/skills/dev-workflow/references/definition-of-done.md +44 -0
  87. package/skills/dev-workflow/references/memory-and-boundaries.md +31 -0
  88. package/skills/dev-workflow/references/stages.md +67 -0
  89. package/skills/git-and-ci/SKILL.md +46 -26
  90. package/skills/pg-upgrade-verify/SKILL.md +54 -35
  91. package/skills/project-deep-dive/SKILL.md +39 -164
  92. package/skills/project-deep-dive/references/recon-commands.md +12 -0
  93. package/skills/project-deep-dive/references/section-templates.md +2 -0
  94. package/skills/project-deep-dive/references/tool-and-process.md +86 -0
  95. package/skills/project-memory-maintenance/SKILL.md +39 -154
  96. package/skills/project-memory-maintenance/references/api-and-checklist.md +99 -0
  97. package/skills/project-memory-maintenance/references/journal-template.md +2 -0
  98. package/skills/project-memory-maintenance/references/section-rules.md +2 -0
  99. package/skills/release-and-deploy/SKILL.md +46 -32
  100. package/skills/requirements-and-planning/SKILL.md +44 -110
  101. package/skills/requirements-and-planning/references/antipatterns-and-checklist.md +20 -0
  102. package/skills/requirements-and-planning/references/process-steps.md +52 -0
  103. package/skills/requirements-and-planning/references/templates-and-estimates.md +29 -0
  104. package/skills/security-review/SKILL.md +33 -29
  105. package/skills/seo/SKILL.md +53 -305
  106. package/skills/seo/references/antipatterns.md +66 -0
  107. package/skills/seo/references/audit-checklist.md +14 -0
  108. package/skills/seo/references/content-seo.md +180 -174
  109. package/skills/seo/references/eeat-medical.md +2 -0
  110. package/skills/seo/references/measurement.md +28 -1
  111. package/skills/seo/references/on-page.md +5 -0
  112. package/skills/seo/references/page-templates.md +56 -0
  113. package/skills/seo/references/stack-recipes.md +2 -0
  114. package/skills/seo/references/structured-data.md +2 -0
  115. package/skills/seo/references/technical-seo.md +2 -0
  116. package/skills/service-desk-conventions/SKILL.md +40 -28
  117. package/skills/service-desk-db-safety/SKILL.md +39 -28
  118. package/skills/service-desk-release/SKILL.md +40 -22
  119. package/skills/service-desk-testing/SKILL.md +47 -33
  120. package/skills/service-desk-ui/SKILL.md +43 -24
  121. package/skills/skills-router/SKILL.md +44 -82
  122. package/skills/skills-router/references/applying-skills.md +25 -0
  123. package/skills/skills-router/references/routing-matrix.md +52 -0
  124. package/skills/testing-strategy/SKILL.md +47 -32
  125. package/skills/ui-design-system/SKILL.md +43 -38
  126. package/skills/ui-design-system/references/accessibility-and-responsive.md +50 -0
  127. package/skills/ui-design-system/references/tokens-and-components.md +67 -0
  128. package/skills/ui-design-system/references/visual-qa.md +44 -0
  129. package/skills/web-research/SKILL.md +40 -33
  130. package/skills/web-research/references/answer-and-citations.md +60 -0
  131. package/skills/web-research/references/query-recipes.md +44 -0
  132. package/skills/wow-design/SKILL.md +82 -161
  133. package/skills/wow-design/references/anti-patterns.md +3 -0
  134. package/skills/wow-design/references/critique-rubric.md +3 -0
  135. package/skills/wow-design/references/design-brief-template.md +2 -0
  136. package/skills/wow-design/references/inspiration.md +3 -0
  137. package/skills/wow-design/references/presets.md +3 -0
  138. package/skills/wow-design/references/principles.md +3 -0
  139. package/skills/wow-design/references/quick-presets.md +50 -0
  140. package/skills/wow-design/references/report-template.md +21 -0
  141. package/skills/wow-design/references/stack-recipes.md +3 -0
  142. package/skills/wow-design/references/visual-qa.md +3 -0
  143. package/skills/wow-design/references/wow-levers.md +43 -0
  144. package/tools/skill-cost.mjs +76 -0
@@ -0,0 +1,21 @@
1
+ # Шаблон отчёта по дизайну
2
+
3
+ > Часть навыка wow-design. ≈0.4k токенов. Читать, когда: сдаёшь UI-работу и нужен формат отчёта
4
+ > с доказательствами (скриншоты, рубрика, проверки, интеграция).
5
+
6
+ ```markdown
7
+ ## Дизайн: <страница / лендинг / дашборд / компонент>
8
+ Арт-направление: <пресет>, <3 слова>, signature: <деталь>
9
+ Что сделано: <3–6 пунктов>
10
+ Скриншоты: <пути: 1440 light, 768, 390, dark, ключевые состояния>
11
+ Рубрика: <средний балл>/5, слабые места: <критерии и оценки>
12
+ Проверено: 1440/768/390, light/dark, axe (critical/serious = 0), keyboard/focus, reduced-motion
13
+ Интеграция: <какие файлы/токены/классы переиспользовать; что не тронуто>
14
+ Риски/что дальше: <1–3 пункта>
15
+ ```
16
+
17
+ Правила:
18
+ - без скриншотов и путей работа не считается сданной;
19
+ - рубрика — средневзвешенный балл, обязательно минимум по критериям;
20
+ - rationale — 3–5 строк: почему такой пресет, шрифт, композиция, signature-деталь;
21
+ - если правился чужой UI — приложить «до/после» и список P0/P1.
@@ -1,5 +1,8 @@
1
1
  # Stack Recipes — как встраивать AURORA в реальные проекты
2
2
 
3
+ > Часть навыка wow-design. ≈2.3k токенов. Читать, когда: встраиваешь кит в React/Laravel/Bitrix
4
+ > или статический HTML.
5
+
3
6
  > Принцип: **не переписывай проект, а перенеси токены и компоненты**. Сначала посмотри, что уже есть
4
7
  > (тема, переменные, UI-кит), и замапь новое на существующее. Ничего не ломать — часть дизайна.
5
8
 
@@ -1,5 +1,8 @@
1
1
  # Visual QA — петля «собрал → снял → раскритиковал → исправил»
2
2
 
3
+ > Часть навыка wow-design. ≈1.7k токенов. Читать, когда: запускаешь capture/audit, разбираешь
4
+ > скриншоты, настраиваешь CI или скрипты не стартуют.
5
+
3
6
  > Без скриншотов дизайн не считается проверенным. Глазами по PNG видно то, чего не видно в коде:
4
7
  > иерархию, воздух, ритм, «дёшево/дорого», поломки адаптива.
5
8
 
@@ -0,0 +1,43 @@
1
+ # Рычаги «ВАУ» — 8 приёмов с параметрами
2
+
3
+ > Часть навыка wow-design. ≈1k токенов. Читать, когда: выбираешь 3–5 приёмов «ВАУ» для страницы
4
+ > и нужны конкретные параметры, чтобы приём не превратился в декор.
5
+
6
+ Выбирай **3–5 из 8**, не все сразу. Каждый приём должен работать на задачу экрана, а не «чтобы было красиво».
7
+
8
+ ## 1. Типографический контраст — 80% впечатления
9
+ Огромный serif-display + мелкий капс-лейбл с трекингом + спокойный body. Display 56–96px
10
+ (`clamp(3rem,7vw,6rem)`), лейблы 11–12px капсом с трекингом `.12–.14em`, body 16–18px.
11
+ Одна display-пара на страницу; не смешивать два похожих гротеска.
12
+
13
+ ## 2. Редакционная сетка
14
+ Асимметрия 7/5 или 8/4, номерные секции (01/02/03), волосяные линии, поля-воздух. Контейнер
15
+ 1200–1360px, 12 колонок, gutter `clamp(20px,4.5vw,56px)`; секции `clamp(64px,8vw,128px)`.
16
+ Сетка должна читаться по краям: всё выровнено по одной линии.
17
+
18
+ ## 3. Одна смелая деталь
19
+ Гигантская цифра/буква, эмблема, вертикальный текст, необычный разделитель — **ровно одна**,
20
+ повторённая в 2–3 местах. Пять «фишек» сразу (градиент + блоб + стекло + 3D + карусель) = шум.
21
+
22
+ ## 4. Материальность
23
+ Тёплая бумага, лёгкое зерно 2–3% (`--grain-opacity:.022`), hairline-бордеры, слоистые тени из
24
+ 2 слоёв, без «пластика». Статичные карточки — hairline, тени только у всплывающих слоёв.
25
+
26
+ ## 5. Точные данные
27
+ SVG-графики, sparklines, таблицы с `font-variant-numeric:tabular-nums`, моно-цифры для ID и кодов,
28
+ правые числа. Точность и выравнивание цифр читаются как «дорого» даже без декора.
29
+
30
+ ## 6. Микродетали
31
+ Offset у подчёркиваний, цвет `::selection`, аккуратный скроллбар, видимое фокус-кольцо
32
+ (`2px` + offset `3px`), иконки stroke 1.5–1.6, оптическое выравнивание иконок в строке.
33
+ Мелочи не объясняют — они создают ощущение качества.
34
+
35
+ ## 7. Движение с достоинством
36
+ Reveal 700ms `cubic-bezier(.16,1,.3,1)`, stagger 60ms, hover 180ms; только `transform`/`opacity`.
37
+ Без bounce, parallax-цирка и бесконечных анимаций. `prefers-reduced-motion` отключает всё,
38
+ контент остаётся видимым.
39
+
40
+ ## 8. Копирайт
41
+ Глаголы, конкретика, числа, польза. Заголовок продаёт результат, а не описывает отдел:
42
+ «Запись к кардиологу за 2 минуты», «94% заявок закрыты в SLA». Без «инновационных решений»
43
+ и «команды профессионалов».
@@ -0,0 +1,76 @@
1
+ #!/usr/bin/env node
2
+ // Token budget report for the bundled skills.
3
+ //
4
+ // Every SKILL.md is loaded whole when the model calls `skill`, so the core file
5
+ // is a hard context cost. This script prints that cost and fails CI when a core
6
+ // crosses the budget, which keeps the library honest as it grows.
7
+ //
8
+ // node tools/skill-cost.mjs table + totals
9
+ // node tools/skill-cost.mjs --json machine-readable report
10
+ // node tools/skill-cost.mjs --check exit 1 when a core exceeds --budget
11
+ import fs from "node:fs";
12
+ import path from "node:path";
13
+
14
+ const repoRoot = path.resolve(import.meta.dirname, "..");
15
+ const skillsRoot = path.join(repoRoot, "skills");
16
+ const args = process.argv.slice(2);
17
+ const json = args.includes("--json");
18
+ const check = args.includes("--check");
19
+ const budgetIndex = args.indexOf("--budget");
20
+ const budget = budgetIndex >= 0 ? Number(args[budgetIndex + 1]) || 6000 : 6000;
21
+
22
+ const rows = [];
23
+ for (const entry of fs.readdirSync(skillsRoot, { withFileTypes: true })) {
24
+ if (!entry.isDirectory()) continue;
25
+ const file = path.join(skillsRoot, entry.name, "SKILL.md");
26
+ if (!fs.existsSync(file)) continue;
27
+ const text = fs.readFileSync(file, "utf8");
28
+ const bytes = Buffer.byteLength(text, "utf8");
29
+ let references = 0;
30
+ let referenceBytes = 0;
31
+ const refDir = path.join(skillsRoot, entry.name, "references");
32
+ if (fs.existsSync(refDir)) {
33
+ for (const reference of fs.readdirSync(refDir, { withFileTypes: true })) {
34
+ if (!reference.isFile()) continue;
35
+ references += 1;
36
+ referenceBytes += fs.statSync(path.join(refDir, reference.name)).size;
37
+ }
38
+ }
39
+ rows.push({
40
+ name: entry.name,
41
+ bytes,
42
+ tokens: Math.round(bytes / 3.2),
43
+ references,
44
+ referenceTokens: Math.round(referenceBytes / 3.2),
45
+ });
46
+ }
47
+ rows.sort((left, right) => right.tokens - left.tokens);
48
+
49
+ const totalTokens = rows.reduce((sum, row) => sum + row.tokens, 0);
50
+ const totalReferences = rows.reduce((sum, row) => sum + row.referenceTokens, 0);
51
+ const over = rows.filter((row) => row.tokens > budget);
52
+
53
+ if (json) {
54
+ console.log(JSON.stringify({ budget, totalTokens, totalReferences, rows, over }, null, 2));
55
+ } else {
56
+ console.log(`Навыков: ${rows.length}. Ядра: ${totalTokens} токенов, references: ${totalReferences} токенов.`);
57
+ console.log(`Бюджет ядра: ${budget} токенов${over.length > 0 ? ` · превышают: ${over.length}` : " · все в бюджете"}`);
58
+ console.log("");
59
+ const header = ["навык", "ядро", "токены", "refs", "ref-токены"].map((label, index) => label.padEnd(index === 0 ? 30 : 10));
60
+ console.log(header.join(""));
61
+ for (const row of rows) {
62
+ const mark = row.tokens > budget ? " !" : "";
63
+ console.log([
64
+ (row.name + mark).padEnd(30),
65
+ String(row.bytes + " Б").padEnd(10),
66
+ String(row.tokens).padEnd(10),
67
+ String(row.references).padEnd(10),
68
+ String(row.referenceTokens).padEnd(10),
69
+ ].join(""));
70
+ }
71
+ }
72
+
73
+ if (check && over.length > 0) {
74
+ console.error(`\nПеребор бюджета: ${over.map((row) => `${row.name} (${row.tokens})`).join(", ")}`);
75
+ process.exit(1);
76
+ }