Create a lightweight Feature Brief (FEAT-NNN) for incremental product work that does not warrant a full PRD. Use when PM mentions "create a feature", "add feature brief", "new feature work", "feature request", "add FEAT", "заведи фичу", "новая фича", or any request to capture a small-to-medium feature without PRD-level process. Trigger liberally — under-triggering forces the agent to improvise freeform docs; over-triggering is recoverable (PM can delete or upgrade to PRD).
Installs into .claude/skills of the current project.
Are you the author of Feature?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/cryndoc-feature)
---
name: feature
description: 'Create a lightweight Feature Brief (FEAT-NNN) for incremental product work that does not warrant a full PRD. Use when PM mentions "create a feature", "add feature brief", "new feature work", "feature request", "add FEAT", "заведи фичу", "новая фича", or any request to capture a small-to-medium feature without PRD-level process. Trigger liberally — under-triggering forces the agent to improvise freeform docs; over-triggering is recoverable (PM can delete or upgrade to PRD).'
argument-hint: "[описание]"
---
# /polisade:feature [описание] — Добавить фичу
Создание Feature Brief — короткого описания фичи для быстрой работы.
**Это основной способ добавления фич.** Используй PRD только для крупных инициатив.
## Использование
```
/polisade:feature Добавить экспорт в PDF
/polisade:feature Кнопка "Поделиться" в карточке товара
```
## Алгоритм
### Быстрое добавление (по умолчанию)
Если PM даёт короткое описание:
<!-- polisade:exec-denied CAPSULE BEGIN -->
> ⛔ **Вызов скрипта отклонён или не запустился** (`Command references protected path` / `Install directory is read-protected` / `Filesystem Guard` / `the tool's default permission is 'deny'`, отказ песочницы, ненулевой exit без вывода) — **STOP**.
> Процитируй отказ дословно. НЕ пересказывай по исходнику, что скрипт «сделал бы»; НЕ собирай dry-run вручную; НЕ переходи к apply/push/pr-create.
> НЕ транскрибируй скрипт (прочитать → записать копию в `/tmp` или в проект → запустить копию): копия не байт-идентична — уезжают классы символов в regex, форма возврата функций, пропадают целые функции — и молча меняется набор применённых изменений.
> Отказ инструмента — это отказ, а не результат. Доложи PM дословный текст отказа и сошлись на #127 (доставка скриптов в проект).
<!-- polisade:exec-denied CAPSULE END -->
1. **Возьми семя для FEAT** — номер при создании не вычисляется:
```bash
${POLISADE_PYTHON:-python3} {plugin_root}/scripts/polisade_id.py new-seed
```
Имя файла — `FEAT-<семя>-<slug>.md`, фронтматтер — `id: FEAT-<семя>` И
`seed: <семя>` (оба обязательны). Счётчик не читается и не пишется, и
**Counter drift при создании больше не существует**: номера выдаются только
`/polisade:sync --apply` на транке, поэтому сталкиваться не с чем. Протокол:
`skills/tasks/references/compute-next-id.md`.
2. **Write-guard.** Перед `Write` проверь, что
`backlog/features/FEAT-<семя>-slug.md` не существует. Проверять
`artifactIndex` нечем: номера ещё нет. При коллизии — новое семя.
3. Создай файл `backlog/features/FEAT-<семя>-slug.md`
4. Заполни базовую информацию
5. Спроси 2-3 уточняющих вопроса:
- "Какой приоритет: P1 (высокий), P2 (средний), P3 (низкий)?"
- "Это на несколько часов (S), дней (M) или неделю+ (L)?"
- Если непонятно: "Можешь описать что именно должно происходить?"
6. **Счётчик не трогай.** `.state/counters.json` пишет только
`/polisade:sync --apply` на транке — там же, где выдаётся номер.
Здесь у артефакта номера ещё нет.
7. Обнови PROJECT_STATE.json
8. **PM Checkpoint для M/L** (см. ниже)
9. Покажи результат с рекомендацией следующего шага
### Определение размера (size)
| Size | Описание | Следующий шаг |
|------|----------|---------------|
| S | Несколько часов, очевидная реализация | `/polisade:tasks` сразу |
| M | Несколько дней, понятные требования | `/polisade:tasks` или `/polisade:spec` |
| L | Неделя+, сложная логика | Предложи `/polisade:prd` |
## PM Checkpoint
### Для size M или L — ОБЯЗАТЕЛЬНАЯ остановка:
```
═══════════════════════════════════════════
НУЖНО РЕШЕНИЕ PM
═══════════════════════════════════════════
Контекст: FEAT-001 (Экспорт в PDF)
Размер: M (несколько дней)
Вопрос: Нужна ли техническая спецификация?
1. Да — создать SPEC для проработки архитектуры
2. Нет — сразу /polisade:tasks для создания задач
Рекомендация: 2 (для M достаточно задач)
→ "1" / "2" или "continue" для рекомендации
═══════════════════════════════════════════
```
### Для size L — предложение PRD:
```
═══════════════════════════════════════════
НУЖНО РЕШЕНИЕ PM
═══════════════════════════════════════════
Контекст: FEAT-001 (Система уведомлений)
Размер: L (неделя+)
Вопрос: Это выглядит как крупная инициатива.
1. Создать полный PRD — для детальной проработки
2. Оставить как FEAT — если требования понятны
3. Создать SPIKE — если нужно исследование
Рекомендация: 1 (PRD для L-размера)
→ "1" / "2" / "3" или "continue" для рекомендации
═══════════════════════════════════════════
```
## Шаблон файла
```markdown
---
id: FEAT-<семя>
seed: <семя> # `polisade_id.py new-seed`; НЕ меняется никогда — по нему
# читается ссылка, сделанная до нумерации
title: "[Описание]"
status: ready
created: YYYY-MM-DD
priority: P2
size: M
children: []
---
# Feature: [Описание]
## Что и зачем
**Что делаем:**
[Из описания PM]
**Зачем:**
[Если очевидно — заполни, иначе спроси]
**Для кого:**
[Если очевидно — заполни, иначе "Основные пользователи"]
## Требования
### Должно быть (Must have)
- [ ] [Основное требование из описания]
### Хорошо бы (Nice to have)
- [ ] [Если PM упомянул]
## Критерии готовности
- [ ] Функционал работает
- [ ] [Специфичные критерии если есть]
## Следующий шаг
→ /polisade:tasks FEAT-XXX (для S/M)
→ /polisade:spec FEAT-XXX (если нужна архитектура)
```
## Формат подтверждения
```
═══════════════════════════════════════════
FEATURE BRIEF СОЗДАН
═══════════════════════════════════════════
ID: FEAT-001
Название: Добавить экспорт в PDF
Файл: backlog/features/FEAT-001-export-pdf.md
Приоритет: P2
Размер: M (несколько дней)
Статус: ready
═══════════════════════════════════════════
СЛЕДУЮЩИЙ ШАГ:
→ /polisade:tasks FEAT-001 — создать задачи и начать работу
→ /polisade:spec FEAT-001 — если нужна техническая проработка
→ /polisade:continue — автономная работа
═══════════════════════════════════════════
```
## Генерация slug
Из описания создай короткий slug:
- "Добавить экспорт в PDF" → `export-pdf`
- "Кнопка поделиться" → `share-button`
- Только латиница, lowercase, дефисы
## Важно
- Для size M/L — обязательно PM Checkpoint
- Для size L — предложи PRD
- Не начинай работу над M/L без подтверждения PM
- `/polisade:tasks` создаёт TASK, которые идут в `/polisade:implement`