Skip to content
Back to skills

Wp New

ASecurity

Создание нового рабочего продукта (РП) с атомарной записью в 4 локальных места (+ условный пост-шаг во внешний трекер, если подключён). Используй когда появляется новая задача, которой нет в плане недели.

  • 63 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 1, 2026
ai-agentsgobashgit

Works with

  • mcp

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add TserenTserenov/FMT-exocortex-template --skill wp-new --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Wp New?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Wp New
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tserentserenov-wp-new/badge)](https://www.skillsdirectory.com/skills/tserentserenov-wp-new)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: wp-new
description: Создание нового рабочего продукта (РП) с атомарной записью в 4 локальных места (+ условный пост-шаг во внешний трекер, если подключён). Используй когда появляется новая задача, которой нет в плане недели.
argument-hint: "[название РП]"
version: 1.0.0
layer: L1
status: active
browser_safe: false
triggers:
  slash: [/wp-new]
  phrases: []
routing:
  executor: haiku
  deterministic: false
agents: single
interaction: multi-step
gates_required: []
gates_enforced: []
gates_rationale: "операционный скилл; WP Gate применим только при создании нового РП, не для операционных вызовов"
---

# Создание нового РП

Новый рабочий продукт: $ARGUMENTS

---

## When to use

Создание нового рабочего продукта (РП) с атомарной записью в 4 локальных места (+ условный пост-шаг во внешний трекер, если подключён). Используй когда появляется новая задача, которой нет в плане недели.

## ⛔ БЛОКИРУЮЩЕЕ ПРАВИЛО (Шаг 0): явное согласие пользователя

**Создание РП — необратимое действие** (запись в 4 локальных места: REGISTRY/WeekPlan/Strategy/context-file; внешний трекер — условный пост-шаг, только при подключённом MCP, issue #321). Откат стоит времени и создаёт шум в системе. Поэтому:

1. **Сначала проверь:** задача может быть выполнена в рамках **существующего открытого РП** (как новая фаза, под-задача, или продолжение)?
   - Открой WeekPlan текущей недели + WP-REGISTRY → найди РП с близким scope.
   - Если задача = расширение существующего scope → **продолжай в рамках того РП** (добавь Phase 2 / новый трек / context-file extension).
2. **Если новый РП объективно нужен** (отдельный lifecycle, отдельный артефакт, не вписывается в существующий):
   - Сначала выполни классификацию типа результата и получение имени по Шагу 1; это подготовка, без записи нового РП.
   - **Предложи** пользователю полученную формулировку: «Это потянет на новый РП #{N} `<title>`. Создать?»
   - **Дождись явного "да" / "создавай" / "ок"** перед записью в 4 места.
   - Запрос здесь legitimate (не нарушение P5 «не задавать вопросы») — **создание РП = создание artefact в системе**, требует явного buy-in пользователя.
3. **Запрещено:**
   - Создавать РП «по аналогии» / «потому что задача похожа на новый scope» / «чтобы зафиксировать план».
   - Создавать РП после команды пользователя «сделай план для X» — план может быть документом в рамках существующего РП.
   - Создавать РП «на всякий случай» / «для прозрачности».

**Это исключение из Правила 1 feedback_behaviour** (автономность). Правило 1 запрещает спрашивать разрешения на действия, у которых уже есть достаточный context. Создание РП — нет: оно требует явного buy-in потому что (а) запись в 4 места необратима без отката, (б) влияет на бюджет недели и Strategy mapping, (в) при подключённом внешнем трекере РП добавляется и туда (виден другим).

**Журнал нарушений:** 26 апр 2026 WP-270 — создал РП после фразы пилота «давай сделаем новый план миграции» без явного согласия. План был отдельным документом, мог быть Phase 2 в рамках WP-268. Откат: WP-270 cancelled, план перенесён в WP-268 §Phase 2.

---

## Algorithm

## Шаг 1. Сбор информации

### Тип результата — до имени и класса (WP-575)

Вызови Skill `artifactor` с сырым описанием задачи и сохрани его JSON-ответ. Вызов обязателен для любого класса задачи, включая trivial/closed-loop. Сначала прочитай `result_type`, затем используй `artifact` для имени и `class` для верификации. `expected_result_kind` — отдельная ось, из неё тип результата не выводится.

| `result_type` | Следующее действие |
|---|---|
| `system` | Проверь применимость IntegrationGate (`.claude/rules-lazy/integration-gate.md`): для нового инструмента/агента/скрипта/сервиса зафиксируй обещание → сценарии → роль → реализацию. Для изменения существующей системы укажи её действующие обещание/сценарий/роль и границы изменения; новый паспорт автоматически не создавай. |
| `episteme` | Пройди Routing Gate (`memory/routing-vocab.md`, при неоднозначности — `memory/repo-type-rules.md`, DP.KR.001 §5) и зафиксируй целевой дом документа/знания. Описание системы — информационный объект, даже если в названии есть «сервис» или «агент». |
| `unresolved`, поле отсутствует или содержит другое значение | До имени и регистрации уточни у пилота, что останется результатом: действующая система или информационный объект. Повтори Артефактор с уточнённым запросом; до определённого `system`/`episteme` запись нового РП не выполняй. Не подменяй тип по имени, классу верификации или ближайшему `expected_result_kind`. |

Если нужны и система, и её описание, явно различи основной результат и сопроводительные документы; если основной результат не определён — уточни его. Routing Gate применяется также к документам о системе: IntegrationGate его не отменяет. Уже данный пилотом явный ответ о результате используй без повторного вопроса.

Сохрани исходный JSON для передачи в `create-wp.sh`; не составляй заменяющий JSON вручную. После создания дополни карточку полем `result_type` из этого же JSON и краткой записью в «Артефакт»: основание классификации, применённый гейт и ссылки на его результат. Скрипт сохраняет контрольную сумму JSON, но пока не переносит `result_type` автоматически и не проверяет прохождение гейтов — эту запись и проверку выполняет агент.

**Свидетельство для `system` при регистрации.** В «Артефакт» укажи применимость IntegrationGate. Для новой системы запиши ссылки на уже готовые обещание, сценарии и роль либо открытые фазы их подготовки; будущие документы не отмечай выполненными. Регистрация карточки не означает прохождения IntegrationGate: реализация начинается только после обязательных шагов 1–3. Для изменения существующей системы без изменения её обещания запиши основание исключения из `.claude/rules-lazy/integration-gate.md` и ссылку на существующую систему; если обещание меняется — сначала актуализируй обещание, сценарии и роль.

**Смена результата после регистрации.** Если пилот явно меняет результат (например, вместо системы заказывает только её описание), повтори Артефактор с новым заданием и заново примени соответствующий гейт до продолжения. Сохрани исходный JSON и исходное `artifactor_result_sha256`; в «Артефакт» добавь решение пилота, прежний и новый тип, ссылку и контрольную сумму нового JSON, новый маршрут. Поле `result_type` обнови по новому результату классификации. Если агент лишь обнаружил расхождение между планом и исполнением, сообщи пилоту; это не разрешение самостоятельно менять результат РП или переписывать исходное свидетельство.

Запроси или определи:
- **Название:** формулировка артефакта (не задачи) из сохранённого ответа Артефактора выше — не формулировать название самому (WP-563, WP-7 Ф142). Сохранённый файл (например `$STATE_DIR/artifactor-result-{slug}.json`) передаётся в `create-wp.sh` на Шаге 4: скрипт берёт `title` из его поля `artifact` и отказывает, если файла нет или переданный отдельно `--title` с ним расходится (Артефактор-гейт, см. Шаг 4). Ответ `INSUFFICIENT_INPUT` или `{"error": "INSUFFICIENT_INPUT"}` → запросить более развёрнутое описание и повторить вызов. Название пилоту не показывать, минуя классификацию типа результата.
- **Правка пилота.** Пилот вправе поправить формулировку Артефактора сам — тогда на Шаге 4 передать `--pilot-revision "причина"` вместе с исправленным `--title`; без этого флага расхождение `--title` с результатом Артефактора — отказ скрипта, не тихая подмена.
- **Репо:** целевой репозиторий
- **Бюджет:** оценка в часах
- **Приоритет:** критический / высокий / средний / низкий
- **Результат месяца:** (только для РП ≥3h) к какому результату месяца (R1, R2, …) привязан? Допустимые ответы: R{N}, поддержка, off-plan. Source-of-truth маппинга: `${IWE_GOVERNANCE_REPO:-DS-strategy}/docs/Strategy.md` → «РП → Результаты»
- **Критерий готовности:** что должно получиться
- **Ставка — переход состояния (WP-457, WP-505):** ось из `docs/state-axes-registry.yaml` (только `gate_ready`: permission/Доверие, belonging/Оснащённость, engagement/Увлечённость, mastery/Компетентность) + формулировка «из → в» одной строкой; субъект перехода — пользователь платформы / пилот / команда. **Обязательно**, если файл реестра осей существует — скрипт заблокирует создание без `--state`. Файла нет (типовая установка) → пропустить.
- **Связь с гипотезой:** выбрать до запуска РП: `tests H-NNN`, `enables H-NNN`, `responds H-NNN`, `researches` или `operational`. Первые три требуют ровно одну гипотезу; два последних — явное «—». Значение `unclassified` допустимо только при создании обратимой заготовки и блокирует начало работы.

## Шаг 2. Нумерация

Найди последний номер РП в `docs/WP-REGISTRY.md` → следующий порядковый номер. Только целые числа (74, 75…). Буквенные суффиксы (73a, 73b) запрещены.

## Шаг 3. Проверка бюджета

Прочитай текущий бюджет недели из WeekPlan. Предупреди если превышение.

## Шаг 4. Запись — запустить `$IWE_SCRIPTS/create-wp.sh`

Все шаги ниже автоматизированы скриптом `$IWE_SCRIPTS/create-wp.sh`. Скрипт пишет в 4 места:

1. **`inbox/WP-{N}/WP-{N}.md`** → context file (всегда папка — WP-434, см. INBOX-CONVENTION)
2. **`docs/WP-REGISTRY.md`** → новая строка таблицы
3. **`current/WeekPlan W{N}…md`** → новая строка в таблице РП
4. **`current/active-wp.md`** → пересобирается автоматически (`build-active-wp.py`)

> **issue #280:** до этого фикса скрипт дополнительно создавал заготовку `archive/wp-contexts/WP-{N}-{slug}.md` (§Закрытия stub). Эта заготовка больше не создаётся при регистрации — `close-wp.sh` сам создаёт файл заново при закрытии РП, канонический путь `git mv` из `protocol-close.md` не конфликтует с существующим файлом. Пустые заготовки, найденные в `archive/wp-contexts/` с датой до этого фикса, — след старого поведения, не действующая норма.

**После скрипта — агент дополняет карточку и вызывает MCP:**
- **Карточка РП** — добавить `result_type: system|episteme` из сохранённого JSON и свидетельство маршрутизации по Шагу 1 до подтверждения создания.
- **Linear issue** — вызвать `mcp__claude_ai_linear__save_issue`:
  `title: "WP-{N} {Название}"`, `team: "{{LINEAR_TEAM_ID}}"` <!-- L3-author: teamId was here, replaced with {{LINEAR_TEAM_ID}} -->
  `priority: 2` (P2 → High), description: краткое описание фаз + путь к context file
- **`docs/Strategy.md` § «РП → Результаты»** — только для РП ≥3h. Передать `--result R{N}` скрипту для автовставки; без флага — добавить вручную.

**Синтаксис скрипта:**
```bash
touch "${IWE_ROOT:-$HOME/IWE}/.claude/state/wp-consent-{N}"   # WP Gate — обязательно перед запуском (тот же путь, что проверяет create-wp.sh, — НЕ ~/.claude, issue #556)
bash "$IWE_SCRIPTS/create-wp.sh" \
  --artifactor-result "$STATE_DIR/artifactor-result-{slug}.json" \  # результат Шага 1, обязателен всегда
  --budget 5h \
  --priority P2 \
  --verification-class open-loop \  # обязателен всегда: trivial|closed-loop|open-loop|problem-framing
  --state "belonging (Оснащённость): пилот без Х → с Х" \  # обязателен при наличии docs/state-axes-registry.yaml
  --hypothesis H-101 \ # для tests/enables/responds
  --hypothesis-relation tests \ # tests|enables|responds|researches|operational
  --result R3 \        # необязательно; если ≥3h — передать для автовставки в Strategy.md
  --repo "DS-repo"     # необязательно
  # --pilot-revision "причина" \   # только если пилот сам поправил формулировку Артефактора
  # --title "Название" \           # тот же класс случая — только вместе с --pilot-revision
```

**Артефактор-гейт (WP-7 Ф142, 2026-09-11) — механический, не только инструкция.** `create-wp.sh` отказывает (exit 1), если `--artifactor-result` не передан (кроме явного `--no-artifactor-check` — только для тестов/скриптов, никогда для обычного создания РП агентом) или если JSON нечитаем / без поля `artifact`. Title всегда берётся из этого файла; отдельно переданный `--title`, расходящийся с ним без `--pilot-revision`, — тоже отказ. Это закрывает дыру, которую нашла пир-сессия 2026-09-11-04-wp7-f140-artifactor-process: раньше ничто не проверяло, что агент реально использовал результат вызова, а не вписал своё.

**Шаблон context file** (создаётся скриптом автоматически; `result_type` и свидетельство маршрутизации дописывает агент по Шагу 1):
```markdown
---
wp: {N}
title: {название}
status: pending
priority: {P1-P5}
budget: {Nh}
created: {YYYY-MM-DD}
last_session: {YYYY-MM-DD}
related: []
verification_class: {trivial|closed-loop|open-loop|problem-framing}
state_transition: "{ось (Русское имя): из → в}"
hypothesis: "{H-NNN или —}"
hypothesis_relation: "{tests|enables|responds|researches|operational}"
artifactor_resolution_path: {keyword|llm|bypassed}
artifactor_result_sha256: {sha256 результата Артефактора}
result_type: {system|episteme}
---

# WP-{N}: {название}

## Проблема
## Артефакт
## Связки с РП
## Фазы реализации
## Осталось
```

## Шаг 5. Подтверждение

Выведи: *«РП #{N} создан. Скрипт записал в 4 местах: context file, Registry, WeekPlan, active-wp пересобран. Linear — {TSR-NN}.»*
Если ≥3h и `--result` не передан: добавить «+ добавить маппинг в Strategy.md вручную».

```bash
# Postcondition check — substitute {N} with the real WP number before running
WP_NUM={N}   # real number from Step 2
grep -q "WP-${WP_NUM}" "{{WORKSPACE_DIR}}/{{GOVERNANCE_REPO}}/docs/WP-REGISTRY.md" \
  && echo "✅ WP-${WP_NUM} найден в WP-REGISTRY.md" \
  || echo "❌ WP-${WP_NUM} НЕ найден — проверить вывод create-wp.sh выше"
```

<!-- USER-SPACE -->
<!-- /USER-SPACE -->

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.