dsh-desktop-kit 0.0.0-stage → 1.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.
- package/LICENSE +21 -0
- package/README.md +87 -2
- package/client.js +3349 -0
- package/cordis.patch.yml +5 -0
- package/index.js +80 -0
- package/package.json +60 -4
- package/plugins/dsh-gkb-ru-ui/cordis.patch.yml +6 -0
- package/plugins/dsh-gkb-ru-ui/lib/client.js +1083 -0
- package/plugins/dsh-gkb-ru-ui/lib/index.js +142 -0
- package/plugins/dsh-gkb-ru-ui/lib/skills.js +376 -0
- package/plugins/dsh-gkb-ru-ui/package.json +28 -0
- package/plugins/dsh-peak-guard/README.md +70 -0
- package/plugins/dsh-peak-guard/client.js +741 -0
- package/plugins/dsh-peak-guard/cordis.patch.yml +5 -0
- package/plugins/dsh-peak-guard/icon.svg +12 -0
- package/plugins/dsh-peak-guard/index.js +2 -0
- package/plugins/dsh-peak-guard/locale/en.json +6 -0
- package/plugins/dsh-peak-guard/locale/ru.json +6 -0
- package/plugins/dsh-peak-guard/locale/zh.json +6 -0
- package/plugins/dsh-peak-guard/package.json +33 -0
- package/plugins/dsh-profile-transfer/README.md +62 -0
- package/plugins/dsh-profile-transfer/bootstrap/01-INSTALL.cmd +7 -0
- package/plugins/dsh-profile-transfer/bootstrap/README-ARCHIVE.md +54 -0
- 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
- package/plugins/dsh-profile-transfer/bootstrap/install-on-clean-machine.ps1 +119 -0
- 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
- package/plugins/dsh-profile-transfer/client.js +806 -0
- package/plugins/dsh-profile-transfer/cordis.patch.yml +3 -0
- package/plugins/dsh-profile-transfer/icon.svg +13 -0
- package/plugins/dsh-profile-transfer/index.js +375 -0
- package/plugins/dsh-profile-transfer/locale/en.json +6 -0
- package/plugins/dsh-profile-transfer/locale/ru.json +6 -0
- package/plugins/dsh-profile-transfer/locale/zh.json +6 -0
- package/plugins/dsh-profile-transfer/package.json +36 -0
- package/plugins/dsh-profile-transfer/transfer.js +1004 -0
- package/plugins/dsh-project-memory/README.md +71 -0
- package/plugins/dsh-project-memory/cordis.patch.yml +4 -0
- package/plugins/dsh-project-memory/icon.svg +12 -0
- package/plugins/dsh-project-memory/index.js +1240 -0
- package/plugins/dsh-project-memory/locale/en.json +6 -0
- package/plugins/dsh-project-memory/locale/ru.json +6 -0
- package/plugins/dsh-project-memory/locale/zh.json +6 -0
- package/plugins/dsh-project-memory/package.json +26 -0
- package/plugins/dsh-session-move/README.md +67 -0
- package/plugins/dsh-session-move/client.js +719 -0
- package/plugins/dsh-session-move/cordis.patch.yml +5 -0
- package/plugins/dsh-session-move/icon.svg +14 -0
- package/plugins/dsh-session-move/index.js +497 -0
- package/plugins/dsh-session-move/locale/en.json +6 -0
- package/plugins/dsh-session-move/locale/ru.json +6 -0
- package/plugins/dsh-session-move/locale/zh.json +6 -0
- package/plugins/dsh-session-move/package.json +31 -0
- package/skills/code-review-checklist/SKILL.md +37 -0
- package/skills/content-writing/README.md +87 -0
- package/skills/content-writing/SKILL.md +348 -0
- package/skills/content-writing/assets/checklists/fact-check.md +53 -0
- package/skills/content-writing/assets/checklists/publish.md +65 -0
- package/skills/content-writing/assets/checklists/social.md +40 -0
- package/skills/content-writing/assets/templates/article.md +47 -0
- package/skills/content-writing/assets/templates/brief.md +44 -0
- package/skills/content-writing/assets/templates/doctor-card.md +41 -0
- package/skills/content-writing/assets/templates/image-prompts.md +128 -0
- package/skills/content-writing/assets/templates/post-telegram.md +36 -0
- package/skills/content-writing/assets/templates/post-vk.md +42 -0
- package/skills/content-writing/assets/templates/press-release.md +56 -0
- package/skills/content-writing/assets/templates/science-pop-note.md +55 -0
- package/skills/content-writing/assets/templates/service-card.md +46 -0
- package/skills/content-writing/references/anti-ai-style.md +248 -0
- package/skills/content-writing/references/editing.md +185 -0
- package/skills/content-writing/references/fact-checking.md +205 -0
- package/skills/content-writing/references/government-medical.md +246 -0
- package/skills/content-writing/references/images.md +212 -0
- package/skills/content-writing/references/journalism.md +252 -0
- package/skills/content-writing/references/science-popular.md +218 -0
- package/skills/content-writing/references/seo-content.md +172 -0
- package/skills/content-writing/references/social-media.md +253 -0
- package/skills/content-writing/references/templates.md +291 -0
- package/skills/database-safety/SKILL.md +31 -0
- package/skills/debugging-playbook/SKILL.md +39 -0
- package/skills/design-critique/SKILL.md +118 -0
- package/skills/dev-workflow/SKILL.md +41 -0
- package/skills/git-and-ci/SKILL.md +40 -0
- package/skills/pg-upgrade-verify/SKILL.md +48 -0
- package/skills/project-deep-dive/SKILL.md +170 -0
- package/skills/project-deep-dive/references/recon-commands.md +78 -0
- package/skills/project-deep-dive/references/section-templates.md +102 -0
- package/skills/project-memory-maintenance/SKILL.md +170 -0
- package/skills/project-memory-maintenance/references/journal-template.md +48 -0
- package/skills/project-memory-maintenance/references/section-rules.md +57 -0
- package/skills/release-and-deploy/SKILL.md +39 -0
- package/skills/requirements-and-planning/SKILL.md +115 -0
- package/skills/security-review/SKILL.md +36 -0
- package/skills/seo/README.md +60 -0
- package/skills/seo/SKILL.md +329 -0
- package/skills/seo/assets/README.md +66 -0
- package/skills/seo/assets/scripts/LICENSE-playwright-core.txt +202 -0
- package/skills/seo/assets/scripts/README.md +179 -0
- package/skills/seo/assets/scripts/lib/args.mjs +105 -0
- package/skills/seo/assets/scripts/lib/browser.mjs +620 -0
- package/skills/seo/assets/scripts/lib/zip.mjs +191 -0
- package/skills/seo/assets/scripts/seo-audit.mjs +1675 -0
- package/skills/seo/assets/snippets/jsonld-breadcrumb.json +30 -0
- package/skills/seo/assets/snippets/jsonld-faq.json +39 -0
- package/skills/seo/assets/snippets/jsonld-medical-clinic.json +49 -0
- package/skills/seo/assets/snippets/jsonld-medical-webpage.json +33 -0
- package/skills/seo/assets/snippets/jsonld-organization.json +74 -0
- package/skills/seo/assets/snippets/jsonld-physician.json +46 -0
- package/skills/seo/assets/snippets/meta.blade.php +61 -0
- package/skills/seo/assets/snippets/robots.txt +61 -0
- package/skills/seo/assets/snippets/sitemap-urlset-example.xml +72 -0
- package/skills/seo/assets/snippets/sitemap.xml +36 -0
- package/skills/seo/references/audit-checklist.md +305 -0
- package/skills/seo/references/content-seo.md +198 -0
- package/skills/seo/references/eeat-medical.md +217 -0
- package/skills/seo/references/measurement.md +223 -0
- package/skills/seo/references/on-page.md +209 -0
- package/skills/seo/references/stack-recipes.md +693 -0
- package/skills/seo/references/structured-data.md +485 -0
- package/skills/seo/references/technical-seo.md +294 -0
- package/skills/service-desk-conventions/SKILL.md +40 -0
- package/skills/service-desk-db-safety/SKILL.md +52 -0
- package/skills/service-desk-release/SKILL.md +43 -0
- package/skills/service-desk-testing/SKILL.md +47 -0
- package/skills/service-desk-ui/SKILL.md +33 -0
- package/skills/skills-router/SKILL.md +91 -0
- package/skills/testing-strategy/SKILL.md +37 -0
- package/skills/ui-design-system/SKILL.md +45 -0
- package/skills/web-research/SKILL.md +40 -0
- package/skills/wow-design/SKILL.md +168 -0
- package/skills/wow-design/assets/kit/README.md +195 -0
- package/skills/wow-design/assets/kit/assets/css/base.css +158 -0
- package/skills/wow-design/assets/kit/assets/css/components.css +1001 -0
- package/skills/wow-design/assets/kit/assets/css/fonts.css +73 -0
- package/skills/wow-design/assets/kit/assets/css/pages.css +737 -0
- package/skills/wow-design/assets/kit/assets/css/tokens.css +218 -0
- package/skills/wow-design/assets/kit/assets/fonts/LICENSE-golos-text.txt +93 -0
- package/skills/wow-design/assets/kit/assets/fonts/LICENSE-lora.txt +93 -0
- package/skills/wow-design/assets/kit/assets/fonts/LICENSE-unbounded.txt +93 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-cyrillic-700-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/golos-text-latin-700-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-italic.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-cyrillic-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-latin-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-latin-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/lora-latin-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-cyrillic-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-400-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-500-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/fonts/unbounded-latin-600-normal.woff2 +0 -0
- package/skills/wow-design/assets/kit/assets/js/kit.js +550 -0
- package/skills/wow-design/assets/kit/pages/dashboard.html +539 -0
- package/skills/wow-design/assets/kit/pages/hospital.html +430 -0
- package/skills/wow-design/assets/kit/showcase.html +1164 -0
- package/skills/wow-design/assets/scripts/LICENSE-axe-core.txt +362 -0
- package/skills/wow-design/assets/scripts/LICENSE-playwright-core.txt +202 -0
- package/skills/wow-design/assets/scripts/README.md +312 -0
- package/skills/wow-design/assets/scripts/audit.mjs +1200 -0
- package/skills/wow-design/assets/scripts/capture.mjs +337 -0
- package/skills/wow-design/assets/scripts/package.json +30 -0
- package/skills/wow-design/references/anti-patterns.md +249 -0
- package/skills/wow-design/references/critique-rubric.md +259 -0
- package/skills/wow-design/references/design-brief-template.md +46 -0
- package/skills/wow-design/references/inspiration.md +200 -0
- package/skills/wow-design/references/presets.md +96 -0
- package/skills/wow-design/references/principles.md +368 -0
- package/skills/wow-design/references/stack-recipes.md +93 -0
- package/skills/wow-design/references/visual-qa.md +79 -0
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Visual QA — петля «собрал → снял → раскритиковал → исправил»
|
|
2
|
+
|
|
3
|
+
> Без скриншотов дизайн не считается проверенным. Глазами по PNG видно то, чего не видно в коде:
|
|
4
|
+
> иерархию, воздух, ритм, «дёшево/дорого», поломки адаптива.
|
|
5
|
+
|
|
6
|
+
## 1. Что нужно один раз
|
|
7
|
+
- Node.js 18+ (на этой машине Node 24).
|
|
8
|
+
- Chrome или Edge (Windows 11 — Edge есть всегда).
|
|
9
|
+
- `playwright-core` + `axe-core` в `~/.dsh/skills/wow-design/assets/scripts/`:
|
|
10
|
+
```
|
|
11
|
+
cd ~/.dsh/skills/wow-design/assets/scripts
|
|
12
|
+
npm install --no-audit --no-fund
|
|
13
|
+
```
|
|
14
|
+
Если пакеты уже стоят в другом месте — можно указать `NODE_PATH` или запускать из той папки.
|
|
15
|
+
- Скрипты ищут браузер так: `CDP_URL` → запущенный Chrome по CDP → установленный Playwright Chromium →
|
|
16
|
+
системный Edge/Chrome (`channel: msedge`/`chrome`). Обычно ничего настраивать не нужно.
|
|
17
|
+
|
|
18
|
+
## 2. Скриншоты
|
|
19
|
+
```bash
|
|
20
|
+
# одна страница, все вьюпорты и темы
|
|
21
|
+
node ~/.dsh/skills/wow-design/assets/scripts/capture.mjs path/to/page.html --name page --out screenshots
|
|
22
|
+
|
|
23
|
+
# только desktop+mobile, светлая тема, full page
|
|
24
|
+
node .../capture.mjs http://localhost:5173 --name app --viewports desktop,mobile --themes light
|
|
25
|
+
|
|
26
|
+
# отдельный элемент (например, карточка)
|
|
27
|
+
node .../capture.mjs page.html --name card --selector ".ticket-card" --themes light
|
|
28
|
+
```
|
|
29
|
+
Результат: `screenshots/page-desktop-light.png`, `page-mobile-light.png`, `page-desktop-dark.png`, … +
|
|
30
|
+
`shots.json` (манифест: пути, размеры, ошибки консоли).
|
|
31
|
+
|
|
32
|
+
## 3. Аудит
|
|
33
|
+
```bash
|
|
34
|
+
node ~/.dsh/skills/wow-design/assets/scripts/audit.mjs path/to/page.html --out screenshots
|
|
35
|
+
```
|
|
36
|
+
Проверяет: axe-core (критичные/serious нарушения), горизонтальный overflow на 390px, тач-цели < 40px,
|
|
37
|
+
порядок заголовков, alt у картинок, битые изображения, загрузку шрифтов, ошибки консоли.
|
|
38
|
+
Выход: `audit.json` + `audit.md`. Код выхода 2 — есть блокеры.
|
|
39
|
+
|
|
40
|
+
## 4. Как смотреть скриншоты (обязательно!)
|
|
41
|
+
1. `read_image` каждого PNG — не «на глаз по памяти», а реально открыть.
|
|
42
|
+
2. Первый взгляд 5 секунд: понятно ли, что это, для кого, куда нажать? Что первое цепляет?
|
|
43
|
+
3. Squint test: прищуриться — видна ли иерархия, или всё слилось в серое пятно?
|
|
44
|
+
4. Grayscale: если убрать цвет, структура остаётся? Если нет — цвета не работают.
|
|
45
|
+
5. Мобильный 390: нет ли обрезаний, скролла вбок, мелких тапов, «сжатого десктопа».
|
|
46
|
+
6. Тёмная тема: фон/поверхности/контраст/акцент — отдельная палитра, а не инверсия.
|
|
47
|
+
7. Сравни с референсом из брифа: тот же уровень «дорого»?
|
|
48
|
+
8. Выпиши 5–10 конкретных правок с числами (px/rem/значения токенов), а не «сделать красивее».
|
|
49
|
+
|
|
50
|
+
## 5. Итерации
|
|
51
|
+
```
|
|
52
|
+
v1: собрал → capture → read_image → 8 правок
|
|
53
|
+
v2: правки → capture → read_image → 4 правки → rubric
|
|
54
|
+
v3: финальные скриншоты → отчёт
|
|
55
|
+
```
|
|
56
|
+
Минимум 2 итерации. Первый вариант почти всегда «нормальный, но не WOW» — это ожидаемо.
|
|
57
|
+
|
|
58
|
+
## 6. Гейт перед сдачей
|
|
59
|
+
- Рубрика (`references/critique-rubric.md`): средний ≥ 4.4/5, ни один критерий < 4.
|
|
60
|
+
- axe: critical/serious = 0.
|
|
61
|
+
- 390px: overflow = 0, тапы ≥ 40px, читаемо.
|
|
62
|
+
- Шрифты загружены (`document.fonts.status === "loaded"`), нет FOUT-скачков на скриншоте.
|
|
63
|
+
- Тёмная и светлая темы сняты и просмотрены.
|
|
64
|
+
- Нет ни одного антипаттерна из `references/anti-patterns.md`.
|
|
65
|
+
- Скриншоты приложены к отчёту с путями.
|
|
66
|
+
|
|
67
|
+
## 7. Если скриншоты не запускаются
|
|
68
|
+
1. Проверь Node: `node -v`.
|
|
69
|
+
2. Проверь пакеты: `ls assets/scripts/node_modules/playwright-core`; при отсутствии — `npm install` в папке скриптов.
|
|
70
|
+
3. Проверь браузер: `msedge --version` или путь к Chrome. Скрипт подскажет, что не найдено.
|
|
71
|
+
4. Если Chrome уже запущен с CDP — укажи `CDP_URL=http://127.0.0.1:9333` и не поднимай второй.
|
|
72
|
+
5. В крайнем случае — сделай скриншоты вручную (Win+Shift+S) и всё равно оцени по рубрике: визуальная
|
|
73
|
+
проверка важнее автоматизации.
|
|
74
|
+
|
|
75
|
+
## 8. CI (если проект уже на Playwright)
|
|
76
|
+
- Визуальные снапшоты: `await expect(page).toHaveScreenshot('home.png', { fullPage: true })`.
|
|
77
|
+
- Доступность: `@axe-core/playwright` — `expect(violations.filter(...)).toEqual([])`.
|
|
78
|
+
- Матрица: 1440×900 и 390×844, light/dark (эмуляция `colorScheme`).
|
|
79
|
+
- Обновляй снапшоты осознанно (`--update-snapshots`), в ревью смотри диффы.
|