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
@@ -1,198 +1,204 @@
1
- # Контент-SEO: интент, кластеры, структура, перелинковка
1
+ > Часть навыка seo. ≈5 850 токенов. Читать, когда: планируешь новую страницу или статью — бриф, интент, кластеры, структура, перелинковка, CTA, freshness.
2
2
 
3
- > Контент ранжируется, когда он **лучше всех отвечает на конкретный интент** и заслуживает доверия.
4
- > Ключевые слова — следствие, а не цель. Здесь — как планировать, писать и связывать страницы.
5
- > Проверено 04.11.2026.
3
+ # Контент-SEO: интент, кластеры, структура, перелинковка
6
4
 
7
- ## 1. SEO-бриф (заполняется до текста, 10 минут)
5
+ > Контент ранжируется, когда он **лучше всех отвечает на конкретный интент** и заслуживает доверия.
6
+ > Ключевые слова — следствие, а не цель. Здесь — как планировать, писать и связывать страницы.
7
+ > Проверено 04.11.2026.
8
+
9
+ ## 1. SEO-бриф (заполняется до текста, 10 минут)
8
10
 
9
11
  ```
10
- Страница: <URL/тип>
11
- Интент: <информационный | коммерческий | навигационный | локальный>
12
- Кто ищет: <пациент / родственник / врач-направленец / журналист>
13
- Запрос-кластер: <главный ВЧ/СЧ> + <5–15 поддерживающих НЧ>
14
- Что в топе: <типы страниц, форматы, длина, наличие карт/видео/калькуляторов>
15
- Чего не хватает в топе: <наш шанс: глубина, локальность, эксперт, цены, запись, FAQ>
16
- Целевое действие (CTA): <запись / звонок / маршрут / скачать памятку>
17
- Доказательства (E-E-A-T): <автор-врач, рецензент, оборудование, лицензия, цифры>
18
- Внутренние ссылки: <на 3–5 страниц: хаб, смежные услуги, врач>
19
- Схема: <тип JSON-LD>
20
- Дата/актуальность: <когда обновлять>
12
+ Страница: <URL/тип>
13
+ Интент: <информационный | коммерческий | навигационный | локальный>
14
+ Кто ищет: <пациент / родственник / врач-направленец / журналист>
15
+ Гео: <город/район, филиалы, зона обслуживания> ← для клиники критично
16
+ Запрос-кластер: <главный ВЧ/СЧ> + <5–15 поддерживающих НЧ>
17
+ Что в топе: <типы страниц, форматы, длина, наличие карт/видео/калькуляторов>
18
+ Чего не хватает в топе: <наш шанс: глубина, локальность, эксперт, цены, запись, FAQ>
19
+ Целевое действие (CTA): <запись / звонок / маршрут / скачать памятку>
20
+ Доказательства (E-E-A-T): <автор-врач, рецензент, оборудование, лицензия, цифры>
21
+ Внутренние ссылки: <на 3–5 страниц: хаб, смежные услуги, врач>
22
+ Схема: <тип JSON-LD>
23
+ Дата/актуальность: <когда обновлять>
21
24
  ```
22
25
 
23
- ## 2. Интент: 4 типа и что под них строится
26
+ ## 2. Интент: 4 типа и что под них строится
24
27
 
25
- | Интент | Примеры запросов | Формат страницы | Главный ответ |
28
+ | Интент | Примеры запросов | Формат страницы | Главный ответ |
26
29
  |---|---|---|---|
