t27.aiEnglish

Спецификация вашей идеи

Вы узнаете

Как сказать идею как один вход, один выход и один тест, и почему идея без теста не готова к передаче агенту.

Агент может построить только то, что вы умеете сказать. Самое малое, что можно сказать об идее, состоит из трёх частей: один вход, один выход и один тест, который говорит, что работа закончена. Возьмём выдуманный дневник чтения: вход это одно название книги, выход это сколько книг записано, а тест в том, что после одного названия счёт равен 1. Спецификация этого урока держит эти три части числами и проверяет их 4 тестами. Готово значит по одному каждого: 1 x 1 x 1 = 1. Поставьте число тестов 0, и тесты, которые его называют, покраснеют, потому что идея без теста не готова к передаче. Ваша идея может быть такой же маленькой.

Попробуйте

В спецификации поставьте IDEA_TESTS равным 0 и прочитайте, какие 2 теста падают; затем верните как было. Потом запишите свою идею как один вход, один выход и один тест, по одному предложению на каждый.

Открыть интерактивный урок →

A spec for your own idea: one input, one output, one test ↗

The three parts an idea needs before you hand it to an agent, filled in for a made-up reading log. Lesson 25 of the Vibecoding course.

specs/vibecoding/own_spec.t27

// SPDX-License-Identifier: Apache-2.0
; Vibecoding, lesson 25: A spec for your own idea.
; An idea is ready to hand to an agent when you can name its one input, its one output and the
; one test that tells you it is done. This spec is that sentence as a program, for a made-up
; idea: a reading log that takes one book title and answers with how many books are logged.
; Change a number below and see which test goes red. Ready is one of each: 1 x 1 x 1 = 1.
; phi^2 + 1/phi^2 = 3 | TRINITY

module vibecoding_own_spec;

; The idea, in numbers a beginner can count.
pub const IDEA_INPUTS : u8 = 1;
pub const IDEA_OUTPUTS : u8 = 1;
pub const IDEA_TESTS : u8 = 1;

test the_reading_log_has_one_input {
    assert IDEA_INPUTS == 1;
}

test the_reading_log_has_one_output {
    assert IDEA_OUTPUTS == 1;
}

test the_reading_log_has_a_test_that_says_done {
    assert IDEA_TESTS >= 1;
}

test the_idea_is_ready_to_hand_over {
    assert IDEA_INPUTS * IDEA_OUTPUTS * IDEA_TESTS == 1;
}

Открыть спеку урока в плеере ↗

Все уроки