SuperAPI AI Directory

write-plan

Design & creation

View repository

Updated 10-15 17:18

About this skill

/write-plan — Detailed implementation plan

Turns an agreed-upon design into an executable task list for subagents or sequential execution.

Input

Argument $ARGUMENTS — one of:

  • Path to design.md: openspec/changes/my-feature/design.md
  • Feature name: my-feature (searches openspec/changes/my-feature/design.md)
  • Nothing — searches for the single active change in openspec/changes/

Output

openspec/changes/<feature>/tasks.md — an executable task checklist.


Process

Step 1 — Loading context

rlm_route_context(query="project architecture patterns 1C metadata")

Read:

  • openspec/changes/<feature>/design.md — the agreed-upon design
  • openspec/project.md — if present, project conventions
  • Related XML/BSL files from design.md via Grep/Glob

Step 2 — Decomposition into tasks

Decomposition rules:

  • Each task = 2-5 minutes of subagent work
  • One task — one atomic operation (create object / write module / add form)
  • Dependencies are explicit: "Task 3 requires completion of Task 1"
  • Order: first metadata → then BSL → then forms → then integrations → validation

Typical task categories for 1C:

Category Task examples
Metadata Create catalog, add attribute, create register
Modules Write CommonModule, ObjectModule, ManagerModule
Forms Create form, add elements, write form module
Roles Create role, configure rights
Subsystems Add objects to subsystem
Integrations Event subscriptions, registration in BSP
Validation Check syntax, update DB

Step 3 — Writing tasks.md

Save to openspec/changes/<feature>/tasks.md.

Header format

# <Название фичи> — План реализации

> **Для субагента:** используй `/subagent-dev openspec/changes/<feature>/tasks.md`
> для выполнения задач по одной с ревью между ними.

**Цель:** <одно предложение — что строим>

**Дизайн:** `openspec/changes/<feature>/design.md`

**Порядок выполнения:** последовательно, если не указано иное

---

Format of each task

## Задача N: <Глагол + существительное>

**Статус:** `[ ]`

**Зависимости:** Задача X (или «нет»)

**Что делаем:**
<1-3 предложения — суть задачи>

**Файлы:**
- Создать: `src/Catalogs/МойСправочник/`
- Изменить: `src/CommonModules/МойМодуль/Module.bsl`
- Скилл: `/meta-compile` или `/form-compile` и т.д.

**Шаги:**
1. <конкретное действие — не «написать код», а «добавить реквизит Статус типа Перечисление.СтатусыЗаказа»>
2. <следующий шаг>
3. ...

**Проверка:**
- [ ] <критерий 1 — конкретный и проверяемый>
- [ ] <критерий 2>
- [ ] Синтаксис BSL проверен через `1c-syntax-checker`

**Коммит:** `feat: <краткое описание>`

Step 4 — Final task: validation

The last task in the plan is always:

## Задача N: Финальная валидация

**Статус:** `[ ]`

**Зависимости:** все предыдущие задачи

**Шаги:**
1. Запустить `/cf-validate` или `/epf-validate` (по типу объекта)
2. Если нужно обновление БД: `/db-update`
4. Проверить критерии приёмки из design.md

**Проверка:**
- [ ] Конфигурация валидна
- [ ] Все критерии из design.md выполнены

Step 5 — Proposing an execution mode

After saving tasks.md, propose two options:

План сохранён: openspec/changes/<feature>/tasks.md
Задач: N

Как выполнять?

1. /subagent-dev openspec/changes/<feature>/tasks.md
   — Субагенты на каждую задачу + ревью между задачами
   — Лучше для сложных доработок (3+ задачи, несколько модулей)

2. /openspec-apply <feature>
   — Последовательное выполнение в текущей сессии
   — Лучше для простых задач (1-3 задачи, один объект)

Do not run automatically — the user chooses themselves.


Plan quality rules

  • Exact paths — not src/modules/, а src/CommonModules/УправлениеЗаказами/Module.bsl
  • Exact skills — specify which skill to use for each task
  • Verifiable criteria — not "the code works", but "the form opens, the list is populated"
  • YAGNI — do not plan something that is not in design.md
  • No unnecessary commits — one commit per task, not per each file
  • BSL always through checker — every task with BSL code includes syntax checking

Anti-patterns

  • ❌ The task "Implement the entire module" — too large, split it
  • ❌ The check "verify that everything works" — unverifiable, make it specific
  • ❌ Tasks without specifying files
  • ❌ Skip the final validation task
  • ❌ Start execution without waiting for the user's choice