27
- | **Информационный** | «высокое давление симптомы», «как подготовиться к МРТ» | статья/справочник: ответ в первом абзаце, H2-вопросы, FAQ | прямой ответ + «когда к врачу» |
28
- | **Коммерческий/транзакционный** | «записаться к кардиологу», «мрт цена», «платная клиника» | услуга/лендинг: цена, врачи, запись, отзывы, лицензия | цена + как записаться |
29
- | **Навигационный** | «гкб 31 официальный сайт», «гкб 31 врачи» | главная/контакты/раздел: навигация, телефон, расписание | быстрый переход к нужному |
30
- | **Локальный** | «клиника рядом», «больница на бауманской», «мрт в москве» | страница филиала/направления + карта, NAP, часы | адрес, часы, маршрут |
31
-
32
- Правило: **один URL — один интент**. Если интентов два (информация + запись) — либо одна страница с явными
33
- блоками, либо две страницы с перелинковкой (статья → услуга).
34
-
35
- ## 3. Семантика: сбор и кластеризация
36
-
37
- ### Источники
38
- 1. **Яндекс Вордстат** (`wordstat.yandex.ru`) — по региону! Для example.org — Москва и область. Учитывай, что
39
- Вордстат показывает суммарную частотность по фразам с хвостами.
40
- 2. Google Search Console → «Эффективность» → запросы (реальные показы вашего сайта) — самый ценный источник
41
- «что уже почти работает».
42
- 3. Яндекс Вебмастер → «Поисковые запросы».
43
- 4. Подсказки Яндекс/Google, «Похожие запросы», «Люди также спрашивают».
44
- 5. Конкуренты в топе (Медси/СМ-Клиника/госбольницы) — их структура, H2, FAQ.
45
- 6. Внутренний поиск сайта и вопросы в колл-центре/на приёме — золото для FAQ и статей.
46
-
47
- ### Кластеризация
48
- - Один кластер = один интент = **одна страница**.
49
- - В кластере: 1 главный запрос + 5–15 поддерживающих (синонимы, уточнения, вопросы).
50
- - Проверка каннибализации: в топе по двум запросам — **разные** страницы вашего сайта? Если одна и та же —
51
- норма; если две конкурируют — склей/перелинкуй/переопредели интент.
52
- - Приоритизация: частотность × коммерческая ценность × близость к записи × сложность (конкуренты).
53
- Для клиники: услуги > направления > статьи (но статьи приводят новых и поддерживают услуги).
54
-
55
- ### Частотность: как не соврать
56
- - Указывай источник, регион и дату («Вордстат, Москва, ноябрь 2026») — иначе цифра бессмысленна.
57
- - НЧ/СЧ/ВЧ — понятие относительное: для госбольницы «мрт гкб 31» может быть ценнее, чем «мрт москва».
58
- - Не гонись за ВЧ «мрт» — там коммерческие гиганты; выигрывай НЧ/СЧ + локальные + информационные.
59
-
60
- ## 4. Структура лендинга/страницы услуги
30
+ | **Информационный** | «высокое давление симптомы», «как подготовиться к МРТ» | статья/справочник: ответ в первом абзаце, H2-вопросы, FAQ | прямой ответ + «когда к врачу» |
31
+ | **Коммерческий/транзакционный** | «записаться к кардиологу», «мрт цена», «платная клиника» | услуга/лендинг: цена, врачи, запись, отзывы, лицензия | цена + как записаться |
32
+ | **Навигационный** | «гкб 31 официальный сайт», «гкб 31 врачи» | главная/контакты/раздел: навигация, телефон, расписание | быстрый переход к нужному |
33
+ | **Локальный** | «клиника рядом», «больница на бауманской», «мрт в москве» | страница филиала/направления + карта, NAP, часы | адрес, часы, маршрут |
34
+
35
+ Правило: **один URL — один интент**. Если интентов два (информация + запись) — либо одна страница с явными
36
+ блоками, либо две страницы с перелинковкой (статья → услуга).
37
+
38
+ ## 3. Семантика: сбор и кластеризация
39
+
40
+ ### Источники
41
+ 1. **Яндекс Вордстат** (`wordstat.yandex.ru`) — по региону! Для example.org — Москва и область. Учитывай, что
42
+ Вордстат показывает суммарную частотность по фразам с хвостами.
43
+ 2. Google Search Console → «Эффективность» → запросы (реальные показы вашего сайта) — самый ценный источник
44
+ «что уже почти работает».
45
+ 3. Яндекс Вебмастер → «Поисковые запросы».
46
+ 4. Подсказки Яндекс/Google, «Похожие запросы», «Люди также спрашивают».
47
+ 5. Конкуренты в топе (Медси/СМ-Клиника/госбольницы) — их структура, H2, FAQ.
48
+ 6. Внутренний поиск сайта и вопросы в колл-центре/на приёме — золото для FAQ и статей.
49
+
50
+ **Актуальную выдачу, конкурентов и тренды проверяй живым поиском** (`web-research`: дата проверки + ссылки),
51
+ а не по памяти модели. Форматы в топе (статья, карточка, видео, карта, калькулятор) задают формат твоей страницы.
52
+
53
+ ### Кластеризация
54
+ - Один кластер = один интент = **одна страница**.
55
+ - В кластере: 1 главный запрос + 5–15 поддерживающих (синонимы, уточнения, вопросы).
56
+ - Проверка каннибализации: в топе по двум запросам — **разные** страницы вашего сайта? Если одна и та же —
57
+ норма; если две конкурируют — склей/перелинкуй/переопредели интент.
58
+ - Приоритизация: частотность × коммерческая ценность × близость к записи × сложность (конкуренты).
59
+ Для клиники: услуги > направления > статьи (но статьи приводят новых и поддерживают услуги).
60
+
61
+ ### Частотность: как не соврать
62
+ - Указывай источник, регион и дату («Вордстат, Москва, ноябрь 2026») — иначе цифра бессмысленна.
63
+ - НЧ/СЧ/ВЧ — понятие относительное: для госбольницы «мрт гкб 31» может быть ценнее, чем «мрт москва».
64
+ - Не гонись за ВЧ «мрт» — там коммерческие гиганты; выигрывай НЧ/СЧ + локальные + информационные.
65
+
66
+ ## 4. Структура лендинга/страницы услуги
61
67
 
