
Spec & Architecture
@dev-spec
Turns a product idea into a compact spec and a build plan for an MVP: interviews for requirements, picks a minimal stack, sketches the architecture, saves SPEC.md, breaks the work into verifiable tasks. Use when the user says «хочу сделать приложение/сайт/бота/скрипт», «напиши ТЗ», «спроектируй архитектуру», «с чего начать разработку», «помоги выбрать стек/язык», «оцени, сколько займёт». Do NOT use for writing the actual code (dev-build), testing (dev-test), deployment (dev-deploy), project tracking (dev-project), or a one-line trivial edit.
Who the Spec & Architecture skill is for
- Founders and product people — turn a fuzzy idea into a clear spec before any code is written.
- Solo developers and freelancers — pin down requirements, stack and an acceptance criterion so you don't redo work later.
- MVP launch teams — split the product into thin vertical slices and know what's core versus what to defer.
- Anyone choosing a stack — get a reasoned recommendation for the task and environment, not just what's «trendy».
What you can do
- Assemble an MVP spec — goal, value, acceptance criterion, stack with versions, run commands, project structure, boundaries and a data model. Six blocks, no fluff.
- Pick a minimal stack — for the task type: web app, Telegram bot, CLI, parser, desktop. Considering what actually runs on the user's machine.
- Break the work into tasks — small verifiable chunks, each doable and checkable in isolation.
- Estimate scope — see whether it's really an MVP or will run past a week.
Related skills: Build, Test & Debug, Project Tracking.
How it works: an MVP is not «everything, just less»
The core principle is one core value: one user problem → one way to solve it → everything else (social login, profile settings, dark mode, analytics) is cut or deferred. The skill first runs a short interview, one question at a time, so it doesn't grind you down. Then a compact spec is assembled and saved to SPEC.md — the living source of truth the later stages return to.
Useful details
- The acceptance criterion is written explicitly — the testing skill checks against it later.
- The stack is picked deliberately: what you know and what runs on the user's machine. Python may be missing on Windows, but Node is always there.
- Three-tier boundaries: ✅ always / ⚠️ ask / 🚫 never — so no features get added «just in case».
- Sign-off before code: edits at the spec stage cost minutes, after code they cost hours.
Ready to turn the idea into a plan? Launch the Spec & Architecture skill or start with the full AI Developer.
How is this spec different from a «big» requirements document?
It's compact — six blocks instead of a multi-page document: goal and value, stack with versions, run commands, project structure, three-tier boundaries and a data model. The aim is to raise confidence in the requirements to ~90%, not to write a thesis.
Do I need to know the stack and language in advance?
No. The skill runs a short interview (5–7 questions), clarifies the platform and the user's environment, then proposes a minimal stack for the task type — web app, Telegram bot, CLI, parser or desktop.
What if I can't name the one main task of the product?
That's fine — it's exactly the question the skill asks first. The one-core-value rule: one user problem → one way to solve it → everything else is cut or deferred. Without a clear core, the spec doesn't come together.
Is the skill suited to a one-line edit?
No. For a trivial edit or a quick 20-line script a spec is overkill. This skill switches on when a new project or a major feature starts — while there's little or no code yet.
Is it paid?
You can use the skill within your AgentHere plan — you pay tokens as the model runs. See the pricing page for exact limits.
ТЗ и архитектура для MVP
Превратить смутную идею в чёткое техническое задание и план — до того, как писать код. Цель: чтобы разработка шла по рельсам, а не по наитию. MVP — это не «урезанный продукт», а минимальная версия, которая уже решает задачу пользователя.
Когда активирован этот навык
- Пользователь говорит «хочу сделать / создать / разработать» приложение, сайт, бота, скрипт, интеграцию, парсер.
- Просит ТЗ, архитектуру, план, оценить сроки, выбрать стек.
- Начинает новый проект или крупную фичу — пока кода ещё нет (или его мало).
Не активируй, если задача — мелкая правка, быстрый скрипт в 20 строк или ответ на вопрос. Там ТЗ избыточно. И не путай с написанием кода (dev-build) или тестами (dev-test).
Главный принцип: MVP — это не «всё, только меньше»
MVP отвечает на вопрос «какое ядро уже приносит пользу?», а не «что успеем за неделю?». Правило одной ключевой ценности: одна проблема пользователя → один путь её решения → всё остальное (регистрация через соцсети, настройки профиля, тёмная тема, аналитика, админка) выкидывается или откладывается. Если пользователь не может назвать одну главную задачу продукта — это первый вопрос, который задаёшь ты.
Процесс
1. Интервью (5–7 вопросов, не больше)
Задавай по одному вопросу за раз, блоком, чтобы не мучить пользователя. Цель — поднять уверенность в требованиях до ~90%, а не написать диплом.
Обязательные вопросы:
- Что главное? Какую одну задачу решаем? Кто пользователь и когда ему больно?
- Как выглядит успех? Что пользователь сможет сделать, чтобы сказать «оно работает»? Это и есть критерий приёмки — его потом проверяет dev-test.
- Платформа и окружение: веб / десктоп / Telegram-бот / CLI / мобильное? Какая ОС у пользователя (для запуска)? Это влияет на выбор стека.
- Данные: что хранить, откуда брать, сколько примерно? Нужна ли авторизация?
- Ограничения: бюджет, сроки, «нельзя платить иностранцам», должен работать без интернета, есть ли готовые API/ключи.
Если пользователь отвечает «не знаю» — предложи 2–3 варианта по умолчанию и объясни компромисс. Не уходи в рассуждения на 20 экранов.
2. Техническое задание (компактное)
Шаблон — в конце этого навыка (§Шаблон SPEC.md). Шесть блоков (не больше):
- Цель и ценность — одну ключевую задачу + критерий приёмки.
- Стек — конкретный и минимальный (с версиями). См. §3 ниже.
- Команды — как запускать, тестировать, собирать (реальные команды с флагами).
- Структура проекта — где код, тесты, данные.
- Границы — трёхуровневые: ✅ всегда / ⚠️ спросить / 🚫 никогда.
- Данные и модель — ключевые сущности и связи (текстом, без переусложнения).
Сохрани ТЗ в файл SPEC.md в корне проекта — это живой источник правды, к нему
возвращаются dev-build и dev-test.
3. Минимальный стек (выбрать осознанно)
Правило: выбирай то, что знаешь, и то, что запускается у пользователя. Не тянуть новую технологию ради любопытства. Конкретные рекомендации по типам задач:
| Тип задачи | Стек по умолчанию (MVP) |
|---|---|
| Веб-сайт / лендинг | HTML + CSS + минимум JS; или Next.js если нужна динамика |
| Веб-приложение | Next.js (React) + SQLite/Postgres; FastAPI если сложная логика |
| Telegram-бот | Python (aiogram) или Node (grammy) |
| CLI / скрипт | Python или Node — что уже стоит у пользователя |
| Парсер / автоматизация | Python (requests/BeautifulSoup) или Node |
| Десктоп | Electron (если веб-стек) — но это тяжело для MVP, сначала CLI/веб |
Ключевой вопрос про окружение: на Windows у пользователя может не быть Python и Unix-утилит, но Node есть всегда (вшит в десктоп AgentHere). Если не уверен, что у пользователя стоит Python — предложи Node, или спроси. Подробности про кросс-платформу — в навыке dev-build.
4. Разбивка на задачи
Раздели ТЗ на маленькие, проверяемые куски — каждый можно сделать и проверить изолированно. Плохо: «сделать авторизацию». Хорошо: «создать форму регистрации с проверкой email → сохранить пользователя в SQLite → проверять уникальность email».
Задачи записывай чек-листом — его потом ведёт навык dev-project (todowrite + журнал). Порядок: сначала путь пользователя от начала до конца тонким срезом (vertical slice), а уже потом — толщина (валидация, ошибки, красота).
5. Согласование
Покажи пользователю ТЗ + стек + первые 3–5 задач и получи «ок» до кода. Это ключевая точка: правки на этапе ТЗ стоят минуты, правки после кода — часы. Если пользователь торопит («да просто напиши уже») — сделай ультракомпактное ТЗ (цель + стек
- критерий приёмки, 15 строк), но согласуй его.
Границы (трёхуровневые, как в ТЗ)
- ✅ Всегда: записать критерий приёмки; выбрать минимальный стек; сохранить
SPEC.md. - ⚠️ Спросить: если пользователь не назвал платформу/ОС; если предлагаешь нестандартный стек; если MVP-объём реально потянет > 1 недели.
- 🚫 Никогда: не добавлять фичи «на всякий случай»; не выбирать технологию, которую невозможно запустить у пользователя; не начинать код без согласованного ТЗ (кроме тривиальных задач).
Существующий проект (не с нуля)
Если пользователь приходит с уже существующим проектом («вот моя папка, добавь X / почини Y») — не строй полный MVP-ТЗ заново:
- Сначала прочитай контекст проекта:
README.md,AGENTS.md(если есть),package.json/pyproject.toml, структуру папок. Пойми, как запускается, как тестируется, какой стиль. - Напиши короткое ТЗ на изменение (5–10 строк): что меняем, зачем, критерий
«стало работать» (как проверить), что не трогаем (рабочие места, которые
можно сломать). Сохрани как
SPEC.md(или допиши раздел в существующий). - Согласуй короткое ТЗ с пользователем — как и полное.
Правило: рабочий код не переписывается, пока не ясно, зачем. Сначала минимальное изменение, доказывающее результат, — потом полировка.
Отговорки и почему они не работают
| Отговорка | Почему мимо |
|---|---|
| «Напишу ТЗ потом, сразу в код» | Без ТЗ код расползается; правки после кода в 10× дороже. Минимум 15 строк — и вперёд. |
| «Добавлю регистрацию/настройки сразу» | Это не MVP. Сначала ключевую ценность, остальное — после того, как ядро заработает. |
| «Стек выберу по ходу» | Смена стека в середине = снос всего. Один абзац про стек в ТЗ — и вопрос закрыт. |
| «Критерий приёмки и так понятен» | Если не записан — dev-test не сможет проверить. Запиши явно. |
Выходные критерии (проверь перед передачей в dev-build)
- Названа одна главная задача пользователя.
- Записан критерий приёмки — как поймём, что «работает».
- Выбран минимальный стек, совместимый с окружением пользователя.
-
SPEC.mdсохранён в корне проекта (или отдан пользователю). - Задачи разбиты на проверяемые куски; первые 3–5 согласованы с пользователем.
Источники подхода: spec-driven development (GitHub Spec Kit), Addy Osmani «How to write a good spec for AI agents» (2026), анализ 2500+ агентских конфигов (шесть блоков ТЗ + трёхуровневые границы).
Шаблон SPEC.md
Копируй в SPEC.md в корне проекта и заполняй. Это живой документ: обновляй,
когда меняются решения или выкидываются фичи; dev-build и dev-test возвращаются к
нему как к источнику правды.
# SPEC.md — <название проекта>
## 1. Цель и ценность
- Одна главная задача: <что пользователь делает продуктом; одна фраза>
- Кто пользователь: <роль/контекст>
- Критерий приёмки: <конкретное действие + ожидаемый результат, проверяемое>.
Пример: «пользователь вставляет ссылку на товар WB → получает историю цены за 30
дней графиком → может скачать CSV». Это проверяет dev-test.
- Что НЕ входит в MVP (явно): <регистрация, профили, оплата, админка, мультиязычность…>
## 2. Стек (конкретный, минимальный)
- Язык/фреймворк: <название + версия, напр. Python 3.12 + FastAPI 0.115>
- База данных / хранилище: <SQLite / JSON-файл / Postgres — простейшее>
- Фронтенд (если есть): <HTML/CSS / Next.js>
- Зависимости: <только необходимые, по одной на задачу>
- Окружение запуска: <ОС пользователя, что уже стоит — критично для Windows>
## 3. Команды (реальные, с флагами)
- Установить зависимости: <команда>
- Запустить: <команда>
- Запустить тесты: <команда>
- Собрать/упаковать (если надо): <команда>
## 4. Структура проекта
<корень>/
src/ — код
tests/ — тесты
data/ — данные/БД
SPEC.md — этот файл
## 5. Границы (✅ / ⚠️ / 🚫)
- ✅ Всегда: <напр. запускать тесты перед завершением задачи; следовать стилю кода>
- ⚠️ Спросить: <напр. менять схему БД; добавлять зависимость; трогать конфиг>
- 🚫 Никогда: <напр. коммитить секреты; править node_modules/.venv; удалять падающий тест>
## 6. Данные и модель (ключевые сущности)
- <Сущность A>: <поля, связи>. Пример: `User { id, email, created_at }`.
- Внешние источники: <API/файлы, откуда берём данные, нужен ли ключ>
## Чек-лист задач (MVP, тонким срезом)
1. <первый сквозной путь от старта до результата — самый тонкий>
2. <толщина: валидация, ошибки>
3. <толщина: удобство, полировка>
## Журнал решений (заполняется по ходу)
- <дата> — Решили <X> вместо <Y>, потому что <причина>. (см. также DEV-JOURNAL.md)