Редактор с агентом рядом
Вы узнаете
Как работать с агентом в редакторе: вы описываете изменение, он правит, а что останется, решаете вы.
Редактор - это место, где вы читаете и меняете файлы. Агент сидит рядом: вы описываете изменение словами, а он правит файлы за вас. Он правит быстро, но принимать или отклонять каждое изменение - ваше дело. Правило в спеке - две проверки: можете ли вы прочитать изменение целиком и проходят ли по-прежнему тесты? Изменение в 3 строки, которое проходит, принимается. Изменение в 12 строк, которое не проходит, возвращается. Переписывание на 90 строк возвращается, даже если проходит, потому что никто его не прочитал. Спека ставит предел чтения в 20 строк; выберите свой и держитесь его.
Попробуйте
В спеке найдите READ_LIMIT и три предложенных изменения. Поставьте последнему KEEP значение 1 и запустите плеер: упадёт тест, где названо изменение, слишком длинное для чтения. Затем верните 0.
Three changes an agent might propose in your editor, and the rule that decides each one: can you read all of it, and do the tests pass. Lesson 4 of the vibecoding course.
specs/vibecoding/editor_agent.t27
// SPDX-License-Identifier: Apache-2.0
; specs/vibecoding/editor_agent.t27 -- lesson 4 of the vibecoding course: an editor with an agent beside it
; The agent proposes a change to your file; you read it and decide. This spec writes that decision
; as a rule: keep a change only if you can read all of it and the tests still pass.
; Three changes the agent might propose, as three columns of numbers.
; ASCII only (L3), English only (LANG-EN).
; phi^2 + 1/phi^2 = 3 | TRINITY
module vc_editor_agent;
; How many changed lines a person can honestly read in one go.
pub const READ_LIMIT : u8 = 20;
; Change 0 is a rename, change 1 adds a button, change 2 rewrites the whole file.
pub const CHANGED_LINES : [3]u8 = [3, 12, 90];
; 1 = the tests passed after the change, 0 = they failed.
pub const TESTS_PASS : [3]u8 = [1, 0, 1];
; The decision the rule must reach: 1 = keep, 0 = send it back.
pub const KEEP : [3]u8 = [1, 0, 0];
test a_small_change_that_passes_is_kept {
assert CHANGED_LINES[0] <= READ_LIMIT;
assert TESTS_PASS[0] == 1;
assert KEEP[0] == 1;
}
test a_change_that_fails_is_sent_back_even_when_short {
assert CHANGED_LINES[1] <= READ_LIMIT;
assert TESTS_PASS[1] == 0;
assert KEEP[1] == 0;
}
test a_change_too_long_to_read_is_sent_back_even_when_it_passes {
assert CHANGED_LINES[2] > READ_LIMIT;
assert TESTS_PASS[2] == 1;
assert KEEP[2] == 0;
}
Все уроки
Модуль 1 · Что такое вайбкодинг
Вы описываете, агент пишет, вы запускаете и проверяете. Что такое программа, и пять мифов, проверенных тестом.
Модуль 2 · Ваш рабочий стол
Редактор с агентом рядом, десять команд терминала и чтение сообщения об ошибке.
Модуль 3 · Точки сохранения в git
Коммит это точка сохранения, ветка это безопасная проба, а ключ это пара, одна половина которой остаётся приватной.
Модуль 4 · Промптинг
Части промпта, пример вместо прилагательного и один маленький шаг за раз.
Модуль 5 · Рабочий цикл
Четыре фазы от идеи до выпуска, цикл из четырёх шагов и что делать, когда вы застряли.
Модуль 6 · Тест как судья
Тест говорит да или нет, подложенная ошибка показывает, что тест работает, а дифф читают до того, как принять.
Модуль 7 · Из чего состоит агент
Чем агент отвечает, что он умеет делать с инструментами и что хранит между сообщениями.
Модуль 8 · Начальный бот
Бот это цикл сообщений, бот строится из спеки, а секрет остаётся вне репозитория и промпта.
Модуль 9 · Ваш собственный проект
Спека для вашей идеи, одна величина, измеренная после запуска, и честный план на следующий месяц.