62
68
  ```
63
- H1: {Услуга} в {Клиника}, {город}
64
- kicker/надзаголовок: {специальность} · {стаж} · {ОМС/ДМС}
65
- 1. Лид 2–4 строки: что, кому, сколько стоит, как записаться ← ответ на интент
66
- 2. CTA-блок: запись онлайн + телефон (виден без скролла)
67
- 3. «Кому показано» (список)
68
- 4. «Как проходит» (шаги, время, ощущения)
69
- 5. «Подготовка» (что взять/не есть/лекарства)
70
- 6. «Противопоказания и ограничения»
71
- 7. «Результат и что дальше»
72
- 8. «Цены» (таблица, что входит, ОМС/ДМС)
73
- 9. «Врачи» (2–4 карточки со ссылками)
74
- 10. «Отзывы» (реальные, с площадок)
75
- 11. «FAQ» (5–8 вопросов)
76
- 12. «Как записаться» (телефон, форма, адрес, часы)
77
- 13. Экспертный блок: автор, рецензент, дата, источники, дисклеймер
69
+ H1: {Услуга} в {Клиника}, {город}
70
+ kicker/надзаголовок: {специальность} · {стаж} · {ОМС/ДМС}
71
+ 1. Лид 2–4 строки: что, кому, сколько стоит, как записаться ← ответ на интент
72
+ 2. CTA-блок: запись онлайн + телефон (виден без скролла)
73
+ 3. «Кому показано» (список)
74
+ 4. «Как проходит» (шаги, время, ощущения)
75
+ 5. «Подготовка» (что взять/не есть/лекарства)
76
+ 6. «Противопоказания и ограничения»
77
+ 7. «Результат и что дальше»
78
+ 8. «Цены» (таблица, что входит, ОМС/ДМС)
79
+ 9. «Врачи» (2–4 карточки со ссылками)
80
+ 10. «Отзывы» (реальные, с площадок)
81
+ 11. «FAQ» (5–8 вопросов)
82
+ 12. «Как записаться» (телефон, форма, адрес, часы)
83
+ 13. Экспертный блок: автор, рецензент, дата, источники, дисклеймер
78
84
  ```
79
85
 
80
- Требования к тексту: ответ в первых 100–150 словах; абзацы 2–4 строки; списки/таблицы; конкретика (цифры,
81
- оборудование, имена); без «инновационных решений»; без воды ради объёма.
86
+ Требования к тексту: ответ в первых 100–150 словах; абзацы 2–4 строки; списки/таблицы; конкретика (цифры,
87
+ оборудование, имена); без «инновационных решений»; без воды ради объёма.
82
88
 
83
- ## 5. Структура статьи/блога
89
+ ## 5. Структура статьи/блога
84
90
 
85
91
  ```
86
- H1: {Вопрос/тема} — {уточнение}
87
- Лид: прямой ответ (2–4 предложения)
88
- H2: Почему это важно / что это
89
- H2: Симптомы / признаки (если применимо)
90
- H2: Причины / факторы риска
91
- H2: Когда нужно к врачу (красные флаги)
92
- H2: Диагностика: какие обследования
93
- H2: Лечение: что делает врач (без назначений «по интернету»)
94
- H2: Профилактика
95
- H2: Частые вопросы (FAQ, 5–8)
96
- Блок эксперта: автор, рецензент, дата, источники, дисклеймер
97
- Блок перелинковки: 3–5 ссылок на услуги/врачей/смежные статьи
92
+ H1: {Вопрос/тема} — {уточнение}
93
+ Лид: прямой ответ (2–4 предложения)
94
+ H2: Почему это важно / что это
95
+ H2: Симптомы / признаки (если применимо)
96
+ H2: Причины / факторы риска
97
+ H2: Когда нужно к врачу (красные флаги)
98
+ H2: Диагностика: какие обследования
99
+ H2: Лечение: что делает врач (без назначений «по интернету»)
100
+ H2: Профилактика
101
+ H2: Частые вопросы (FAQ, 5–8)
102
+ Блок эксперта: автор, рецензент, дата, источники, дисклеймер
103
+ Блок перелинковки: 3–5 ссылок на услуги/врачей/смежные статьи
98
104
  ```
