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.
- package/README.md +106 -41
- package/client.js +780 -28
- package/docs/ARCHITECTURE.md +114 -0
- package/docs/COMPATIBILITY.md +61 -0
- package/docs/INSTALL.md +97 -0
- package/docs/PRIVACY.md +50 -0
- package/docs/ROADMAP.md +57 -0
- package/docs/TOKENS.md +118 -0
- package/docs/TROUBLESHOOTING.md +68 -0
- package/docs/images/hero.png +0 -0
- package/index.js +4 -0
- package/package.json +15 -5
- package/plugins/dsh-gkb-ru-ui/lib/client.js +276 -28
- package/plugins/dsh-gkb-ru-ui/lib/index.js +45 -1
- package/plugins/dsh-gkb-ru-ui/lib/skills.js +195 -1
- package/plugins/dsh-gkb-ru-ui/package.json +2 -2
- package/plugins/dsh-gkb-ru-ui/screenshots/01-home-tiles-1440-light.png +0 -0
- package/plugins/dsh-gkb-ru-ui/screenshots/02-skills-1440-light.png +0 -0
- package/plugins/dsh-gkb-ru-ui/screenshots/03-skills-editor-1440-light.png +0 -0
- package/plugins/dsh-gkb-ru-ui/screenshots/04-skills-1440-dark.png +0 -0
- package/plugins/dsh-gkb-ru-ui/screenshots/05-skills-390-light.png +0 -0
- package/plugins/dsh-gkb-ru-ui/screenshots/06-home-tiles-1440-dark.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/01-real-time-peak-start.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/02-real-time-peak-end.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/03-peak-card-1440-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/04-peak-card-1440-dark.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/05-peak-card-390-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/05-peak-card-768-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/06-peak-card-390-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/07-live-preview-check.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/07-pre-peak-1440-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/08-peak-start-1440-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/09-peak-end-1440-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/10-pre-peak-card-1440-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/11-pre-peak-card-1440-dark.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/12-pre-peak-card-390-light.png +0 -0
- package/plugins/dsh-peak-guard/screenshots/qa-report.json +74 -0
- package/plugins/dsh-profile-transfer/screenshots/01-settings-transfer-1440-light.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/02-settings-transfer-preview-1440-light.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/03-settings-transfer-1440-dark.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/04-settings-transfer-390-light.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/05-settings-transfer-768-light.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/06-settings-transfer-390-dark.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/07-settings-transfer-export-result.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/08-settings-transfer-workspaces-1440-light.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/09-settings-transfer-workspaces-1440-dark.png +0 -0
- package/plugins/dsh-profile-transfer/screenshots/10-settings-transfer-workspaces-390-light.png +0 -0
- package/plugins/dsh-session-move/screenshots/01-row-menu-1440-light.png +0 -0
- package/plugins/dsh-session-move/screenshots/02-dialog-1440-light.png +0 -0
- package/plugins/dsh-session-move/screenshots/03-dialog-390-light.png +0 -0
- package/plugins/dsh-session-move/screenshots/04-dialog-1440-dark.png +0 -0
- package/plugins/dsh-session-move/screenshots/05-drag-highlight-1440-light.png +0 -0
- package/plugins/dsh-session-move/screenshots/06-drop-ungrouped-highlight.png +0 -0
- package/plugins/dsh-session-move/screenshots/07-after-drop-ungrouped.png +0 -0
- package/plugins/dsh-session-move/screenshots/08-move-dialog.png +0 -0
- package/plugins/dsh-session-move/screenshots/09-moved-to-second-workspace.png +0 -0
- package/plugins/dsh-session-move/screenshots/qa-report.json +62 -0
- package/plugins/dsh-skill-autopilot/cordis.patch.yml +3 -0
- package/plugins/dsh-skill-autopilot/index.js +444 -0
- package/plugins/dsh-skill-autopilot/package.json +19 -0
- package/plugins/dsh-token-lab/cordis.patch.yml +3 -0
- package/plugins/dsh-token-lab/lib/client.js +504 -0
- package/plugins/dsh-token-lab/lib/index.js +275 -0
- package/plugins/dsh-token-lab/package.json +26 -0
- package/plugins/dsh-token-lab/screenshots/01-token-lab-1440-light.png +0 -0
- package/plugins/dsh-token-lab/screenshots/02-token-lab-1440-dark.png +0 -0
- package/skills/code-review-checklist/SKILL.md +48 -30
- package/skills/content-writing/SKILL.md +64 -327
- package/skills/content-writing/references/process.md +123 -0
- package/skills/content-writing/references/quick-recipes.md +99 -0
- package/skills/content-writing/references/rules.md +85 -0
- package/skills/content-writing/references/sources.md +49 -0
- package/skills/context-economy/SKILL.md +60 -0
- package/skills/context-economy/references/long-session.md +35 -0
- package/skills/context-economy/references/token-math.md +42 -0
- package/skills/context-economy/references/tool-recipes.md +34 -0
- package/skills/database-safety/SKILL.md +40 -24
- package/skills/debugging-playbook/SKILL.md +30 -27
- package/skills/design-critique/SKILL.md +57 -110
- package/skills/design-critique/references/a11y.md +25 -0
- package/skills/design-critique/references/diagnoses.md +33 -0
- package/skills/design-critique/references/quick-tests.md +30 -0
- package/skills/design-critique/references/report-template.md +63 -0
- package/skills/design-critique/references/rubric-fast.md +73 -0
- package/skills/dev-workflow/SKILL.md +41 -34
- package/skills/dev-workflow/references/definition-of-done.md +44 -0
- package/skills/dev-workflow/references/memory-and-boundaries.md +31 -0
- package/skills/dev-workflow/references/stages.md +67 -0
- package/skills/git-and-ci/SKILL.md +46 -26
- package/skills/pg-upgrade-verify/SKILL.md +54 -35
- package/skills/project-deep-dive/SKILL.md +39 -164
- package/skills/project-deep-dive/references/recon-commands.md +12 -0
- package/skills/project-deep-dive/references/section-templates.md +2 -0
- package/skills/project-deep-dive/references/tool-and-process.md +86 -0
- package/skills/project-memory-maintenance/SKILL.md +39 -154
- package/skills/project-memory-maintenance/references/api-and-checklist.md +99 -0
- package/skills/project-memory-maintenance/references/journal-template.md +2 -0
- package/skills/project-memory-maintenance/references/section-rules.md +2 -0
- package/skills/release-and-deploy/SKILL.md +46 -32
- package/skills/requirements-and-planning/SKILL.md +44 -110
- package/skills/requirements-and-planning/references/antipatterns-and-checklist.md +20 -0
- package/skills/requirements-and-planning/references/process-steps.md +52 -0
- package/skills/requirements-and-planning/references/templates-and-estimates.md +29 -0
- package/skills/security-review/SKILL.md +33 -29
- package/skills/seo/SKILL.md +53 -305
- package/skills/seo/references/antipatterns.md +66 -0
- package/skills/seo/references/audit-checklist.md +14 -0
- package/skills/seo/references/content-seo.md +180 -174
- package/skills/seo/references/eeat-medical.md +2 -0
- package/skills/seo/references/measurement.md +28 -1
- package/skills/seo/references/on-page.md +5 -0
- package/skills/seo/references/page-templates.md +56 -0
- package/skills/seo/references/stack-recipes.md +2 -0
- package/skills/seo/references/structured-data.md +2 -0
- package/skills/seo/references/technical-seo.md +2 -0
- package/skills/service-desk-conventions/SKILL.md +40 -28
- package/skills/service-desk-db-safety/SKILL.md +39 -28
- package/skills/service-desk-release/SKILL.md +40 -22
- package/skills/service-desk-testing/SKILL.md +47 -33
- package/skills/service-desk-ui/SKILL.md +43 -24
- package/skills/skills-router/SKILL.md +44 -82
- package/skills/skills-router/references/applying-skills.md +25 -0
- package/skills/skills-router/references/routing-matrix.md +52 -0
- package/skills/testing-strategy/SKILL.md +47 -32
- package/skills/ui-design-system/SKILL.md +43 -38
- package/skills/ui-design-system/references/accessibility-and-responsive.md +50 -0
- package/skills/ui-design-system/references/tokens-and-components.md +67 -0
- package/skills/ui-design-system/references/visual-qa.md +44 -0
- package/skills/web-research/SKILL.md +40 -33
- package/skills/web-research/references/answer-and-citations.md +60 -0
- package/skills/web-research/references/query-recipes.md +44 -0
- package/skills/wow-design/SKILL.md +82 -161
- package/skills/wow-design/references/anti-patterns.md +3 -0
- package/skills/wow-design/references/critique-rubric.md +3 -0
- package/skills/wow-design/references/design-brief-template.md +2 -0
- package/skills/wow-design/references/inspiration.md +3 -0
- package/skills/wow-design/references/presets.md +3 -0
- package/skills/wow-design/references/principles.md +3 -0
- package/skills/wow-design/references/quick-presets.md +50 -0
- package/skills/wow-design/references/report-template.md +21 -0
- package/skills/wow-design/references/stack-recipes.md +3 -0
- package/skills/wow-design/references/visual-qa.md +3 -0
- package/skills/wow-design/references/wow-levers.md +43 -0
- package/tools/skill-cost.mjs +76 -0
|
@@ -1,115 +1,49 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: requirements-and-planning
|
|
3
|
-
description: "
|
|
4
|
-
whenToUse: "
|
|
3
|
+
description: "Любая новая задача до реализации: требования, критерии приёмки, декомпозиция, риски, варианты решений и проверяемый план — для кода, дизайна, SEO, данных, релизов."
|
|
4
|
+
whenToUse: "Перед началом работы, когда запрос расплывчат, нужен план/ТЗ/оценка, сравнение вариантов или критерии «готово» до правок кода."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
```
|
|
51
|
-
1. <шаг> — файлы: ... — проверка: ...
|
|
52
|
-
2. <шаг> — файлы: ... — проверка: ...
|
|
53
|
-
...
|
|
54
|
-
```
|
|
55
|
-
- Декомпозируй до 1–2 часовых шагов; отметь зависимости и параллелизм.
|
|
56
|
-
- Для каждого шага — как проверить (тест/скриншот/запрос/аудит).
|
|
57
|
-
- Зафиксируй порядок: сначала бэкап/подготовка, потом изменения, потом проверка, потом откат-план.
|
|
58
|
-
|
|
59
|
-
### Шаг 6. Риски и откат
|
|
60
|
-
- Таблица: риск → вероятность/влияние → митигация.
|
|
61
|
-
- Что может сломаться (данные, прод, кэш, SEO, дизайн, интеграции)? Как откатим?
|
|
62
|
-
- Перед необратимым: бэкап, dry-run, копия, feature-флаг.
|
|
63
|
-
|
|
64
|
-
### Шаг 7. Исполнение с чекпоинтами
|
|
65
|
-
- Двигайся по плану; после каждого блока — быстрая проверка (тест/линт/скриншот).
|
|
66
|
-
- Отклонение от плана — фиксируй и объясняй; scope creep — в отдельный список «потом».
|
|
67
|
-
- Для UI/SEO/БД используй соответствующие скиллы и их гейты.
|
|
68
|
-
|
|
69
|
-
### Шаг 8. Сдача
|
|
70
|
-
- Сверь результат с критериями приёмки (таблица «критерий → как проверено → результат»).
|
|
71
|
-
- Отчёт: что сделано, как проверено, риски/ограничения, что дальше.
|
|
72
|
-
- Обнови память (`SESSIONS.md`, досье) и версию/документацию, если применимо.
|
|
73
|
-
|
|
74
|
-
## 2. Шаблон брифа (короткий)
|
|
75
|
-
```
|
|
76
|
-
Задача: <одно предложение>
|
|
77
|
-
Зачем: <польза>
|
|
78
|
-
Пользователь/сценарий: <...>
|
|
79
|
-
Входит / Не входит: <...>
|
|
80
|
-
Критерии приёмки: <3–7 проверяемых пунктов>
|
|
81
|
-
Ограничения: <стек, сроки, нельзя ломать>
|
|
82
|
-
Риски/откат: <...>
|
|
83
|
-
План: <3–7 шагов с проверками>
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## 3. Шаблон критериев приёмки
|
|
87
|
-
- Given <контекст>, when <действие>, then <результат>.
|
|
88
|
-
- UI: 1440/768/390, light/dark, состояния, контраст AA, нет overflow.
|
|
89
|
-
- SEO: title/description, один H1, canonical, OG, schema, sitemap/robots (если применимо).
|
|
90
|
-
- API/данные: код ответа, валидация, транзакция, права, отсутствие N+1.
|
|
91
|
-
- Тесты: baseline не ухудшен, новые тесты зелёные.
|
|
92
|
-
- Релиз: артефакт собран, checksum, инструкция, откат.
|
|
93
|
-
|
|
94
|
-
## 4. Эвристики оценки
|
|
95
|
-
- Небольшая правка — 0,5–2 ч; компонент — 2–6 ч; экран — 0,5–2 дня; фича с БД/тестами — 1–3 дня.
|
|
96
|
-
- Неизвестный стек/чужая кодовая база — ×1,5–2 к оценке.
|
|
97
|
-
- Всегда добавляй время на проверку (тесты/скриншоты/аудит) и на непредвиденное (+20–30%).
|
|
98
|
-
- Если оценка > 2 дней — дели на этапы с отдельной сдачей.
|
|
99
|
-
|
|
100
|
-
## 5. Антипаттерны
|
|
101
|
-
- Начать с кода, не поняв, что считать «готово».
|
|
102
|
-
- Уточнять «потом», когда уже всё сломано.
|
|
103
|
-
- План из одного пункта «сделать всё».
|
|
104
|
-
- Нет критериев приёмки → бесконечные правки и споры.
|
|
105
|
-
- Нет откат-плана для миграций/релизов/прод-правок.
|
|
106
|
-
- Молча расширить scope («заодно переделал ещё 10 страниц»).
|
|
107
|
-
- Считать «сделал» = «написал код» (без проверки и отчёта).
|
|
108
|
-
|
|
109
|
-
## 6. Чек-лист перед стартом
|
|
110
|
-
- [ ] Запрос переформулирован одним предложением.
|
|
111
|
-
- [ ] Критичные неясности уточнены или зафиксированы допущения.
|
|
112
|
-
- [ ] Прочитана память/досье, найдены затронутые файлы.
|
|
113
|
-
- [ ] Критерии приёмки зафиксированы.
|
|
114
|
-
- [ ] Есть план с проверками и откатом.
|
|
115
|
-
- [ ] Подобраны скиллы (`skills-router`) под типы работ.
|
|
8
|
+
# Requirements & Planning — ядро
|
|
9
|
+
> ≈1 600 токенов. Это ядро; детали — по ссылкам и только когда реально нужны.
|
|
10
|
+
|
|
11
|
+
## 0. Когда применять
|
|
12
|
+
- Новая задача: фича, страница, релиз, миграция — до первой правки.
|
|
13
|
+
- Запрос расплывчат: «сделай красиво», «ускорь», «почини», «улучши как-то».
|
|
14
|
+
- Нужны ТЗ, оценка, сравнение вариантов, критерии «готово»; результат — выводы и план, а не осмотр.
|
|
15
|
+
|
|
16
|
+
## 1. Главное (алгоритм)
|
|
17
|
+
|
|
18
|
+
**Контракт:**
|
|
19
|
+
1. **Одно предложение:** переформулируй запрос — что изменится для пользователя.
|
|
20
|
+
2. **Неясное уточняй** одним сообщением (1–3 вопроса), но не блокируйся: некритичное — допущение и дальше; критичное (данные, деньги, права, необратимость) — только после ответа.
|
|
21
|
+
3. **Критерии приёмки — до кода**, проверяемые (Given/When/Then или чек-лист).
|
|
22
|
+
4. **План — до правок:** шаги, файлы, зависимости, проверки, откат.
|
|
23
|
+
5. **Scope guard:** явно «входит / не входит»; не расширяй молча.
|
|
24
|
+
6. **Финал:** отчёт «сделано / как проверено / риски / дальше» по критериям.
|
|
25
|
+
|
|
26
|
+
**8 шагов:**
|
|
27
|
+
1. **Понять запрос:** кто пользователь, что болит, что есть и что должно стать, формат результата.
|
|
28
|
+
2. **Разведка:** память/досье, `AGENTS.md`, затронутые файлы/маршруты/модели/тесты, ограничения (стек, права, бэкапы, SEO, дизайн-система).
|
|
29
|
+
3. **Требования:** цель, сценарий, входит/не входит, критерии, ограничения (шаблон — `references/templates-and-estimates.md`).
|
|
30
|
+
4. **Варианты:** 2–3 с плюсами/минусами/рисками; для рискованного — самый обратимый; крупное — вертикальный срез.
|
|
31
|
+
5. **План:** шаги по 1–2 ч с файлами и проверкой; порядок: бэкап → изменения → проверка → откат.
|
|
32
|
+
6. **Риски:** риск → вероятность/влияние → митигация; перед необратимым — бэкап, dry-run, копия, feature-флаг.
|
|
33
|
+
7. **Исполнение:** чекпоинт после каждого блока; отклонения объясняй; scope creep — в «потом».
|
|
34
|
+
8. **Сдача:** таблица «критерий → проверка → результат», отчёт, память/версия.
|
|
35
|
+
|
|
36
|
+
## 2. Куда грузить дальше
|
|
37
|
+
| Нужно | Файл | ≈токенов |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| Детали 8 шагов и что проверять на каждом | references/process-steps.md | ≈1 350 |
|
|
40
|
+
| Бриф, критерии приёмки по типам, эвристики оценки | references/templates-and-estimates.md | ≈630 |
|
|
41
|
+
| Антипаттерны и чек-лист перед стартом | references/antipatterns-and-checklist.md | ≈480 |
|
|
42
|
+
|
|
43
|
+
## 3. Гейт перед сдачей
|
|
44
|
+
- [ ] Запрос переформулирован; неясности уточнены или допущения зафиксированы.
|
|
45
|
+
- [ ] Прочитаны память/досье, найдены затронутые файлы.
|
|
46
|
+
- [ ] Критерии приёмки зафиксированы до кода и сверены: критерий → проверка → результат.
|
|
47
|
+
- [ ] План с проверками и откатом выполнен; scope не расширен молча, «потом» вынесено.
|
|
48
|
+
- [ ] Подобраны скиллы (`skills-router`), пройдены их гейты: тесты/скриншоты/SEO/бэкап.
|
|
49
|
+
- [ ] Отчёт «сделано / как проверено / риски / дальше»; память и версия обновлены.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Антипаттерны и чек-лист перед стартом
|
|
2
|
+
|
|
3
|
+
> Часть навыка requirements-and-planning. ≈480 токенов. Читать, когда: проверяешь план на типовые ошибки или начинаешь задачу и нужен стартовый чек-лист.
|
|
4
|
+
|
|
5
|
+
## Антипаттерны
|
|
6
|
+
- Начать с кода, не поняв, что считать «готово».
|
|
7
|
+
- Уточнять «потом», когда уже всё сломано.
|
|
8
|
+
- План из одного пункта «сделать всё».
|
|
9
|
+
- Нет критериев приёмки → бесконечные правки и споры.
|
|
10
|
+
- Нет откат-плана для миграций/релизов/прод-правок.
|
|
11
|
+
- Молча расширить scope («заодно переделал ещё 10 страниц»).
|
|
12
|
+
- Считать «сделал» = «написал код» (без проверки и отчёта).
|
|
13
|
+
|
|
14
|
+
## Чек-лист перед стартом
|
|
15
|
+
- [ ] Запрос переформулирован одним предложением.
|
|
16
|
+
- [ ] Критичные неясности уточнены или зафиксированы допущения.
|
|
17
|
+
- [ ] Прочитана память/досье, найдены затронутые файлы.
|
|
18
|
+
- [ ] Критерии приёмки зафиксированы.
|
|
19
|
+
- [ ] Есть план с проверками и откатом.
|
|
20
|
+
- [ ] Подобраны скиллы (`skills-router`) под типы работ.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Восемь шагов планирования — детально
|
|
2
|
+
|
|
3
|
+
> Часть навыка requirements-and-planning. ≈1 350 токенов. Читать, когда: нужен полный разбор шагов — разведка, варианты, план, риски, чекпоинты, сдача.
|
|
4
|
+
|
|
5
|
+
## Шаг 1. Понять запрос
|
|
6
|
+
- Кто пользователь и в каком контексте? Что болит? Какая цель: сэкономить время, снизить ошибки, продать, найти?
|
|
7
|
+
- Что уже есть (текущее поведение / скриншот / код)? Что должно стать?
|
|
8
|
+
- Формат результата: экран? файл? архив? релиз? отчёт? API?
|
|
9
|
+
|
|
10
|
+
## Шаг 2. Контекст и разведка
|
|
11
|
+
- Прочитай память/досье проекта (`memory/INDEX.md`, `memory/projects/<проект>.md`), `AGENTS.md`.
|
|
12
|
+
- Найди затронутые файлы, маршруты, модели, шаблоны, тесты, конфиги.
|
|
13
|
+
- Проверь ограничения: стек, версии, окружение, права, бэкапы, кэш, SEO, дизайн-система.
|
|
14
|
+
- Не проектируй вслепую: 10 минут разведки экономят часы.
|
|
15
|
+
|
|
16
|
+
## Шаг 3. Требования и критерии приёмки
|
|
17
|
+
Заполни:
|
|
18
|
+
- **Цель:** <одно предложение>
|
|
19
|
+
- **Пользователь и сценарий:** <кто / что делает / зачем>
|
|
20
|
+
- **Входит:** <...>
|
|
21
|
+
- **Не входит:** <...>
|
|
22
|
+
- **Критерии приёмки:** проверяемые пункты, например «заявка создаётся с выбранной срочностью», «на 390px нет overflow», «title/description/canonical на странице», «PHPUnit зелёный, +2 теста».
|
|
23
|
+
- **Ограничения:** <бюджет времени, стек, нельзя ломать…>
|
|
24
|
+
|
|
25
|
+
## Шаг 4. Варианты решения
|
|
26
|
+
- 2–3 варианта (если выбор неочевиден): плюсы, минусы, риски, трудозатраты.
|
|
27
|
+
- Выбери и обоснуй. Для рискованных — предпочти самый обратимый.
|
|
28
|
+
- Для крупных задач — вертикальный срез (тонкая сквозная реализация), а не «сначала весь бэкенд».
|
|
29
|
+
|
|
30
|
+
## Шаг 5. План
|
|
31
|
+
```
|
|
32
|
+
1. <шаг> — файлы: ... — проверка: ...
|
|
33
|
+
2. <шаг> — файлы: ... — проверка: ...
|
|
34
|
+
```
|
|
35
|
+
- Декомпозируй до шагов на 1–2 часа; отметь зависимости и параллелизм.
|
|
36
|
+
- Для каждого шага — как проверить: тест, скриншот, запрос, аудит.
|
|
37
|
+
- Зафиксируй порядок: сначала бэкап/подготовка, потом изменения, потом проверка, потом откат-план.
|
|
38
|
+
|
|
39
|
+
## Шаг 6. Риски и откат
|
|
40
|
+
- Таблица: риск → вероятность/влияние → митигация.
|
|
41
|
+
- Что может сломаться: данные, прод, кэш, SEO, дизайн, интеграции? Как откатим?
|
|
42
|
+
- Перед необратимым: бэкап, dry-run, копия, feature-флаг.
|
|
43
|
+
|
|
44
|
+
## Шаг 7. Исполнение с чекпоинтами
|
|
45
|
+
- Двигайся по плану; после каждого блока — быстрая проверка (тест/линт/скриншот).
|
|
46
|
+
- Отклонение от плана — фиксируй и объясняй; scope creep — в отдельный список «потом».
|
|
47
|
+
- Для UI/SEO/БД используй соответствующие скиллы и их гейты.
|
|
48
|
+
|
|
49
|
+
## Шаг 8. Сдача
|
|
50
|
+
- Сверь результат с критериями приёмки: таблица «критерий → как проверено → результат».
|
|
51
|
+
- Отчёт: что сделано, как проверено, риски/ограничения, что дальше.
|
|
52
|
+
- Обнови память (`SESSIONS.md`, досье) и версию/документацию, если применимо.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Шаблоны брифа и критериев, эвристики оценки
|
|
2
|
+
|
|
3
|
+
> Часть навыка requirements-and-planning. ≈630 токенов. Читать, когда: нужно быстро собрать бриф, сформулировать критерии приёмки по типу работы или оценить трудозатраты.
|
|
4
|
+
|
|
5
|
+
## Шаблон брифа (короткий)
|
|
6
|
+
```
|
|
7
|
+
Задача: <одно предложение>
|
|
8
|
+
Зачем: <польза>
|
|
9
|
+
Пользователь/сценарий: <...>
|
|
10
|
+
Входит / Не входит: <...>
|
|
11
|
+
Критерии приёмки: <3–7 проверяемых пунктов>
|
|
12
|
+
Ограничения: <стек, сроки, нельзя ломать>
|
|
13
|
+
Риски/откат: <...>
|
|
14
|
+
План: <3–7 шагов с проверками>
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Шаблон критериев приёмки
|
|
18
|
+
- Given <контекст>, when <действие>, then <результат>.
|
|
19
|
+
- UI: 1440/768/390, light/dark, состояния, контраст AA, нет overflow.
|
|
20
|
+
- SEO: title/description, один H1, canonical, OG, schema, sitemap/robots (если применимо).
|
|
21
|
+
- API/данные: код ответа, валидация, транзакция, права, отсутствие N+1.
|
|
22
|
+
- Тесты: baseline не ухудшен, новые тесты зелёные.
|
|
23
|
+
- Релиз: артефакт собран, checksum, инструкция, откат.
|
|
24
|
+
|
|
25
|
+
## Эвристики оценки
|
|
26
|
+
- Небольшая правка — 0,5–2 ч; компонент — 2–6 ч; экран — 0,5–2 дня; фича с БД/тестами — 1–3 дня.
|
|
27
|
+
- Неизвестный стек / чужая кодовая база — ×1,5–2 к оценке.
|
|
28
|
+
- Всегда добавляй время на проверку (тесты/скриншоты/аудит) и на непредвиденное (+20–30%).
|
|
29
|
+
- Если оценка > 2 дней — дели на этапы с отдельной сдачей.
|
|
@@ -1,36 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: security-review
|
|
3
|
-
description: "
|
|
4
|
-
whenToUse: "
|
|
3
|
+
description: "Безопасность кода: OWASP-минимум, доступ и IDOR, ввод/вывод, загрузки, секреты, зависимости, реакция на инцидент."
|
|
4
|
+
whenToUse: "Новые маршруты, формы, API, загрузки, права и роли, работа с секретами; перед релизом, ревью и после инцидента."
|
|
5
5
|
user-invocable: true
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# Безопасность (универсальный чек-лист)
|
|
9
9
|
|
|
10
|
-
##
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
##
|
|
36
|
-
-
|
|
10
|
+
## 0. Когда применять
|
|
11
|
+
- Новый маршрут/форма/API/загрузка, права и роли, секреты; перед релизом/ревью; инцидент.
|
|
12
|
+
|
|
13
|
+
## 1. Главное
|
|
14
|
+
|
|
15
|
+
**OWASP-минимум (A01–A10):**
|
|
16
|
+
- **A01 Доступ:** deny-by-default; `auth` + право на каждом маршруте; IDOR — проверка владельца; привилегированные действия — отдельное право; тест admin/user/guest.
|
|
17
|
+
- **A02+A08 Крипто/целостность:** bcrypt/argon2 (не MD5/SHA1), TLS, секреты не в коде; не десериализовать недоверенное, подписи вебхуков, SRI.
|
|
18
|
+
- **A03 Инъекции:** SQL — параметры/ORM, команды — без shell, XML — без внешних сущностей; `fillable`/явные поля.
|
|
19
|
+
- **A04+A05 Дизайн/конфиг:** лимиты, least privilege, модель угроз (деньги/PII/админка); `APP_DEBUG=false`, без дефолтных паролей, CSP/`X-Content-Type-Options`/frame-ancestors, cookie HttpOnly/Secure/SameSite.
|
|
20
|
+
- **A06 Зависимости:** `composer audit`, `npm audit --omit=dev`; критичное — обновить.
|
|
21
|
+
- **A07 Аутентификация:** регенерация сессии при входе, выход инвалидирует, разумный срок; rate limit на вход/чувствительные действия; MFA админам; парольная политика.
|
|
22
|
+
- **A09+A10 Логи/SSRF:** вход/права/админ-действия без секретов и PII, алерты; allowlist исходящих URL, блок private/metadata IP.
|
|
23
|
+
|
|
24
|
+
**Ввод/вывод:** серверная валидация всех полей (тип/длина/диапазон/формат), клиент — только UX; экранирование по контексту; HTML — только санитайзер с whitelist; никаких `{!! !!}`/`innerHTML`/`v-html`; ошибки не отдают стек/секреты; PII — не в логах/URL/скриншотах.
|
|
25
|
+
|
|
26
|
+
**Загрузки:** whitelist расширений и MIME, лимит размера, случайные имена; вне webroot или безопасная отдача; не-изображения — `Content-Disposition: attachment`; изображения перекодировать; запрет path traversal и архивов-бомб.
|
|
27
|
+
|
|
28
|
+
**Секреты:** `.env`/секрет-хранилище; `.env` в `.gitignore` (`git check-ignore -v .env`); не в коде/логах/коммитах/памяти; утечка → ротация; прод — минимум прав.
|
|
29
|
+
|
|
30
|
+
**Инцидент:** зафиксировать, изолировать, сменить секреты, выпустить фикс, уведомить по политике, записать в память.
|
|
31
|
+
|
|
32
|
+
## 2. Куда грузить дальше
|
|
33
|
+
Смежные: `code-review-checklist`, `release-and-deploy`.
|
|
34
|
+
|
|
35
|
+
## 3. Гейт перед сдачей
|
|
36
|
+
- [ ] OWASP-минимум пройден, проверены admin/user/guest и IDOR.
|
|
37
|
+
- [ ] Ввод валидируется на сервере, вывод экранируется, опасного HTML нет.
|
|
38
|
+
- [ ] Загрузки: whitelist, лимит, безопасное хранение/отдача.
|
|
39
|
+
- [ ] Секретов нет в коде/логах/гите; `.env` игнорируется; аудит зависимостей.
|
|
40
|
+
- [ ] Прод: debug off, cookies/headers, rate limit; PII не в логах/URL/скриншотах.
|