dsh-desktop-kit 1.0.0 → 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 (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 +84 -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,86 @@
1
+ # API project_memory и детали анализа
2
+
3
+ > Часть навыка project-deep-dive. ≈2 950 токенов. Читать, когда: нужны полная таблица действий и аргументов, детали шагов анализа, форма отчёта или антипаттерны.
4
+
5
+ ## 1. Хранилище и API
6
+
7
+ Хранилище: `%USERPROFILE%\.dsh\projects-memory\<slug>\` — `PROJECT.md`, `ARCHITECTURE.md`, `CODE-MAP.md`, `INVARIANTS.md`, `GOTCHAS.md`, `RUNBOOK.md`, `JOURNAL/YYYY-MM.md`, `INDEX.json`.
8
+
9
+ Сигнатура: `project_memory(action, project?, file?, content?, query?, root?, name?, mode?, maxChars?)`. В текущей сборке у `register` есть необязательный `stack` — короткое описание стека.
10
+
11
+ | action | Что делает | Обязательные аргументы | Пример |
12
+ |---|---|---|---|
13
+ | `status` | состояние хранилища, досье и свежести | — | `project_memory(action="status")` |
14
+ | `register` | регистрирует проект | `name`, `root` (+ `stack`) | `project_memory(action="register", name="my-app", root="C:\work\my-app", stack="Laravel 13 / PostgreSQL")` |
15
+ | `list` | список проектов | — | `project_memory(action="list")` |
16
+ | `read` | читает файл досье | `project`, `file` | `project_memory(action="read", project="my-app", file="ARCHITECTURE", maxChars=8000)` |
17
+ | `search` | ищет по досье перед записью | `query` | `project_memory(action="search", project="my-app", query="очереди")` |
18
+ | `append_journal` | дописывает сессию в `JOURNAL/YYYY-MM.md` | `project`, `content` | `project_memory(action="append_journal", project="my-app", content="...")` |
19
+ | `update_section` | записывает секцию досье | `project`, `file`, `content`, `mode` | `project_memory(action="update_section", project="my-app", file="ARCHITECTURE", content="...", mode="replace")` |
20
+
21
+ Правила аргументов:
22
+ - `file` — только `PROJECT`, `ARCHITECTURE`, `CODE-MAP`, `INVARIANTS`, `GOTCHAS`, `RUNBOOK`, `JOURNAL`.
23
+ - `mode` — `replace` (секция перезаписывается целиком, по умолчанию) или `append` (дописать в конец).
24
+ - `maxChars` — ограничение вывода `read` (500–30000, по умолчанию 12000); целиком досье не выкачивай.
25
+ - `root` — абсолютный путь к корню проекта; `name` — slug в kebab-case (`service-desk`); `stack` — короткое описание стека при `register`.
26
+ - `project` по умолчанию — проект текущей сессии; чужой проект указывай явно.
27
+ - `content` — markdown секции по каркасам из `section-templates.md`.
28
+ - `append_journal` сам выбирает `JOURNAL/YYYY-MM.md` по текущему месяцу.
29
+ - `update_section` — единственный способ писать секции; `INDEX.json` руками не правь — иначе рассинхронизируются индекс и свежесть.
30
+
31
+ ## 2. Детали восьми шагов
32
+
33
+ 1. **Статус и проект.** `status` до чтения файлов. Проект найден — запомни slug. Нет проекта — `register`. Несколько кандидатов или непонятно, о каком проекте речь, — **спроси пользователя**, не угадывай. Досье устарело — предупреди сразу; устаревшие факты в новых секциях помечай `[устарело]`.
34
+ 2. **Что уже известно.** Прочитай существующие секции (`read`, `maxChars` 6000–8000), чтобы не дублировать и не противоречить. Новый факт спорит со старым — перепроверь по коду: победивший запиши, проигравший пометь `[устарело]`.
35
+ 3. **Разведка (только чтение).** Источники по порядку: `AGENTS.md` → `README*` → манифесты → структура каталогов → git. Манифесты и конфиги: `composer.json`, `package.json`, `pnpm-workspace.yaml`, `pyproject.toml`, `requirements.txt`, `go.mod`, `Cargo.toml`, `pom.xml`, `docker-compose.yml`, `Dockerfile`, `Makefile`, `.env.example`, `phpunit.xml`, `vite.config.*`, `tsconfig.json`. Рецепты — `recon-commands.md`. Не запускай миграции, seed, деплой, install и другие изменяющие команды.
36
+ 4. **Трассировка потоков.** Веди цепочку «точка входа → маршрут → обработчик → домен → данные → тесты». Фиксируй не всё подряд, а то, что объясняет: как запустить, где бизнес-логика, где данные, что легко сломать. Команды — `recon-commands.md`.
37
+ 5. **Сборка секций.** Порядок: `PROJECT` → `ARCHITECTURE` → `CODE-MAP` → `INVARIANTS` → `GOTCHAS` → `RUNBOOK`. Каждая секция — отдельный `update_section`; после записи прочитай её обратно (`read`). Минимумы: `PROJECT` 8–15 строк, `ARCHITECTURE` 15+, `CODE-MAP` 10+ записей, `INVARIANTS` 5+, `GOTCHAS` 3+, `RUNBOOK` 5+ команд. Малый проект — минимумы пропорционально ниже, блоки те же.
38
+ 6. **Метки достоверности.** `[проверено]` — прочитано в файле или подтверждено выводом команды, рядом `path:line`. `[выведено]` — логический вывод (соглашение фреймворка, косвенная связь), прямого источника нет. `[устарело]` — было верно в прошлой версии/ветке, требует перепроверки. Ссылка — `относительный/путь:строка`; копировать код, логи и дампы нельзя.
39
+ 7. **Журнал.** Значимую сессию зафиксируй `append_journal` (сжато, по шаблону навыка `project-memory-maintenance`): что анализировали, что выяснили, какие решения, что осталось.
40
+ 8. **Отчёт.** Не пропускай «Неясно»: перечисли каждую записанную секцию, каждый проверенный факт со ссылкой и каждый неясный пункт.
41
+
42
+ ## 3. Каркасы секций (сжато)
43
+
44
+ - `PROJECT`: что делает; стек и версии; репозиторий и прод; как поднять; статус и владелец.
45
+ - `ARCHITECTURE`: слои и модули; поток данных текстом; очереди/крон; внешние сервисы; ключевые решения.
46
+ - `CODE-MAP`: таблица «область | путь | зачем»; точки входа; модели/схема; тесты; конфиги.
47
+ - `INVARIANTS`: нумерованные «нельзя», каждое с причиной и способом проверки.
48
+ - `GOTCHAS`: симптом → причина → обход; отдельная ловушка — отдельный пункт.
49
+ - `RUNBOOK`: окружение; установка; запуск; тесты; сборка; деплой; откат; бэкап; где логи.
50
+
51
+ Полные шаблоны с примерами — `section-templates.md`.
52
+
53
+ ## 4. Форма отчёта
54
+
55
+ ```markdown
56
+ ## Записано в досье
57
+ - PROJECT — ...
58
+ - ARCHITECTURE — ...
59
+
60
+ ## Проверено
61
+ - [проверено] ... (path:line)
62
+
63
+ ## Неясно / требует проверки
64
+ 1. ...
65
+ 2. ...
66
+
67
+ ## Дальше
68
+ - ...
69
+ ```
70
+
71
+ ## 5. Антипаттерны
72
+
73
+ - Копировать целые файлы, конфиги, миграции и логи «чтобы было».
74
+ - Сохранять `.env`, дампы, токены, персональные данные.
75
+ - Отправлять код/конфиги в веб-поиск или внешние API «для уточнения».
76
+ - Писать «очевидно», «скорее всего» без метки `[выведено]`.
77
+ - Заполнять шаблон пунктами без доказательств.
78
+ - Править файлы досье и `INDEX.json` руками.
79
+ - Начинать анализ без `status`.
80
+ - Оставлять старые факты без пометки и заявлять о свежести досье.
81
+ - Складывать всё в одну гигантскую секцию вместо ссылок на файлы.
82
+
83
+ ## 6. Связанное
84
+
85
+ - Постоянное ведение памяти — `project-memory-maintenance` (журнал, дедупликация, свежесть).
86
+ - Процесс разработки — `dev-workflow`; планирование — `requirements-and-planning`; финальное ревью — `code-review-checklist`.
@@ -1,170 +1,55 @@
1
1
  ---
2
2
  name: project-memory-maintenance
3
- description: "Правила ведения локальной памяти проектов через project_memory: журнал после каждой значимой сессии, обновление секций досье, дедупликация поиском, лимиты размера, свежесть INDEX.json."
4
- whenToUse: "После любой значимой сессии в проекте (до финального ответа), при изменении архитектуры, инвариантов или команд, при найденной ловушке, при устаревании досье и по просьбе «запомни это»."
3
+ description: "Ведение памяти проектов через project_memory: журнал сессий, секции досье, дедупликация, лимиты, свежесть INDEX.json."
4
+ whenToUse: "После значимой сессии (до ответа), при изменении архитектуры/инвариантов/команд, найденной ловушке, устаревании досье, просьбе «запомни это»."
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
- # PROJECT-MEMORY-MAINTENANCE — ведение памяти проекта
9
-
10
- > Память полезна, только если она актуальна, не дублируется и не превращается в свалку.
11
- > Хранилище локальное: `%USERPROFILE%\.dsh\projects-memory\<slug>\`.
12
- > Содержимое проекта не отправляется в сеть никогда.
8
+ # Project-memory-maintenance
13
9
 
14
10
  ## 0. Контракт
11
+ 1. Журнал — после значимой сессии, до ответа.
12
+ 2. В секции — долговечное; ход работы — в журнал.
13
+ 3. Перед записью `search`; дубликат — в существующий.
14
+ 4. Секреты, PII, код, дампы — не в досье, журнале, `INDEX.json`.
15
+ 5. Только `project_memory`; файлы не правь.
15
16
 
16
- 1. Журнал пишется **после каждой значимой сессии**, до финального ответа пользователю.
17
- 2. В секции досье попадают только долговечные факты; ход работы — в журнал.
18
- 3. Перед записью — `search`: дубликат дописывай в существующий пункт, а не создавай новый.
19
- 4. В досье, журнале и `INDEX.json` нет секретов, PII, копий кода и дампов.
20
- 5. Пиши только через `project_memory`; файлы хранилища руками не редактируй.
21
-
22
- ## 1. API (кратко)
23
-
24
- Сигнатура: `project_memory(action, project?, file?, content?, query?, root?, name?, mode?, maxChars?)`.
25
- В текущей сборке инструмента у `register` есть также необязательный `stack`.
26
- Хранилище: `%USERPROFILE%\.dsh\projects-memory\<slug>\` — `PROJECT.md`, `ARCHITECTURE.md`, `CODE-MAP.md`, `INVARIANTS.md`, `GOTCHAS.md`, `RUNBOOK.md`, `JOURNAL/YYYY-MM.md`, `INDEX.json`.
27
-
28
- | action | Когда | Аргументы |
29
- |---|---|---|
30
- | `status` | в начале и в конце сессии | — |
31
- | `list` | если нужно найти проект | — |
32
- | `read` | перед правкой секции | `project`, `file`, `maxChars` |
33
- | `search` | перед любой записью (дедуп) | `project`, `query`, `maxChars` |
34
- | `append_journal` | после сессии | `project`, `content` |
35
- | `update_section` | долговечный факт | `project`, `file`, `content`, `mode` |
36
- | `register` | новый проект | `name`, `root` (+ `stack`) |
37
-
38
- - `file` — `PROJECT`, `ARCHITECTURE`, `CODE-MAP`, `INVARIANTS`, `GOTCHAS`, `RUNBOOK`, `JOURNAL`.
39
- - `mode` — `replace` (по умолчанию) или `append`.
40
- - `project` по умолчанию — проект текущей сессии; при работе с чужим проектом указывай slug явно.
41
- - `maxChars` ограничивает вывод `read` (500–30000, по умолчанию 12000); не выкачивай досье целиком без нужды.
42
-
43
- ## 2. Что считать значимой сессией
17
+ ## 1. Что значимо и API
18
+ - Значимо: код/схема, решение, исправленный баг с проверкой, инвариант/ловушка, деплой, deep-dive; тривиальное — нет (сомневаешься — короткая запись).
19
+ - API: `project_memory(...)`; `file` — секция, `mode` — replace/append, `maxChars` 500–30000.
44
20
 
45
- Да:
46
- - изменение кода/конфига/схемы данных;
47
- - архитектурное или продуктовое решение;
48
- - найденная и исправленная ошибка, подтверждённая проверкой;
49
- - новый инвариант или ловушка, которые должны пережить сессию;
50
- - деплой, откат, смена окружения или команд запуска;
51
- - глубокий анализ проекта (`project-deep-dive`).
21
+ ## 2. Конец сессии
22
+ 1. `status` — проект/свежесть.
23
+ 2. `search` 1–3 темы с синонимами (`maxChars=4000`).
24
+ 3. `append_journal` в `JOURNAL/YYYY-MM.md`; связанные шаги — одна запись.
25
+ 4. `update_section` — только долговечное, одна секция — один вызов.
26
+ 5. `read` 1–2 секции, гейт, отчёт.
52
27
 
53
- Нет:
54
- - тривиальный вопрос, чтение файла без выводов;
55
- - повторное обсуждение уже записанного;
56
- - неудачная попытка без нового знания.
28
+ ## 3. Журнал
29
+ `## YYYY-MM-DD — <сессия>` + 5 пунктов: делали, выявили, решения, проверки, осталось; все обязательны (пусто — «нет»), 1–3 строки. Без кода/логов/дампов/чата; «выявили» — факты, «проверки» — запуски и результат, «осталось» — шаги/риски. Секреты: «ошибка с DB_PASSWORD (значение не сохранено)».
57
30
 
58
- Сомневаешься — пиши короткую запись в журнал: лишняя строка дешевле потерянного знания.
31
+ ## 4. Секции
32
+ `PROJECT` — стек/пути/прод/статус (не история); `ARCHITECTURE` — компоненты/потоки (не алгоритмы); `CODE-MAP` — модули/маршруты (не код); `INVARIANTS` — жёсткие правила (не советы); `GOTCHAS` — ловушки с симптомом (не банальности); `RUNBOOK` — команды/деплой (не архитектура); `JOURNAL` — сессии (не дампы/секреты).
59
33
 
60
- ## 3. Журнал: когда и как
34
+ `append` — добавить, `replace` — перестроить (сначала `read`). Один факт — одно место; в двух секциях — `path:line`.
61
35
 
62
- Пиши `append_journal` в конце каждой значимой сессии (файл `JOURNAL/YYYY-MM.md` текущего месяца).
63
- Несколько связанных шагов в одной сессии — одна запись, а не десять.
36
+ ## 5. Дедупликация и лимиты
37
+ 1–3 термина (модуль, команда, ошибка, синонимы); `search` каждый; найдено — `read` + дополни, нет — добавь; после — `read`: дубля, секрета, мёртвой ссылки нет.
38
+ Секция ≤ 40 KB; пункт 1–3 строки; детали — `docs`/README, в секции `path:line`. Раздуто — вынеси, оставь ссылки; журнал по месяцам, повторяющиеся выводы — в секции.
64
39
 
65
- Точный шаблон записи:
66
- ```markdown
67
- ## YYYY-MM-DD — <краткое название сессии>
68
- - Что делали: ...
69
- - Что выявили: ...
70
- - Решения: ...
71
- - Проверки: ...
72
- - Осталось: ...
73
- ```
40
+ ## 6. Свежесть и INDEX.json
41
+ `INDEX.json` — машинный, руками нельзя. `lastAnalyzedAt` — только полный анализ; `git.branch`/`head` — на чём; `confidence` — высокая/средняя/низкая по `[проверено]`/смеси/`[устарело]`.
42
+ `status` в начале; branch/HEAD разошлись — устарело: перечитай, обнови, старое помечай. Полный анализ — коммит в отчёт; частичная правка не выглядит полной. `confidence` — по тегам. Расхождение `status` — в отчёт, файл не правь.
74
43
 
75
- Правила:
76
- - Вызов: `project_memory(action="append_journal", project="<slug>", content="<запись>")`.
77
- - Все пять пунктов обязательны; если пункт пуст — пиши «нет», не удаляй его.
78
- - 1–3 строки на пункт; без копий кода, логов, дампов и пересказа чата.
79
- - «Что выявили» — факты, меняющие понимание проекта (причина, зависимость, ловушка).
80
- - «Проверки» — что реально запускалось и результат: тесты, линтер, сборка, ручной сценарий, тест на копии.
81
- - «Осталось» — конкретные следующие шаги или риски; «нет» допустимо.
82
- - Секреты и PII вырезай: «ошибка с `DB_PASSWORD` (значение не сохранено)».
83
- - Подробный шаблон и примеры — `references/journal-template.md`.
84
-
85
- ## 4. Правила обновления секций
86
-
87
- | Секция | Обновляй, когда | Не пиши сюда |
44
+ ## 7. Куда грузить дальше
45
+ | Нужно | Файл | ≈токенов |
88
46
  |---|---|---|
89
- | `PROJECT` | сменились стек, пути, прод, владелец, статус | историю сессий (это журнал) |
90
- | `ARCHITECTURE` | новые/удалённые компоненты, границы, потоки, внешние сервисы | детали реализации алгоритмов |
91
- | `CODE-MAP` | новый модуль, маршрут, точка входа; сдвинулись якоря | код целиком |
92
- | `INVARIANTS` | новое жёсткое правило, подтверждённое тестом или пользователем | советы и вкусовые предпочтения |
93
- | `GOTCHAS` | каждая неочевидная ловушка с симптомом | банальности «проверяй null» |
94
- | `RUNBOOK` | изменились команды, окружение, деплой, откат | объяснение архитектуры |
95
- | `JOURNAL` | каждая значимая сессия | дампы, секреты, чат |
96
-
97
- - `mode="append"` — добавляешь пункт; `mode="replace"` — перестраиваешь или чистишь секцию (сначала `read`).
98
- - Долговечный факт = верен через месяц и вне контекста сегодняшней задачи.
99
- - Один факт — одно место. Нужен в двух секциях — дай ссылку `path:line`, а не копию.
100
- - Подробные правила по каждой секции — `references/section-rules.md`.
101
-
102
- ## 5. Дедупликация: поиск до записи
103
-
104
- 1. Сформулируй 1–3 термина по теме (имя модуля, команда, текст ошибки, синонимы: «очереди/jobs/queue»).
105
- 2. По каждому: `project_memory(action="search", project="<slug>", query="<термин>", maxChars=4000)`.
106
- 3. Нашёл — `read` секцию и дополни существующий пункт; не создавай второй.
107
- 4. Не нашёл — добавь новый пункт.
108
- 5. После записи — `read` секцию: дубля нет, секрета нет, ссылка существует.
109
-
110
- Запрещено: дублировать один факт в журнале и нескольких секциях; писать почти одинаковые пункты разными словами.
111
-
112
- ## 6. Лимиты размера
113
-
114
- - Каждая секция ≤ 40 KB. Приближаешься к лимиту — сокращай до выводов и ссылок.
115
- - 1 пункт — 1–3 строки; без воды, повторов и пересказа кода.
116
- - Подробности, таблицы и длинные списки — в reference-файлы проекта (`docs/`, `references/`, README); в секции — ссылка `path:line`.
117
- - `JOURNAL/` уже разделён по месяцам: не раздувай месяц, повторяющиеся выводы своди в секции.
118
- - Раздутая секция — признак того, что в досье тащат детали реализации; перенеси их в проект и оставь ссылки.
119
-
120
- ## 7. Свежесть и INDEX.json
121
-
122
- `INDEX.json` — машинный файл хранилища; вручную не редактируется. Значимые поля:
123
- - `lastAnalyzedAt` — когда досье проанализировано целиком (а не косметически поправлено);
124
- - `git.branch`, `git.head` — ветка и коммит, на которых сделан анализ;
125
- - `confidence` — сводная уверенность: высокая при ключевых `[проверено]`, средняя при смеси, низкая при заметном `[устарело]`.
126
-
127
- Правила:
128
- - В начале сессии `status`; сравни `git.head`/ветку с текущими:
129
- `git -C <root> rev-parse --abbrev-ref HEAD` и `git -C <root> rev-parse --short HEAD`.
130
- - Расходятся — досье устарело: перечитай затронутые секции, обнови факты, старые пометь `[устарело]`.
131
- - Полный анализ (`project-deep-dive`) — в отчёте укажи, на каком коммите он сделан; частичная правка не должна выглядеть как полный анализ.
132
- - `confidence` повышай только новыми `[проверено]`; понижай при `[устарело]` и большом объёме `[выведено]`.
133
- - Если после записи `status` показывает неактуальные поля — это расхождение инструмента: зафиксируй в отчёте и сообщи, но `INDEX.json` руками не правь.
134
-
135
- ## 8. Порядок конца сессии (5 шагов)
136
-
137
- 1. `status` — проект и свежесть.
138
- 2. `search` по темам сессии (1–3 запроса).
139
- 3. `append_journal` — запись по шаблону §3.
140
- 4. `update_section` — только долговечные факты, одна секция — один вызов.
141
- 5. `read` 1–2 изменённые секции и проверка по чек-листу §9; в отчёт — что записано.
142
-
143
- ## 9. Финальный чек-лист
144
-
145
- - [ ] `status` вызван, проект определён.
146
- - [ ] `search` был до записи, дублей нет.
147
- - [ ] Журнал записан по шаблону, все пять пунктов на месте.
148
- - [ ] Секции обновлены только долговечными фактами.
149
- - [ ] Секретов, PII и копий кода нет.
150
- - [ ] У ключевых утверждений метка `[проверено]`/`[выведено]`/`[устарело]` и ссылка `path:line`.
151
- - [ ] Секции ≤ 40 KB; детали вынесены в references.
152
- - [ ] Свежесть в порядке: `git.head` соответствует анализу, устаревшее помечено.
153
- - [ ] Пользователю перечислено, что записано.
154
-
155
- ## 10. Антипаттерны
156
-
157
- - Писать в досье после каждого шага: журнал — да, секции — нет.
158
- - Дублировать один факт в нескольких секциях и журнале.
159
- - Копировать код, логи, дампы, переписку.
160
- - Секреты и PII в журнале («пароль ...», «токен ...»).
161
- - Править файлы досье и `INDEX.json` руками.
162
- - Превращать `PROJECT.md` в дневник.
163
- - Заявлять полный анализ после косметической правки.
164
- - Раздувать секцию до огромного размера вместо ссылок.
165
- - Записывать одноразовые детали, которые не переживут сессию.
166
-
167
- ## 11. Связанное
168
-
169
- - Первичный анализ проекта — `project-deep-dive`.
170
- - Процесс разработки — `dev-workflow`; финальное ревью — `code-review-checklist`.
47
+ | API, чек-лист, антипаттерны | `references/api-and-checklist.md` | ≈2 600 |
48
+ | Журнал: шаблон | `references/journal-template.md` | ≈1 100 |
49
+ | Правила секций | `references/section-rules.md` | ≈1 750 |
50
+
51
+ ## 8. Гейт перед сдачей
52
+ - [ ] `status`; проект; `search` до записи, дублей нет.
53
+ - [ ] JOURNAL дописан (5 пунктов); досье обновлено; `git.head` сверен; старое помечено.
54
+ - [ ] Нет секретов/PII/кода; теги/`path:line`; ≤ 40 KB.
55
+ - [ ] В отчёт — что записано.
@@ -0,0 +1,99 @@
1
+ # API, критерии, лимиты и чек-лист памяти
2
+
3
+ > Часть навыка project-memory-maintenance. ≈2 600 токенов. Читать, когда: нужны полная таблица `project_memory`, критерии значимой сессии, лимиты, свежесть `INDEX.json`, финальный чек-лист или антипаттерны.
4
+
5
+ ## 1. API
6
+
7
+ Сигнатура: `project_memory(action, project?, file?, content?, query?, root?, name?, mode?, maxChars?)`. В текущей сборке у `register` есть необязательный `stack`.
8
+
9
+ Хранилище: `%USERPROFILE%\.dsh\projects-memory\<slug>\` — `PROJECT.md`, `ARCHITECTURE.md`, `CODE-MAP.md`, `INVARIANTS.md`, `GOTCHAS.md`, `RUNBOOK.md`, `JOURNAL/YYYY-MM.md`, `INDEX.json`.
10
+
11
+ | action | Когда | Аргументы |
12
+ |---|---|---|
13
+ | `status` | в начале и в конце сессии | — |
14
+ | `list` | если нужно найти проект | — |
15
+ | `read` | перед правкой секции | `project`, `file`, `maxChars` |
16
+ | `search` | перед любой записью (дедуп) | `project`, `query`, `maxChars` |
17
+ | `append_journal` | после сессии | `project`, `content` |
18
+ | `update_section` | долговечный факт | `project`, `file`, `content`, `mode` |
19
+ | `register` | новый проект | `name`, `root` (+ `stack`) |
20
+
21
+ - `file` — `PROJECT`, `ARCHITECTURE`, `CODE-MAP`, `INVARIANTS`, `GOTCHAS`, `RUNBOOK`, `JOURNAL`.
22
+ - `mode` — `replace` (по умолчанию) или `append`.
23
+ - `project` по умолчанию — проект текущей сессии; при работе с чужим проектом указывай slug явно.
24
+ - `maxChars` ограничивает вывод `read` (500–30000, по умолчанию 12000); не выкачивай досье целиком без нужды.
25
+ - `root` — абсолютный путь, `name` — slug в kebab-case, `stack` — короткое описание стека.
26
+ - `append_journal` пишет в `JOURNAL/YYYY-MM.md` текущего месяца; `update_section` — единственный способ писать секции.
27
+
28
+ ## 2. Что считать значимой сессией
29
+
30
+ Да:
31
+ - изменение кода/конфига/схемы данных;
32
+ - архитектурное или продуктовое решение;
33
+ - найденная и исправленная ошибка, подтверждённая проверкой;
34
+ - новый инвариант или ловушка, которые должны пережить сессию;
35
+ - деплой, откат, смена окружения или команд запуска;
36
+ - глубокий анализ проекта (`project-deep-dive`).
37
+
38
+ Нет:
39
+ - тривиальный вопрос, чтение файла без выводов;
40
+ - повторное обсуждение уже записанного;
41
+ - неудачная попытка без нового знания.
42
+
43
+ Сомневаешься — пиши короткую запись в журнал: лишняя строка дешевле потерянного знания.
44
+
45
+ ## 3. Дедупликация, лимиты, свежесть
46
+
47
+ Дедупликация:
48
+ 1. Сформулируй 1–3 термина по теме (имя модуля, команда, текст ошибки, синонимы: «очереди/jobs/queue»).
49
+ 2. По каждому: `project_memory(action="search", project="<slug>", query="<термин>", maxChars=4000)`.
50
+ 3. Нашёл — `read` секцию и дополни существующий пункт; не создавай второй.
51
+ 4. Не нашёл — добавь новый пункт.
52
+ 5. После записи — `read` секцию: дубля нет, секрета нет, ссылка существует.
53
+
54
+ Лимиты:
55
+ - Каждая секция ≤ 40 KB. Приближаешься к лимиту — сокращай до выводов и ссылок.
56
+ - 1 пункт — 1–3 строки; без воды, повторов и пересказа кода.
57
+ - Подробности, таблицы и длинные списки — в reference-файлы проекта (`docs/`, `references/`, README); в секции — ссылка `path:line`.
58
+ - `JOURNAL/` уже разделён по месяцам: не раздувай месяц, повторяющиеся выводы своди в секции.
59
+ - Раздутая секция — признак того, что в досье тащат детали реализации; перенеси их в проект и оставь ссылки.
60
+
61
+ Свежесть и `INDEX.json`:
62
+ - `INDEX.json` — машинный файл хранилища; вручную не редактируется.
63
+ - `lastAnalyzedAt` — когда досье проанализировано целиком (а не косметически поправлено).
64
+ - `git.branch`, `git.head` — ветка и коммит, на которых сделан анализ.
65
+ - `confidence` — сводная уверенность: высокая при ключевых `[проверено]`, средняя при смеси, низкая при заметном `[устарело]`.
66
+ - В начале сессии `status`; сравни `git.head`/ветку с текущими: `git -C <root> rev-parse --abbrev-ref HEAD` и `git -C <root> rev-parse --short HEAD`.
67
+ - Расходятся — досье устарело: перечитай затронутые секции, обнови факты, старые пометь `[устарело]`.
68
+ - Полный анализ (`project-deep-dive`) — в отчёте укажи, на каком коммите он сделан; частичная правка не должна выглядеть как полный анализ.
69
+ - `confidence` повышай только новыми `[проверено]`; понижай при `[устарело]` и большом объёме `[выведено]`.
70
+ - Если после записи `status` показывает неактуальные поля — это расхождение инструмента: зафиксируй в отчёте, но `INDEX.json` руками не правь.
71
+
72
+ ## 4. Финальный чек-лист
73
+
74
+ - [ ] `status` вызван, проект определён.
75
+ - [ ] `search` был до записи, дублей нет.
76
+ - [ ] Журнал записан по шаблону, все пять пунктов на месте.
77
+ - [ ] Секции обновлены только долговечными фактами.
78
+ - [ ] Секретов, PII и копий кода нет.
79
+ - [ ] У ключевых утверждений метка `[проверено]`/`[выведено]`/`[устарело]` и ссылка `path:line`.
80
+ - [ ] Секции ≤ 40 KB; детали вынесены в references.
81
+ - [ ] Свежесть в порядке: `git.head` соответствует анализу, устаревшее помечено.
82
+ - [ ] Пользователю перечислено, что записано.
83
+
84
+ ## 5. Антипаттерны
85
+
86
+ - Писать в досье после каждого шага: журнал — да, секции — нет.
87
+ - Дублировать один факт в нескольких секциях и журнале.
88
+ - Копировать код, логи, дампы, переписку.
89
+ - Секреты и PII в журнале («пароль ...», «токен ...»).
90
+ - Править файлы досье и `INDEX.json` руками.
91
+ - Превращать `PROJECT.md` в дневник.
92
+ - Заявлять полный анализ после косметической правки.
93
+ - Раздувать секцию до огромного размера вместо ссылок.
94
+ - Записывать одноразовые детали, которые не переживут сессию.
95
+
96
+ ## 6. Связанное
97
+
98
+ - Первичный анализ проекта — `project-deep-dive`.
99
+ - Процесс разработки — `dev-workflow`; финальное ревью — `code-review-checklist`.
@@ -1,5 +1,7 @@
1
1
  # Шаблон журнала проекта
2
2
 
3
+ > Часть навыка project-memory-maintenance. ≈1 100 токенов. Читать, когда: нужен точный шаблон записи, требования к пяти пунктам, пример или антипримеры.
4
+
3
5
  Журнал — хронология значимых сессий. Файл: `JOURNAL/YYYY-MM.md` (месяц определяется датой записи).
4
6
  Пишется действием `append_journal`, не вручную.
5
7
 
@@ -1,5 +1,7 @@
1
1
  # Правила обновления секций досье
2
2
 
3
+ > Часть навыка project-memory-maintenance. ≈1 750 токенов. Читать, когда: обновляешь конкретную секцию досье и нужны границы «что писать / что не писать», структура и правила устаревания.
4
+
3
5
  Общие принципы для всех секций:
4
6
  - Только долговечные факты: верны через месяц и вне сегодняшнего контекста.
5
7
  - Ссылка `path:line` вместо копии кода; одно утверждение — один источник.
@@ -1,39 +1,53 @@
1
1
  ---
2
2
  name: release-and-deploy
3
- description: "Универсальный выпуск и выкатка — версионирование, сборка артефакта, checksums, безопасный деплой, smoke-проверки, откат."
4
- whenToUse: "При подготовке релиза/обновления любого проекта и при выкатке на сервер."
3
+ description: "Выпуск и выкатка: SemVer, immutable-артефакт, SHA-256 checksums, бэкап, деплой штатным скриптом, smoke и откат."
4
+ whenToUse: "Перед подготовкой релиза, сборкой артефакта, выкаткой на сервер, обновлением с миграциями и когда нужен план отката."
5
5
  user-invocable: true
6
6
  ---
7
7
 
8
8
  # Релиз и выкатка (универсально)
9
9
 
10
- ## Принципы
11
- - Артефакт собирается **один раз** и выкатывается неизменным (immutable release).
12
- - Версия — по SemVer/правилам проекта: feature → minor, fix → patch, breaking → major; фиксируется в артефакте и на сервере.
13
- - Перед выкаткой — бэкап БД/файлов и известный план отката.
14
- - Выкатка — контролируемая: maintenance-режим на время миграций, smoke после.
15
-
16
- ## Сборка
17
- 1. Все проверки зелёные: линтер, статанализ, тесты (unit/feature), E2E/UI для интерфейса.
18
- 2. Не включать в артефакт: `.env`, `vendor/`, `node_modules/`, сборки, `storage/`, `.git`.
19
- 3. **Checksums** (SHA-256) артефакта; записать в `checksums.txt`.
20
- 4. Зафиксировать состав изменений (CHANGELOG/RELEASE-NOTES): что изменилось, миграции, риски.
21
-
22
- ## Выкатка
23
- 1. Проверить целостность артефакта (`sha256sum`).
24
- 2. Бэкап БД + файлов + текущего кода (для отката).
25
- 3. Применить артефакт по штатной процедуре проекта.
26
- 4. Зависимости/сборка — только как в штатном скрипте (не руками вразнобой).
27
- 5. Миграции — аддитивные; при риске maintenance-режим.
28
- 6. Перезапустить процессы (очереди, php-fpm, воркеры), сбросить/собрать кэши.
29
- 7. Smoke: ключевые URL, вход, основная функция, логи без ошибок.
30
-
31
- ## Откат
32
- - Код: предыдущий артефакт/папка/тег.
33
- - БД: восстановление из бэкапа — только если релиз менял данные/схему.
34
- - Снять maintenance, повторить smoke, сообщить пользователям.
35
-
36
- ## После релиза
37
- - Наблюдать логи/метрики 15–30 минут; проверить фоновые задачи.
38
- - Записать факт выкатки и результат проверок в память проекта/CHANGELOG.
39
- - Старые артефакты хранить до подтверждения стабильности (потом чистить).
10
+ ## 0. Когда применять
11
+ - Готовишь релиз: версия, артефакт, checksums, тег, release notes.
12
+ - Просят «задеплой», обновить стенд или прод.
13
+ - В обновлении есть миграции/данные — сначала `pg-upgrade-verify`.
14
+ - После выкатки нужны smoke и решение «оставить или откатить».
15
+
16
+ ## 1. Главное
17
+
18
+ **Версия и артефакт**
19
+ - SemVer/правила проекта: feature → minor, fix → patch, breaking → major. Версия — в артефакте, на сервере и в CHANGELOG.
20
+ - Артефакт собирается **один раз** и выкатывается неизменным; пересборка = новая версия и sha256.
21
+ - Без `.env*`, `vendor/`, `node_modules/`, сборок, `storage/`, `.git`, дампов и PII (если проект не требует иного).
22
+ - Проверить состав и отсутствие секретов; SHA-256 — в `checksums.txt` (`sha256sum` / `Get-FileHash -Algorithm SHA256`).
23
+ - CHANGELOG/RELEASE-NOTES: изменения, миграции, риски, план отката.
24
+
25
+ **Перед выкаткой**
26
+ - Зелёные: линтер, статанализ, unit/feature, E2E/UI; baseline не хуже.
27
+ - Бэкап БД, файлов и текущего кода; копия читается (`pg_restore -l`, пробное восстановление) и хранится вне сервера.
28
+ - Свободное место, maintenance-окно и выполнимый план отката.
29
+ - Миграции проверены на копии (`pg-upgrade-verify`) и аддитивны; при риске — maintenance.
30
+
31
+ **Выкатка**
32
+ - Сверить checksums: `sha256sum -c checksums.txt`.
33
+ - Применять штатным скриптом; зависимости, сборку и кэши не делать вразнобой.
34
+ - Перезапустить очереди/воркеры/php-fpm, сбросить и собрать кэши, проверить права на `storage`.
35
+ - Smoke: версия/health, `/login` и вход, ключевой сценарий записи, старые данные, админ и пользователь, логи без ошибок, очередь жива.
36
+
37
+ **Откат**
38
+ - Код: предыдущий артефакт/папка/тег. БД: только если менялись данные/схема — из проверенного дампа и с подтверждением.
39
+ - Снять maintenance, повторить smoke, сообщить пользователям, зафиксировать причину.
40
+
41
+ **После**
42
+ - Наблюдать логи, метрики и фоновые задачи 15–30 минут; старые артефакты хранить до стабильности.
43
+ - Записать версию, sha256, smoke и откат в память/CHANGELOG.
44
+
45
+ ## 2. Куда грузить дальше
46
+ `git-and-ci` — ветки/теги/CI; `pg-upgrade-verify` — проверка на копии живой БД; `database-safety` / `service-desk-db-safety` — бэкап; `service-desk-release` — проектный tgz + `deploy/update.sh`.
47
+
48
+ ## 3. Гейт перед сдачей
49
+ - [ ] Версия, CHANGELOG и sha256 сверены с артефактом.
50
+ - [ ] Бэкап читается и лежит вне сервера; откат выполним.
51
+ - [ ] Миграции прогнаны на копии; выкатка — штатным скриптом.
52
+ - [ ] Smoke: версия, вход, ключевой сценарий, старые данные, админ + пользователь, логи/очередь.
53
+ - [ ] Факт выкатки записан.