99
105
 
100
- - Статья не заменяет услугу: в конце — естественный переход «записаться к …».
101
- - Не пиши «лечение» как инструкцию; пиши «как лечат», «что назначает врач», «чего не делать».
102
- - Не копируй тексты других клиник: перерабатывай факты, добавляй локальную специфику и эксперта.
106
+ - Статья не заменяет услугу: в конце — естественный переход «записаться к …».
107
+ - Не пиши «лечение» как инструкцию; пиши «как лечат», «что назначает врач», «чего не делать».
108
+ - Не копируй тексты других клиник: перерабатывай факты, добавляй локальную специфику и эксперта.
103
109
 
104
- ## 6. Внутренняя перелинковка
110
+ ## 6. Внутренняя перелинковка
105
111
 
106
- - **Хабы** — страницы разделов (`/napravleniya/`, `/uslugi/`, `/vrachi/`, `/blog/`), которые ссылаются на детей
107
- и получают ссылки с главной.
108
- - Схема «статья → услуга → врач»: информационная статья ссылается на услугу, услуга — на врачей и статьи,
109
- врачи — на услуги и расписание.
110
- - 2–6 контекстных ссылок на 1000 слов; анкоры описательные, разные (не «мрт» ×20).
111
- - Не ссылайся на все страницы со всех — это шум; ссылайся по смыслу.
112
- - Новые страницы получают 2–5 входящих ссылок сразу (иначе «сироты»).
113
- - Проверка: краул → список страниц без входящих ссылок; `seo-audit.mjs` умеет считать внутренние ссылки
114
- и находить сирот в рамках краула.
112
+ - **Хабы** — страницы разделов (`/napravleniya/`, `/uslugi/`, `/vrachi/`, `/blog/`), которые ссылаются на детей
113
+ и получают ссылки с главной.
114
+ - Схема «статья → услуга → врач»: информационная статья ссылается на услугу, услуга — на врачей и статьи,
115
+ врачи — на услуги и расписание.
116
+ - 2–6 контекстных ссылок на 1000 слов; анкоры описательные, разные (не «мрт» ×20).
117
+ - Не ссылайся на все страницы со всех — это шум; ссылайся по смыслу.
118
+ - Новые страницы получают 2–5 входящих ссылок сразу (иначе «сироты»).
119
+ - Проверка: краул → список страниц без входящих ссылок; `seo-audit.mjs` умеет считать внутренние ссылки
120
+ и находить сирот в рамках краула.
115
121
 
116
- ## 7. CTA и микрокопирайт
122
+ ## 7. CTA и микрокопирайт
117
123
 
118
- - CTA — глагол + выгода: «Записаться к кардиологу», «Посмотреть цены», «Проложить маршрут».
119
- - Один главный CTA на экран; телефон и «Записаться» — всегда в шапке.
120
- - Форма: минимум полей (имя, телефон), явное согласие на ПДн (152-ФЗ), понятная ошибка, состояние загрузки.
121
- - Микрокопирайт: «Запись подтверждает администратор в течение 15 минут» лучше, чем «Мы вам перезвоним».
122
- - Не используй ложную срочность, «осталось 2 места», «только сегодня» — это недоверие и риск.
123
- - Для YMYL CTA не должен конкурировать с «когда срочно к врачу»: при красных флагах — «звоните 103/112».
124
+ - CTA — глагол + выгода: «Записаться к кардиологу», «Посмотреть цены», «Проложить маршрут».
125
+ - Один главный CTA на экран; телефон и «Записаться» — всегда в шапке.
126
+ - Форма: минимум полей (имя, телефон), явное согласие на ПДн (152-ФЗ), понятная ошибка, состояние загрузки.
127
+ - Микрокопирайт: «Запись подтверждает администратор в течение 15 минут» лучше, чем «Мы вам перезвоним».
128
+ - Не используй ложную срочность, «осталось 2 места», «только сегодня» — это недоверие и риск.
129
+ - Для YMYL CTA не должен конкурировать с «когда срочно к врачу»: при красных флагах — «звоните 103/112».
124
130
 
