Четыре фазы: идея, сборка, проверка, выпуск
Вы узнаете
Почему работа проходит четыре фазы по порядку и почему упавший тест возвращает её к сборке, а не вперёд к выпуску.
У любой работы с агентом одни и те же четыре фазы. Идея: вы одним предложением говорите, чего хотите. Сборка: агент пишет один небольшой кусок. Проверка: вы запускаете его, и тест отвечает да или нет. Выпуск: вы сохраняете результат и кладёте его туда, где им пользуются. Фазы идут не по прямой. Когда тест говорит нет, работа возвращается к сборке, а не идёт вперёд к выпуску, и круг начинается снова. В спеке этого урока две таблицы: куда переходит каждая фаза, когда тесты прошли, и куда, когда они упали. Плеер запускает её 4 теста. Измените одну запись таблицы падения так, чтобы упавший тест вёл к выпуску, и ровно один тест покраснеет.
Попробуйте
Откройте виджет и проведите идею до выпуска с одним упавшим тестом по пути; посчитайте шаги. Затем в спеке найдите запись таблицы падения, которая возвращает упавший тест к сборке, замените её на 3 и прочитайте, какой тест покраснел.
Walk one idea through four phases. At the test phase press pass or fail: a pass ships it, a fail sends it back to build. Nothing ships past a red test.
specs/vibecoding/four_phases.t27
// SPDX-License-Identifier: Apache-2.0
; specs/vibecoding/four_phases.t27 -- vibecoding lesson: the four phases, idea, build, test, ship
; One idea: work moves through four phases in order, and a failed test sends it back to build,
; never forward to ship. A phase is a number: 0 idea, 1 build, 2 test, 3 ship. The two tables
; below say where each phase goes next, one when the tests pass and one when they fail.
; Run it in the player, then change FAIL_NEXT[2] from 1 to 3 (a failed test goes on to ship) and
; read which test goes red.
; ASCII only, English only.
; phi^2 + 1/phi^2 = 3 | TRINITY
module vibecoding_four_phases;
pub const PHASE_IDEA : u8 = 0;
pub const PHASE_BUILD : u8 = 1;
pub const PHASE_TEST : u8 = 2;
pub const PHASE_SHIP : u8 = 3;
pub const PHASE_COUNT : u8 = 4;
; Next phase, indexed by the phase you are in.
pub const PASS_NEXT : [4]u8 = [1, 2, 3, 3];
pub const FAIL_NEXT : [4]u8 = [1, 2, 1, 3];
test the_phases_run_in_order {
assert PASS_NEXT[0] == PHASE_BUILD;
assert PASS_NEXT[1] == PHASE_TEST;
assert PASS_NEXT[2] == PHASE_SHIP;
}
test a_failed_test_goes_back_to_build {
assert FAIL_NEXT[2] == PHASE_BUILD;
assert FAIL_NEXT[2] != PHASE_SHIP;
}
test shipped_stays_shipped {
assert PASS_NEXT[3] == PHASE_SHIP;
assert FAIL_NEXT[3] == PHASE_SHIP;
}
test three_steps_from_idea_to_ship {
assert PASS_NEXT[PASS_NEXT[PASS_NEXT[0]]] == PHASE_SHIP;
assert PHASE_COUNT == PHASE_SHIP + 1;
}
Все уроки
Модуль 1 · Что такое вайбкодинг
Вы описываете, агент пишет, вы запускаете и проверяете. Что такое программа, и пять мифов, проверенных тестом.
Модуль 2 · Ваш рабочий стол
Редактор с агентом рядом, десять команд терминала и чтение сообщения об ошибке.
Модуль 3 · Точки сохранения в git
Коммит это точка сохранения, ветка это безопасная проба, а ключ это пара, одна половина которой остаётся приватной.
Модуль 4 · Промптинг
Части промпта, пример вместо прилагательного и один маленький шаг за раз.
Модуль 5 · Рабочий цикл
Четыре фазы от идеи до выпуска, цикл из четырёх шагов и что делать, когда вы застряли.
Модуль 6 · Тест как судья
Тест говорит да или нет, подложенная ошибка показывает, что тест работает, а дифф читают до того, как принять.
Модуль 7 · Из чего состоит агент
Чем агент отвечает, что он умеет делать с инструментами и что хранит между сообщениями.
Модуль 8 · Начальный бот
Бот это цикл сообщений, бот строится из спеки, а секрет остаётся вне репозитория и промпта.
Модуль 9 · Ваш собственный проект
Спека для вашей идеи, одна величина, измеренная после запуска, и честный план на следующий месяц.