Роли агентов для приложений, созданных через чат: цепочка от Planner до Reviewer
Роли агентов для приложений, созданных через чат: определите понятные персоны, шаблоны передачи и быстрые проверки, чтобы ваша команда выпускала более надёжные веб- и мобильные приложения из чата.

Почему надёжность страдает, когда вы создаёте приложения через чат
Чат помогает двигаться быстро, но ему сложно держать в голове весь продукт целиком. Большинство сбоев — это не «плохой код». Это разрывы между тем, что вы имели в виду, тем, что ассистент предположил, и тем, что в итоге выпустили.
Первая трещина — отсутствие требований. Вы просите «простой поток регистрации», но никто не фиксирует крайние случаи вроде сброса пароля, «электронная почта уже используется» или что происходит, если пользователь закрыл вкладку на середине. Ассистент заполняет пробелы, и эти догадки становятся вашим продуктом.
Вторая трещина — непоследовательные решения. Одно сообщение выбирает модель данных, следующее добавляет «быструю» оптимизацию, а третье меняет имена или правила валидации. Каждое решение само по себе может быть разумным. Вместе они создают хрупкое приложение, которое ломается при добавлении следующей фичи.
Третья трещина — отсутствие доказательств. Без базовых тестов и ясных проверок приёмки вы находите проблемы только после проверки вручную. Тогда «у меня работает» превращается в поздние ночи, хотфиксы и случайные регрессии.
Простое исправление — использовать повторяемые персоны: Planner, который делает задачу осязаемой; Architect, который задаёт форму; Implementer, который строит маленькими шагами; Tester, который пытается сломать; и Reviewer, который ловит последние 10%, вызывающие 90% боли. Это не тяжёлая бюрократия. Это повторяемый способ сохранить решения согласованными.
Подход работает для соло-фаундеров, маленьких команд и нетехнических создателей, использующих чат-инструменты вроде Koder.ai. Вы всё ещё можете двигаться быстро, но перестаёте полагаться на удачу.
Роли не гарантируют качество сами по себе. Всё ещё нужны чёткие входные данные (как выглядит успех, ограничения и приоритеты) и вам всё ещё нужно читать результаты. Думайте о ролях как о защитных поручнях: они уменьшают предотвращаемые ошибки, но вы всё ещё за рулём.
Основная идея: разделяйте ответственности и аккуратно передавайте работу
Надёжность падает, когда один чат пытается сделать всё сразу: решить, что строить, спроектировать, закодить, протестировать и оценить. Смешение этих задач упрощает пропуск крайних случаев, изменение требований в процессе и «пофиксить баг» путём добавления ещё больше неопределённости.
Практический способ предотвратить это — держать роли узкими и последовательными. Каждая роль отвечает за одну задачу и не «помогает» вне своей зоны. Это делает решения отслеживаемыми и ошибки проще обнаружимыми.
Используйте такую последовательность почти для любой фичи:
- Planner: определяет цель, пользователей, критерии приёмки и что вне области
- Architect: предлагает простейшую архитектуру, которая поддержит цель
- Implementer: строит ровно то, что запланировано, маленькими шагами
- Tester: пытается сломать и чётко докладывает об ошибках
- Reviewer: проверяет последние мелочи (именование, базовые правила безопасности, UX-пробелы, рискованные упрощения)
Чистые передачи важны не меньше самих ролей. Каждая передача должна включать: что решено, какие допущения сделаны и что значит «готово». Если вы используете Koder.ai, рассматривайте каждую роль как отдельный обмен в чате или снимок, чтобы при необходимости откатиться, когда решение оказалось неверным.
Возвращайтесь по делу, а не по случайности. Если тесты падают, вернитесь к Implementer с минимальным отчётом об ошибке. Если дизайн не поддерживает новое требование, вернитесь к Architect. Если требование неясно или постоянно меняется — приостановитесь и вернитесь к Planner.
Сохраняйте те же роли и порядок для разных фич. Через несколько прогонов у вас появится мышечная память: вы задаёте лучшие вопросы на старте и перестаёте переделывать работу в конце.
Персона 1: Planner (сделайте работу ясной до начала разработки)
Задача Planner — превратить смутную идею в то, что можно построить и проверить. Это не «писать документацию». Это согласовать, что значит «готово», до появления первого экрана или API.
Хороший вывод Planner остаётся небольшим и проверяемым: чёткое описание проблемы, несколько пользовательских историй, простые критерии приёмки и короткий список крайних случаев. Также указывайте, что вы пока не делаете, чтобы Implementer не построил ненужную большую фичу.
Шаблон промпта Planner (маленький, приоритизированный план)
Используйте это, когда у вас есть идея фичи и нужен компактный план, которому смогут следовать остальные роли.
You are the Planner. Turn the feature idea below into a buildable plan.
Feature idea:
<PASTE IDEA>
Context:
- App type:
- Target users:
- Current behavior (if any):
- Constraints (time, data, compliance, devices):
Output (keep it short):
1) Problem statement (1-2 sentences)
2) Assumptions (3-6 bullets)
3) Questions to confirm (max 6, prioritized)
4) User stories (2-5)
5) Acceptance criteria (5-10, testable, specific)
6) Edge cases & failure modes (3-8)
7) Out of scope (3-6 bullets)
8) Small milestone plan (2-4 steps, highest value first)
Передача от Planner к Architect (структурировано и кратко)
Отправьте это сообщение как есть (заполненным), чтобы сократить количество уточнений.
PLANNER HANDOFF
Feature: <name>
Problem: <1-2 sentences>
Users: <who>
Must-haves (AC): <5-10 acceptance criteria>
Key edge cases: <3-6>
Out of scope: <3-6>
Open questions (need Architect input): <1-4>
Constraints: <tech, data, privacy, deadlines>
Success signal: <how we’ll know it worked>
Если вы сделаете только одно дело как Planner — сделайте критерии приёмки измеримыми. Например: «Пользователь может сбросить пароль и получает письмо в течение 60 секунд» лучше, чем «Сброс пароля работает.»
Персона 2: Architect (выберите форму, которую приложение сможет реально поддерживать)
Architect превращает хороший план в реализуемую форму. Задача не в изобретении красивых паттернов. Она в выборе самой простой структуры, которая будет работать, когда реальные пользователи кликают, данные растут, и появляются ошибки.
Здесь надёжность становится ощутимой: чёткие границы, ясные данные и очевидные пути отказа.
Практичный вывод Architect обычно включает:
- Экраны (React или Flutter) или API-эндпоинты (Go)
- Небольшая модель данных (таблицы PostgreSQL и ключевые поля)
- Один-два основных потока (хороший путь плюс варианты отказа)
- Нефункциональные базовые требования, которые важны сейчас (аутентификация, приватность, производительность, логирование)
- Компромиссы (что вы пока не строите)
Держите описание конкретным. Вместо «система уведомлений» скажите «POST /api/alerts, таблица alerts(user_id, type, status), показывать количество непрочитанных в хедере». Вместо «безопасно» скажите «JWT-сессия, проверки ролей на админ-эндоинтах, защита PII-полей».
Шаблон промпта: передача Architect (форсирует компромиссы)
Используйте это, когда Planner передаёт работу Architect, или когда нужно перезапустить фичу, которая стала запутанной.
You are the Architect.
Goal: design the simplest buildable structure for this feature.
Context:
- App type: [web/mobile/both]
- Stack: React UI, Go API, PostgreSQL DB (Flutter screens if mobile)
- Existing constraints: [auth method, existing tables, deadlines]
Input (from Planner):
- User story:
- Acceptance criteria:
- Out of scope:
Deliverables (keep it short and specific):
1) UI map: list screens/components with 1-line purpose each.
2) API map: list endpoints with method, path, request/response fields.
3) Data model: tables + key columns + relationships.
4) Key flows: happy path + 2 failure cases and how UI should respond.
5) Non-functional needs: security, performance, audit/logging (only what matters now).
6) Tradeoffs: 3 decisions you made (and what you avoided) to prevent over-design.
Rules:
- Prefer the smallest option that meets acceptance criteria.
- If something is unclear, ask up to 3 questions, otherwise make a reasonable assumption and write it down.
Если вы используете Koder.ai, такая передача ускоряет реализацию, потому что Implementer идёт по ясной карте, а не догадывается о форме в процессе работы.
Персона 3: Implementer (строить маленькими шагами, держать область узкой)
Implementer превращает ясный план в рабочий код, не меняя план. Здесь выигрывается или теряется большая часть надёжности. Цель проста: реализовать ровно то, что согласовано, тонкими шагами, которые можно отменить.
Относитесь к каждому изменению так, будто его придётся откатить. Работайте тонкими срезами и останавливайтесь, когда критерии приёмки выполнены. Если что-то неясно — спрашивайте. Догадки — это то, как маленькие фичи превращаются в неожиданные переработки.
Хороший Implementer оставляет короткий след доказательств: порядок сборки, что изменено, что осталось без изменений (чтобы избежать скрытого роста области) и как проверять.
Вот шаблон промпта, который можно вставить при передаче работы Implementer:
You are the Implementer.
Context:
- Feature: <name>
- Current behavior: <what happens today>
- Desired behavior: <what should happen>
- Acceptance criteria: <bullets>
- Constraints: <tech choices, performance, security, no schema change, etc.>
Before writing code:
1) Ask up to 5 questions if anything is unclear.
2) Propose a step-by-step build plan (max 6 steps). Each step must be reversible.
3) For each step, list the exact files/modules you expect to touch.
Then implement:
- Execute steps one by one.
- After each step, summarize what changed and how to verify.
- Do not add extras. If you notice a better idea, stop and ask first.
Пример: если Planner попросил «Добавить поток сброса пароля по email», Implementer не должен одновременно переделывать экран логина. Постройте endpoint запроса email, затем обработку токена, затем UI, с короткой заметкой проверки после каждого шага. Если платформа поддерживает снимки и откат (Koder.ai поддерживает), маленькие шаги становятся безопаснее.
Персона 4: Tester (докажите, что это работает, и покажите, как оно ломается)
Задача Tester — сломать фичу до того, как это сделают пользователи. Они не доверяют только счастливому пути. Они ищут неясные состояния, отсутствующую валидацию и крайние случаи, которые проявляются в первый же день.
Хороший вывод Tester пригоден для использования кем-то другим: матрица тестов, привязанная к критериям приёмки, короткий ручной сценарий и баг-репорты с точными шагами (ожидаемое vs фактическое).
Что проверять (UI, API и данные)
Стремитесь к покрытию, а не к объёму. Сфокусируйтесь на местах, где ошибки дороги: валидация, права доступа и состояния ошибок.
- UI: пустые состояния, сообщения об ошибках, состояния загрузки, отключённые кнопки, навигация с клавиатуры
- API: отсутствующие поля, неверные типы, ошибки авторизации, поведение при лимитах/таймаутах
- Валидация данных: дубликаты, максимальная длина, неверные форматы, проверки на сервере (не только на UI)
- Права: что может делать обычный пользователь vs админ
- Регрессии: одна-две проверки «не сломали ли мы существующее поведение?»
Пример: если добавили «Создать счёт», попробуйте отрицательную сумму, заметку в 10 000 символов, отсутствующего клиента и двойной клик отправки.
Шаблон промпта: сгенерировать матрицу тестов из критериев приёмки
Используйте это при передаче от Implementer к Tester. Вставьте критерии приёмки и релевантные UI/API заметки.
ROLE: Tester
GOAL: Produce a test matrix tied to acceptance criteria, including negative tests.
CONTEXT:
- Feature: <name>
- Acceptance criteria:
1) <AC1>
2) <AC2>
- Surfaces: UI screens: <list>; API endpoints: <list>; DB changes: <notes>
OUTPUT FORMAT:
1) Test matrix table with columns: AC, Test case, Steps, Expected result, Notes
2) Negative tests (at least 5) that try to break validation and permissions
3) Manual test script (10 minutes max) for a non-technical person
4) Bug ticket template entries for any failures you predict (Title, Steps, Expected, Actual, Severity)
CONSTRAINTS:
- Keep steps precise and reproducible.
- Include at least one test for loading/error states.
Персона 5: Reviewer (поймайте последние 10%, которые создают 90% боли)
Reviewer — финальная проверка качества. Не чтобы переписывать всё, а чтобы заметить мелкие недочёты, которые потом вырастут в долгие баги: запутанные имена, недостающие крайние случаи, слабые сообщения об ошибках и рискованные упрощения, которые усложнят следующую правку.
Хорошее ревью даёт чёткие выходы: что проверено, что нужно изменить, что рисковано, но допустимо, и какое решение принято (чтобы не обсуждать это заново через неделю).
На что смотрит Reviewer
Держите проверку короткой и повторяемой. Сфокусируйтесь на вещах, которые чаще всего ломают надёжность:
- Последовательность: именование, паттерны, структура папок и поведение UI соответствуют существующему приложению
- Базовая безопасность: валидация ввода, проверки auth, отсутствие PII в логах
- Ошибки: понятные сообщения для пользователя; серверные ошибки — диагностируемы; нет тихих отказов
- Поддерживаемость: небольшие функции, очевидный смысл, отсутствие дублирования без причины
- Будущие изменения: что будет трудно менять и как снизить эту цену сейчас
Структурированный промпт для ревью (approve или changes requested)
Используйте это, когда Implementer сообщает, что фича готова:
You are the Reviewer. Do a final review for correctness, clarity, and maintainability.
Context
- Feature goal:
- User flows:
- Key files changed:
- Data model/migrations:
Review checklist
1) Correctness: does it meet the goal and handle edge cases?
2) Security basics: auth, validation, safe logging.
3) Errors: clear messages, consistent status codes.
4) Consistency: naming, patterns, UI text.
5) Maintainability: complexity, duplication, TODOs.
Output format
- Findings (bulleted): include file/function references and severity (high/medium/low)
- Requested changes (must-fix before merge)
- Risk notes (acceptable with reason)
- Decision log updates (what we decided and why)
Finish with exactly one:
APPROVE
CHANGES REQUESTED
Если Reviewer просит изменения, они должны быть маленькими и конкретными. Цель — меньше сюрпризов в продакшне, а не второй цикл разработки.
Шаблоны передач, которые предотвращают переделки
Большая часть переделок происходит потому, что следующий человек начинает с нечёткого задания, отсутствующих входных данных или скрытых ограничений. Простой шаблон передачи исправляет это, делая каждую передачу предсказуемой.
Используйте один общий заголовок каждый раз, даже для маленьких задач:
- Контекст + Цель: что вы строите и зачем, в одном абзаце.
- Входы: экраны, заметки по API, поля данных, пример записи, связанные области кода.
- Ограничения: технологические решения, дедлайны, производительность, безопасность, поведение, которое нужно сохранить.
- Определение готово: измеримые проверки (что должно пройти, что должно существовать).
- Допущения / Открытые вопросы / Принятые решения: что вы предположили, что неизвестно и что зафиксировали.
Вот пример одной передачи (Architect -> Implementer):
ROLE HANDOFF: Architect -> Implementer
Context: Add “Invite team member” to the admin area.
Goal: Admin can send an invite email; invited user can accept and set a password.
Inputs: Existing Users table; auth uses JWT; email provider already configured.
Constraints: Go backend + PostgreSQL; React UI; audit log required; no breaking auth changes.
Definition of Done:
- UI: invite modal + success state
- API: POST /invites, POST /invites/accept
- DB: invites table with expiry; audit event on create/accept
- Tests: happy path + expired invite + reused token
Assumptions: Email templates can reuse “reset password” styling.
Open questions: Should invites be single-use per email?
Decisions made: 72h expiry; tokens stored hashed.
Если хотите, чтобы это прижилось — храните шаблоны в доступном месте, откуда все могут копировать. Если вы используете Koder.ai, держите эти промпты в Planning Mode и делайте снимок перед реализацией — откат станет безболезненным, если область изменится.
Пошаговый рабочий поток, который можно применять для каждой фичи
Надёжность улучшается, когда вы относитесь к каждой фиче как к мини-релизу, с чистыми передачами между ролями. Начните с одной пользовательской истории, а не кучи идей. Напишите её простым языком, затем добавьте критерии приёмки, которые кто-то может проверить без догадок.
Проектируйте только минимальную форму, нужную для этой истории. Цель не идеальная система. Цель — простой план, который не рухнет при добавлении следующей фичи.
Практичный поток выглядит так:
- Planner: подтвердить историю пользователя, крайние случаи и критерии приёмки (успех, отказ и «что если пользователь сделает X»).
- Architect: предложить минимальную модель данных и API (таблицы/поля, эндпоинты, правила auth), плюс короткую заметку о том, что вы не строите.
- Implementer: реализовать один тонкий сквозной срез (UI -> API -> DB), который соответствует критериям приёмки, даже если UI простой.
- Tester: пройти повторяемый тестовый сценарий, зафиксировать шаги для воспроизведения багов и отметить непонятное поведение.
- Reviewer: финальная проверка базовой безопасности и продуктовой полировки, затем зафиксировать решения.
Держите вывод каждого шага маленьким и явным. Обычно одно сообщение передачи от роли достаточно: входы, принятые решения и что нужно дальше.
Завершите одной абзацем заметки об изменениях: что добавлено, что удалено и за чем следить в следующем релизе. Эта «память» предотвращает возвращение тех же аргументов и багов позже.
Реалистичный пример: одна фича от идеи до проверенного релиза
Фича: простой экран CRM, где пользователи могут добавлять контакты, назначать теги (например, «Lead» или «Vendor») и искать по имени или тегу. Ограничение: 90 минут, и нужно переиспользовать существующую таблицу contacts (без ломки миграций). На мобильном нужен один экран «Добавить контакт», который умещается на одной странице.
Вот как выглядит передача при использовании этой цепочки персон. Каждая роль создаёт небольшой артефакт, которому следующий может доверять.
Planner output (definition + acceptance)
- Goal: Add contacts with tags and fast search.
- Must: Create, edit, list contacts; add/remove tags.
- Search: matches name OR any tag; results update in under 300ms.
- Constraint: keep existing contacts table; tags can be new table.
- Done when: 5 test cases pass; mobile screen has no scroll on common devices.
Architect output (shape + data)
- Tables: contacts (existing), tags (id, name), contact_tags (contact_id, tag_id).
- API: POST /contacts, PATCH /contacts/:id, GET /contacts?query=.
- Search: SQL ILIKE on contact name + join on tags.
- UI: Contact list with search bar; contact form with tag picker.
- Risk: duplicate tags (“lead” vs “Lead”) - enforce lowercase unique.
Implementer output (small steps)
- Step 1: Add tags + join table migrations.
- Step 2: Update backend handlers and query.
- Step 3: Build React UI list + form; wire to API.
- Step 4: Add basic validation (name required, tag length).
- Step 5: Add loading/error states; keep UI responsive.
Tester output (proof + failure)
- Case: search “lea” returns contacts tagged “lead”. FAIL: returns none.
- Case: adding tag “Lead” then “lead” should not create two tags. PASS.
- Case: empty name rejected. PASS.
- Bug note: backend search only checks contact name, not tags.
Loop-back (Planner update)
- Update acceptance: search must match tags via join; include a test for it.
- Add edge case: searching by tag should return even if name doesn’t match.
Reviewer output (last 10%)
- Check: query uses indexes; add index on tags.name and contact_tags.tag_id.
- Check: error messages are clear; avoid raw SQL errors.
- Check: mobile form spacing and tap targets.
- Confirm: snapshots/rollback point created before release.
Один неудачный тест вызывает чистый цикл доработки: план становится яснее, Implementer меняет один запрос, а Reviewer проверяет производительность и полировку перед релизом.
Частые ловушки (и простые исправления)
Самый быстрый способ потерять доверие к чат-построенному софту — позволить всем заниматься всем одновременно. Ясные роли и аккуратные передачи делают работу предсказуемой, даже если вы двигаетесь быстро.
- Персоны сливаются (начала строят до стабилизации требований). Исправление: зафиксируйте вывод Planner до любых изменений кода. Шаблон: «Implementer: не писать код, пока у Planner не будут Scope, Assumptions и Acceptance Criteria. Если их нет — задайте максимум 3 вопроса.»
- Нет определения готовности, поэтому работа никогда не заканчивается. Исправление: каждая передача должна включать строку Done. Пример: «Done означает: критерии приёмки выполнены, нет новых TODO, изменения задокументированы в 5 пунктах.»
- Tester проверяет только счастливый путь. Исправление: требуйте как минимум один некорректный ввод и один крайний случай каждый раз. Шаблон: «Tester: предоставить (1) счастливый путь, (2) один некорректный ввод, (3) один крайний случай. Если не можете прогнать тест, опишите точные шаги и ожидаемый результат.»
- Reviewer спорит о стиле вместо продуктовых рисков. Исправление: заставьте Reviewer фокусироваться на рисках в первую очередь. Шаблон: «Reviewer: перечислите топ-3 риска (безопасность, потеря данных, сломанный UX, производительность). Стиль упоминайте только если он мешает читабельности или вызывает баги.»
- Передачи теряют контекст, и следующий человек догадывается. Исправление: требуйте короткий Handoff Block каждый раз: «Goal, What changed, How to verify, Known gaps.» Держите его в 8 строк.
Небольшая привычка, которая помогает: когда Implementer завершил работу, вставьте ещё раз критерии приёмки и отметьте их по пунктам.
Быстрый чеклист для надёжных релизов, созданных через чат
Запустите этот чеклист до разработки, перед мёржом и сразу после релиза.
Перед началом (до кода)
- Напишите цель в одном предложении и перечислите 2–3 проверки приёмки (как выглядит «готово»).
- Назовите, что вне области (чтобы Implementer не догадывался).
- Перечислите точные поля данных и правила (типы, обязательные/опциональные, значения по умолчанию).
- Отметьте основные случаи ошибок (плохой ввод, отсутствующие права, пустые состояния, таймауты).
- Решите, как быстро это проверить (экран, ответ API, строка лога).
Маленький пример: «Добавить приглашение по email.» Включите поля (email, role), что происходит если email некорректен и можно ли переотправлять приглашения.
Перед мёржом и после релиза (уменьшаем страх изменений)
- Перед мёржом: подтвердите, что тесты прогнали (или хотя бы короткий ручной скрипт) и зафиксируйте, что проверяли.
- Перед мёржом: явно покрыты 2–3 крайних случая, а не «должно работать».
- Перед мёржом: опишите план отката и какое изменение его инициирует.
- После релиза: наблюдайте 1–2 сигнала (ошибки, медленные страницы, проваленные джобы) в первый час/день.
- После релиза: соберите отзывы пользователей и запишите известные ограничения, чтобы саппорт не догадывался.
Если платформа поддерживает это (Koder.ai поддерживает), сделайте снимок перед рискованными правками. Знание того, что можно откатиться, упрощает выпуск небольших безопасных изменений.
Следующие шаги: сделайте это своим рабочим процессом по умолчанию
Выберите одну небольшую фичу и прогоните полную цепочку персон один раз. Выберите что-то реальное, но ограниченное: «добавить сброс пароля», «создать страницу только для админов» или «экспорт счётов в CSV». Цель — увидеть, что меняется, когда вы заставляете чистые передачи от Planner до Reviewer.
Если вы используете Koder.ai (koder.ai), Planning Mode — удобное место, чтобы зафиксировать область и критерии приёмки до разработки. Снимки и откат дают безопасный выход, если решение оказалось неверным, не превращая проект в бесконечные дебаты.
Чтобы рабочий процесс стал повторяемым, сохраните промпты персон как шаблоны, которыми команда сможет пользоваться. Держите их короткими, унифицируйте форматы вывода — и вы будете тратить меньше времени на постоянные объяснения.
FAQ
Почему приложения, созданные в чате, часто ломаются позже?
В чатах всё происходит быстро, но в одном разговоре легко потерять требования, допущения и принятые ранее решения. Разделение ролей помогает не упустить планирование функции, дизайн, разработку, тестирование и финальную проверку.
Какие роли нужны для функции, созданной в чате?
Используйте пять ролей: Планировщик, Архитектор, Разработчик, Тестировщик и Ревьюер. Планировщик определяет работу, Архитектор выбирает простое решение, Разработчик его реализует, Тестировщик ищет сбои, а Ревьюер проверяет финальные детали.
Что должен подготовить Планировщик до начала разработки?
Начните с Планировщика. Подготовьте краткое описание проблемы, пользовательские истории, измеримые критерии приемки, пограничные случаи, ограничения и то, что пока останется за рамками.
Как написать полезные критерии приемки?
Критерии приемки описывают наблюдаемый результат. Например, укажите, что пользователь получает письмо для сброса пароля в течение 60 секунд, вместо фразы о том, что сброс пароля работает.
Что должен решить Архитектор?
Сделайте проектирование конкретным и небольшим. Перечислите экраны, конечные точки API, поля данных, основной путь пользователя, ответы при сбоях и правила безопасности или конфиденциальности, важные для этой функции.
Как должен работать Разработчик?
Реализуйте по одному небольшому фрагменту за раз: сначала API, затем работу с токенами, потом экран. После каждого изменения записывайте, что изменилось и как это можно проверить; остановитесь, когда согласованные критерии будут выполнены.
Что должен попытаться сломать Тестировщик?
Проверяйте не только обычный сценарий. Попробуйте пропущенные поля, неверные форматы, дублирующиеся записи, неправильные права доступа, медленные ответы, двойные клики, а также понятные состояния загрузки и ошибок.
Что должно входить в каждую передачу работы?
Укажите цель, входные данные, ограничения, определение готовности, допущения, открытые вопросы и уже принятые решения. Так следующая роль получит достаточно контекста, чтобы действовать без выдумывания недостающих деталей.
Что делать, если тестирование обнаружило проблему?
Отправьте Разработчику краткий баг-репорт с точными шагами, ожидаемым поведением, фактическим поведением и серьезностью проблемы. Если дизайн функции не позволяет выполнить требование, вернитесь к Архитектору; если неясно само требование, вернитесь к Планировщику.
Что Ревьюер проверяет перед выпуском?
Перед выпуском Ревьюер проверяет, соответствует ли функция плану, правильно ли проверяет входные данные и права доступа, не попадают ли в логи чувствительные данные, понятно ли объясняются ошибки и нет ли запутывающих обходных путей. В ревью стоит запрашивать только конкретные исправления, которые снижают реальный риск.