125
- ## 8. Freshness и жизненный цикл контента
131
+ ## 8. Freshness и жизненный цикл контента
126
132
 
127
- | Тип контента | Обновление | Триггер |
133
+ | Тип контента | Обновление | Триггер |
128
134
  |---|---|---|
129
- | Цены, расписание, приём | раз в квартал / при изменении | изменился прайс/график |
130
- | Услуги | раз в 6–12 мес | новое оборудование, методика, врачи |
131
- | Статьи о здоровье | раз в 6–12 мес | новые клинические рекомендации |
132
- | Новости/события | после события — итоги | завершилось |
133
- | Врачи | при изменении данных | новый сертификат, должность |
134
-
135
- - Обновляй `dateModified`/`lastReviewed` **только при реальных изменениях**.
136
- - Устаревшую страницу: обновить, объединить с актуальной (301) или удалить (410) — не оставлять в индексе «труп».
137
- - «Вечнозелёные» статьи (симптомы, подготовка) обновляй по рекомендациям, а не по дате в календаре.
138
-
139
- ## 9. Локализация и русский язык
140
-
141
- - Пиши по-русски, живым языком; медицинские термины — с пояснением.
142
- - Единые термины по сайту: «приём» vs «консультация», «отделение» vs «центр» — выбери и держи.
143
- - Локальные маркеры: район, метро, округ, «госпитализация в Москве», ОМС Москвы, ДМС.
144
- - Не переводи названия учреждений/должностей вольно; ФИО — в исходном виде.
145
- - Числа: `1 200` (неразрывный пробел), цены `4 500 ₽`, даты `20.10.2026` (в тексте) и ISO (в разметке).
146
- - Ё — по стилю проекта (гkb-31.ru — обычно без ё в тексте, но проверяй единообразие).
147
- - Транслит URL — единая схема (`й→y`, `я→ya`, `ж→zh`), не смешивай `h` и `kh` в разных разделах.
148
-
149
- ## 10. Контент в эпоху ИИ-ответов (AI Overviews, AI Mode, Нейро)
150
-
151
- Google прямо говорит: **особых мер для ИИ-функций не нужно** — нужны индексация, сниппеты разрешены, полезный
152
- контент и обычные SEO-практики. Из этого следуют практические выводы:
153
-
154
- 1. **Отвечай прямо и коротко в начале** — ИИ берёт «готовый ответ» из первых абзацев и списков.
155
- 2. **Структурируй**: H2-вопросы, списки, таблицы, шаги — «извлекаемый» контент цитируется чаще.
156
- 3. **Факты и сущности**: имена врачей, оборудование, цифры, даты, адреса — связывай разметкой
157
- (`Physician`, `MedicalClinic`, `MedicalWebPage`), чтобы система понимала, кто/что/где.
158
- 4. **Уникальность опыта**: реальные кейсы, локальная специфика, комментарии врачей — ИИ не может это выдумать
159
- за вас; «пересказ пересказа» не цитируют.
160
- 5. **Не блокируй** `Google-Extended`/сниппеты, если хочешь попадать в ИИ-ответы; понимай trade-off.
161
- 6. **llms.txt** — Google официально: файл не нужен и на ранжирование не влияет; не трать время.
162
- 7. Массовая генерация ИИ-текстов без редактуры — риск нарушения политики «scaled content abuse».
163
-
164
- ## 11. Редакционный процесс (чтобы контент был, а не «когда-нибудь»)
165
-
166
- 1. **План на квартал:** 8–12 страниц (2 услуги, 2 направления, 4–6 статей, 1–2 новости/события).
167
- 2. **Бриф** (§1) → **черновик** автора-врача/копирайтера → **медредактура** (рецензент) → **SEO-редактура**
168
- (title/description/H1/H2/FAQ/перелинковка/разметка) → **вёрстка** → **проверка** (гейт) → **публикация** →
169
- **мониторинг** (GSC/Вебмастер, 2–4 недели).
170
- 3. Единый чек-лист публикации — `audit-checklist.md`, блок «Контент».
171
- 4. Никакой публикации без: автора, даты, дисклеймера (для медицины), внутренних ссылок, alt.
172
-
173
- ## 12. Частые ошибки контента (топ-15)
174
-
175
- 1. Текст «под ключ», а не под интент.
176
- 2. Ответ на запрос — в середине/конце страницы.
177
- 3. Дубль услуги в двух разделах (каннибализация).
178
- 4. Вода: «мы предлагаем широкий спектр», «индивидуальный подход».
179
- 5. Нет цен/сроков/врачей — только «уточняйте».
180
- 6. Нет противопоказаний и «когда к врачу» (YMYL).
181
- 7. Автор «Редакция», дата «сегодня» у всего.
182
- 8. Копипаст с другого медсайта.
183
- 9. 5000 слов без структуры и списков.
184
- 10. FAQ выдуманный, не из спроса.
185
- 11. Анкоры «подробнее/здесь» ×100.
186
- 12. Статья без ссылки на услугу/врача (тупик).
187
- 13. Нет даты обновления при изменении цены.
188
- 14. Обещания излечения и запугивание.
189
- 15. Публикация без проверки на мобильном (таблицы, длинные слова, формы).
190
-
191
- ## 13. Первоисточники
192
-
193
- - Google. Полезный контент: https://developers.google.com/search/docs/essentials/creating-helpful-content
194
- - Google. Спам-политики (scaled content abuse): https://developers.google.com/search/docs/essentials/spam-policies
195
- - Google. ИИ-функции и ваш сайт: https://developers.google.com/search/docs/appearance/ai-features
196
- - Google. Как писать описательные title/сниппеты: https://developers.google.com/search/docs/appearance/title-link
197
- - Яндекс Вордстат: https://wordstat.yandex.ru
198
- - Яндекс Вебмастер: https://yandex.ru/support/webmaster/ru/
135
+ | Цены, расписание, приём | раз в квартал / при изменении | изменился прайс/график |
136
+ | Услуги | раз в 6–12 мес | новое оборудование, методика, врачи |
137
+ | Статьи о здоровье | раз в 6–12 мес | новые клинические рекомендации |
138
+ | Новости/события | после события — итоги | завершилось |
139
+ | Врачи | при изменении данных | новый сертификат, должность |
140
+
141
+ - Обновляй `dateModified`/`lastReviewed` **только при реальных изменениях**.
142
+ - Устаревшую страницу: обновить, объединить с актуальной (301) или удалить (410) — не оставлять в индексе «труп».
143
+ - «Вечнозелёные» статьи (симптомы, подготовка) обновляй по рекомендациям, а не по дате в календаре.
144
+
145
+ ## 9. Локализация и русский язык
146
+
147
+ - Пиши по-русски, живым языком; медицинские термины — с пояснением.
148
+ - Единые термины по сайту: «приём» vs «консультация», «отделение» vs «центр» — выбери и держи.
149
+ - Локальные маркеры: район, метро, округ, «госпитализация в Москве», ОМС Москвы, ДМС.
150
+ - Не переводи названия учреждений/должностей вольно; ФИО — в исходном виде.
151
+ - Числа: `1 200` (неразрывный пробел), цены `4 500 ₽`, даты `20.10.2026` (в тексте) и ISO (в разметке).
152
+ - Ё — по стилю проекта (gkb-31.ru — обычно без ё в тексте, но проверяй единообразие).
153
+ - Транслит URL — единая схема (`й→y`, `я→ya`, `ж→zh`), не смешивай `h` и `kh` в разных разделах.
154
+
155
+ ## 10. Контент в эпоху ИИ-ответов (AI Overviews, AI Mode, Нейро)
156
+
157
+ Google прямо говорит: **особых мер для ИИ-функций не нужно** — нужны индексация, сниппеты разрешены, полезный
158
+ контент и обычные SEO-практики. Из этого следуют практические выводы:
159
+
160
+ 1. **Отвечай прямо и коротко в начале** — ИИ берёт «готовый ответ» из первых абзацев и списков.
161
+ 2. **Структурируй**: H2-вопросы, списки, таблицы, шаги — «извлекаемый» контент цитируется чаще.
162
+ 3. **Факты и сущности**: имена врачей, оборудование, цифры, даты, адреса — связывай разметкой
163
+ (`Physician`, `MedicalClinic`, `MedicalWebPage`), чтобы система понимала, кто/что/где.
164
+ 4. **Уникальность опыта**: реальные кейсы, локальная специфика, комментарии врачей — ИИ не может это выдумать
165
+ за вас; «пересказ пересказа» не цитируют.
166
+ 5. **Не блокируй** `Google-Extended`/сниппеты, если хочешь попадать в ИИ-ответы; понимай trade-off.
167
+ 6. **llms.txt** — Google официально: файл не нужен и на ранжирование не влияет; не трать время.
168
+ 7. Массовая генерация ИИ-текстов без редактуры — риск нарушения политики «scaled content abuse».
169
+
170
+ ## 11. Редакционный процесс (чтобы контент был, а не «когда-нибудь»)
171
+
172
+ 1. **План на квартал:** 8–12 страниц (2 услуги, 2 направления, 4–6 статей, 1–2 новости/события).
173
+ 2. **Бриф** (§1) → **черновик** автора-врача/копирайтера → **медредактура** (рецензент) → **SEO-редактура**
174
+ (title/description/H1/H2/FAQ/перелинковка/разметка) → **вёрстка** → **проверка** (гейт) → **публикация** →
175
+ **мониторинг** (GSC/Вебмастер, 2–4 недели).
176
+ 3. Единый чек-лист публикации — `audit-checklist.md`, блок «Контент».
177
+ 4. Никакой публикации без: автора, даты, дисклеймера (для медицины), внутренних ссылок, alt.
178
+
179
+ ## 12. Частые ошибки контента (топ-15)
180
+
181
+ 1. Текст «под ключ», а не под интент.
182
+ 2. Ответ на запрос — в середине/конце страницы.
183
+ 3. Дубль услуги в двух разделах (каннибализация).
184
+ 4. Вода: «мы предлагаем широкий спектр», «индивидуальный подход».
185
+ 5. Нет цен/сроков/врачей — только «уточняйте».
186
+ 6. Нет противопоказаний и «когда к врачу» (YMYL).
187
+ 7. Автор «Редакция», дата «сегодня» у всего.
188
+ 8. Копипаст с другого медсайта.
189
+ 9. 5000 слов без структуры и списков.
190
+ 10. FAQ выдуманный, не из спроса.
191
+ 11. Анкоры «подробнее/здесь» ×100.
192
+ 12. Статья без ссылки на услугу/врача (тупик).
193
+ 13. Нет даты обновления при изменении цены.
194
+ 14. Обещания излечения и запугивание.
195
+ 15. Публикация без проверки на мобильном (таблицы, длинные слова, формы).
196
+
197
+ ## 13. Первоисточники
198
+
199
+ - Google. Полезный контент: https://developers.google.com/search/docs/essentials/creating-helpful-content
200
+ - Google. Спам-политики (scaled content abuse): https://developers.google.com/search/docs/essentials/spam-policies
201
+ - Google. ИИ-функции и ваш сайт: https://developers.google.com/search/docs/appearance/ai-features
202
+ - Google. Как писать описательные title/сниппеты: https://developers.google.com/search/docs/appearance/title-link
203
+ - Яндекс Вордстат: https://wordstat.yandex.ru
204
+ - Яндекс Вебмастер: https://yandex.ru/support/webmaster/ru/
@@ -1,3 +1,5 @@
1
+ > Часть навыка seo. ≈7 100 токенов. Читать, когда: медицинская страница — авторство, даты, источники, дисклеймеры, лицензия, NAP, отзывы, YMYL-гейт.
2
+
1
3
  # E-E-A-T и YMYL для медицины (example.org)
2
4
 
3
5
  > Медицина — классический **YMYL** (Your Money or Your Life): контент влияет на здоровье, поэтому поисковики
@@ -1,3 +1,5 @@
1
+ > Часть навыка seo. ≈7 250 токенов. Читать, когда: настраиваешь GSC/Вебмастер/GA4/Метрику, KPI, UTM, мониторинг или решаешь, чем Google отличается от Яндекса.
2
+
1
3
  # Измерение SEO: GSC, Яндекс Вебмастер, GA4/Метрика, KPI
2
4
 
3
5
  > «Сделали SEO» без baseline и замеров — не работа, а мнение. Здесь — какие отчёты смотреть, как не обмануться
@@ -209,7 +211,32 @@ API: Яндекс Вебмастер API (индексирование, поис
209
211
  9. Не ведут лог изменений — не понять причину.
210
212
  10. Обещают «топ-1 за месяц» — репутационный риск.
211
213
 
212
- ## 10. Первоисточники
214
+ ## 10. Google и Яндекс: различия, которые важны
215
+
216
+ Русский рынок — **оба поисковика одновременно**. Правило: делай так, чтобы работало в обоих, но не жертвуй
217
+ одним ради другого. Единая база: семантика, полезный контент, скорость, чистые URL, валидная разметка,
218
+ сильные внутренние ссылки.
219
+
220
+ | Аспект | Google | Яндекс |
221
+ |---|---|---|
222
+ | Основной инструмент | Google Search Console | Яндекс Вебмастер |
223
+ | Качество сайта | PageRank + тематичность (публичной метрики нет) | **ИКС** (Индекс качества сайта), публичный, обновляется примерно раз в месяц |
224
+ | Регион | гео по домену/контенту, Google Business Profile | **Регион в Вебмастере** (для «клиника в Москве» — критично) + Яндекс Бизнес |
225
+ | Сниппеты | rich results (Article, Organization, Breadcrumb на десктопе, Product…) | сниппеты, быстрые ссылки, «Вопросы и ответы» (разметка + Вебмастер) |
226
+ | Параметры URL | canonical + «Инструмент проверки URL» | `Clean-param` в `robots.txt` + canonical |
227
+ | Роботы | Googlebot, Google-Extended (обучение ИИ) | YandexBot (+ YandexGPT-обучение не управляется отдельным токеном — следи за изменениями) |
228
+ | ИИ-ответы | AI Overviews, AI Mode (учитываются в GSC, тип «Веб») | Яндекс Нейро (по отраслевым данным опирается на верхние результаты; **проверить на актуальной версии**) |
229
+ | Аналитика | GA4 | Яндекс Метрика (цели, вебвизор, карты скроллинга) |
230
+ | Локальное SEO | Google Business Profile, отзывы | Яндекс Бизнес, Яндекс Карты, 2ГИС, отзывы с ответами |
231
+
232
+ Что из этого следует на практике:
233
+ - **Регион** — настроить в Вебмастере, иначе локальные запросы не отработают (`eeat-medical.md` §6).
234
+ - **`Clean-param`** нужен только Яндексу; Google игнорирует директиву (`technical-seo.md` §3).
235
+ - **ИКС** — ориентир, а не KPI: не отчитывайся им как результатом (§4).
236
+ - **Сниппеты** различаются: не обещай заказчику одинаковую картинку в двух поисковиках.
237
+ - **ИИ-ответы** в обоих случаях не имеют отдельного отчёта — оценивай по CTR и распределению запросов.
238
+
239
+ ## 11. Первоисточники
213
240
 
214
241
  - Search Console (справка): https://support.google.com/webmasters
215
242
  - GSC API: https://developers.google.com/webmaster-tools
@@ -1,3 +1,5 @@
1
+ > Часть навыка seo. ≈6 400 токенов. Читать, когда: верстаешь страницу — title/description/H1–H6, URL, контент, изображения, анкоры, OG, крошки, управление сниппетом.
2
+
1
3
  # On-page SEO — как писать и верстать страницу
2
4
 
3
5
  > On-page решает, **поймут ли поисковик и человек, о чём страница, и кликнут ли по сниппету**.
@@ -45,6 +47,8 @@
45
47
  ## 4. URL
46
48
 
47
49
  Правила:
50
+ - **Иерархия:** `раздел/подраздел/страница`, максимум 3–4 уровня. Клиника: `/napravleniya/kardiologiya/`,
51
+ `/uslugi/mrt-golovy/`, `/vrachi/ivanov-ivan-ivanovich/`, `/novosti/...`.
48
52
  - **Латиница + транслит**, строчные буквы, дефисы между словами. Google прямо рекомендует `-`, а не `_`
49
53
  (уточнено в документации Google в октябре 2026).
50
54
  - Без стоп-слов: `/uslugi/mrt/`, а не `/uslugi/mrt-uslugi-v-moskve-luchshaya-klinika/`.
@@ -104,6 +108,7 @@
104
108
  ## 7. Внутренние ссылки и анкоры
105
109
 
106
110
  - Каждая страница получает **входящие** ссылки: из хаба раздела, из смежных услуг, из статей, из крошек.
111
+ - Каждый важный URL достижим за **≤3 клика** от главной; хабы разделов ссылаются на своих детей.
107
112
  - Исходящие из текста: **2–6** на страницу (1000 слов), анкоры описательные: «записаться к кардиологу»,
108
113
  «цены на МРТ», а не «здесь», «подробнее», «читать».
109
114
  - Не ставь все ссылки в первый абзац и не превращай абзац в список ссылок.