JavaRush /Курси /Claude code /Submission package і repro audit

Submission package і repro audit

Claude code
Рівень 32 , Лекція 0
Відкрита

1. Захист вирішує пакет, а не промова

Перед захистом легко скотитися до шкільної логіки: головне — добре виступити. В інженерії жорсткіше: спочатку дивляться на те, що можна перевірити вручну. Рецензент відкриває репозиторій, упирається в порожній README, биту команду запуску і файл final_final_v2.md — і довіра просідає ще до вашого першого слова.

Submission package — це не один репозиторій і не одне посилання на демо. Це набір артефактів, які разом відповідають: що ви зробили, як це запустити, що саме перевірили і де межі проєкту. Зручно думати про нього як про папку здачі інженерної роботи: сам об’єкт плюс паспорт, інструкція, журнал робіт і позначки про те, що ще не доведено до production.

Усе це особливо важливо в AI-assisted розробці. Коли в роботі брав участь Claude Code, рецензенту потрібна traceability: де постановка задачі, де evidence, де запуск перевірок, де ваше рішення, а де допомога інструмента. Package збирають з уже наявних артефактів, а не вигадують заднім числом.

Нижче корисно тримати в голові дуже просту схему:

flowchart TD
    A[Репозиторій] --> B[README і setup]
    B --> C[SPEC.md]
    C --> D[EVIDENCE.md]
    D --> E[Тести і checks]
    E --> F[Demo / screenshots / video]
    F --> G[Відомі обмеження]
    G --> H[Довіра рецензента]

Якщо хоча б одна ланка випадає, уся ланка починає хитатися. Проєкт може бути непоганим, але враження буде приблизно як від кухні без інструкції зі збирання: деталі хороші, а де дверцята, де стінка — здогадайтеся самі.

2. З чого зібрано сильний package

Найчастіша помилка на цьому етапі — думати, що package треба дописувати з нуля. Насправді майже все основне у вас уже є з попередніх модулів. Завдання — зібрати це в несуперечливу структуру, щоб рецензент за кілька хвилин зрозумів, куди дивитися і в якому порядку.

Ось практичний орієнтир для структури:

my-capstone/
  README.md
  SPEC.md
  EVIDENCE.md
  DEMO.md
  TEST_PLAN.md
  .env.example
  ARCHITECTURE.md
  MIGRATION.md
  ROLLBACK_PLAN.md

Частина цих файлів обов’язкова майже для будь-якого capstone, частина залежить від формату проєкту. Зручно бачити це в таблиці.

Артефакт Навіщо потрібен Коли обов’язковий
README.md
пояснює, що це за проєкт, як його запустити і як пройти core flow майже завжди
SPEC.md
фіксує проблему, scope, non-goals, критерії приймання завжди
EVIDENCE.md
показує хід роботи, рішення, перевірки, роль Claude Code завжди
DEMO.md
або demo-секція в
README
дає сценарій показу і кроки відтворення core flow завжди
TEST_PLAN.md
або розділ Перевірка
перелічує команди та очікувані checks завжди
.env.example
показує, які змінні середовища потрібні без витоку секретів якщо проєкт залежить від env
ARCHITECTURE.md
допомагає швидко зрозуміти влаштування проєкту часто корисний для Middle/Senior
MIGRATION.md
,
ROLLBACK_PLAN.md
фіксують міграційний сценарій, ризики й відкат якщо capstone пов’язаний з migration
RISK_MAP.md
,
COMPATIBILITY_MATRIX.md
посилюють legacy/migration-сценарії evidence-артефактами якщо формат проєкту цього вимагає

Якщо у вас MVP, package зазвичай будується навколо

README
,
SPEC.md
,
EVIDENCE.md
, demo-матеріалів і перевірки основного сценарію. Якщо це feature in existing codebase, package доречно підсилити посиланням на PR walkthrough або окремим коротким описом diff і test evidence. Якщо ви робили migration slice, без
MIGRATION.md
, нотаток про валідацію і rollback plan пакет виглядає недомовленим: рецензент бачить шматок змін, але не бачить, як ви керуєте ризиком.

Дуже важливий

README
. Це головний вхід у проєкт для сторонньої людини. Не потрібно перетворювати його на роман на сорок екранів, але розділи мають бути прозорими: короткий опис, швидкий старт, команди запуску, спосіб пройти demo-сценарій, розділ перевірки, known limitations. Якщо ваш README зараз звучить як «запустіть якось, усе очевидно», отже, він написаний для автора. А автору, як відомо, усе очевидно — рівно до першого чужого запуску.

Ось компактний каркас, який зазвичай працює:

## Швидкий старт

1. Скопіюйте `.env.example` у локальний env-файл
2. Встановіть залежності
3. Запустіть проєкт командою з цього розділу
4. Відкрийте сценарій з `DEMO.md`
5. Виконайте команди перевірки з розділу `Перевірка`

Команди у вашому проєкті будуть свої — десь docker compose up, десь npm run dev, десь ./gradlew bootRun, десь uvicorn. Важливі не назви, а те, що за цими кроками реально можна стартувати з чистого стану — без шаманства й телепатії.

3. Reproducibility audit: п’ять питань довіри

Reproducibility audit звучить трохи урочисто, але по суті це дуже земна річ. Ви берете свій capstone і перевіряєте: чи пройде стороння людина шлях від клонування репозиторію до core flow за документами всередині проєкту — без ваших усних пояснень, без переписки в чаті.

Головна сила цього аудиту в тому, що він закриває одразу п’ять питань довіри:

Питання рецензента Що має це покривати
Що це за проєкт і навіщо він потрібен?
README.md
+
SPEC.md
Чи можу я запустити це у себе? setup-розділ,
.env.example
, команди запуску
Чи бачу я, що саме було перевірено?
TEST_PLAN.md
, checks,
EVIDENCE.md
Чи розумію я, чого проєкт поки не робить? known limitations у
README
або окремому файлі
Чи можу я довіряти заявленим результатам? узгодженість усіх артефактів між собою

Тут ключове слово — узгодженість. Якщо в

SPEC.md
один core scenario, а в демо інший — довіра падає. Якщо
README
обіцяє «одну команду», а на ділі треба підняти базу, прописати три змінні й здогадатися про сіди — теж падає. Якщо написано «усе перевірено», а в evidence немає ні команди, ні скриншота, ні результату — знову просадка.

Саме тому reproducibility audit — це trust mechanism, а не косметика: рецензент довіряє не вашій упевненості, а маршруту перевірки.

Хороша новина в тому, що аудит майже завжди знаходить не «фатальну катастрофу», а дрібні розриви: десь немає команди, десь demo-крок застарів, десь limitations живуть у вашій голові, а не в репозиторії. І краще ви спіймаєте це самі, ніж ментор на захисті.

4. Прогін на чистому середовищі

Найкорисніший спосіб провести аудит — зіграти в «сторонню людину». Відкрити не свій робочий каталог із налаштованими залежностями, а свіжий клон і пройти лише маршрутом з package. Якщо запуск потребує знання, якого немає в

README
, — це не знання рецензента, а ваша невидима авторська привілегія.

Правило прогону просте: ви не підглядаєте в старий термінал, не берете команди з пам’яті, не правите документацію під час прогону, доки не зафіксували проблему. Інакше вийде не аудит, а м’яка самоіндульгенція.

Шаблон такого прогону може бути дуже простим:

git clone <repo-url> capstone-check
cd capstone-check
cp .env.example .env.local     # якщо проєкт використовує env-файл
<команда встановлення залежностей>
<команда запуску проєкту>      # застосунок має стартувати без ручних правок
<команда перевірок>             # очікуємо успішний результат

Якщо у вас контейнерний проєкт, ви, найімовірніше, використовуватимете docker compose up -d. Java-проєкт — ./gradlew test або ./gradlew bootRun. Python — pip install -r requirements.txt і запуск сервісу. Конкретика залежить від формату capstone, логіка одна: усі критичні кроки видно зсередини package.

Окремо важливо прогнати core flow, а не лише технічний запуск: зелена збірка — не фініш. Якщо в

DEMO.md
сказано «користувач завантажує CSV і отримує звіт» — зробіть саме це з нуля. Якщо це migration slice — пройдіть validation path, а не покажіть, що проєкт компілюється. Якщо team workflow design — відтворіть ключовий сценарій використання workflow-артефакта, а не відкрийте папку
.claude
.

Дуже допомагає фіксувати знахідки одразу — в таблицю або нотатку: «крок 3 незрозумілий», «не вистачає версії Node», «команда запуску в README застаріла», «скриншот не відповідає інтерфейсу». Це не дрібниці: з них складається враження «проєкту можна довіряти» або «автор востаннє запускав це тільки у себе».

5. README, EVIDENCE.md і known limitations

Є три файли, які недооцінюють особливо часто:

README.md
,
EVIDENCE.md
і блок known limitations. Парадокс у тому, що саме вони роблять проєкт зрілим в очах рецензента: код без них працює, але його доказова сила помітно слабша.

README.md
відповідає за перший контакт. Це не місце для пафосу про «інноваційну AI-платформу нового покоління», якщо у вас навчальний capstone, готовий до демо: спокійно й по суті — значно сильніше. Поганий README залишає відчуття, що автор розраховує на усні пояснення замість документації.

EVIDENCE.md
— це вже не інструкція, а журнал доказів. Переписувати процес посекундно не потрібно, але видимими мають бути ключові рішення: початкова задача, де допоміг Claude Code, які перевірки запускалися, що прийняла людина, які ризики залишилися. За ним видно: ви не «дотиснули проєкт до робочого стану», а вели керований інженерний процес.

Не менш важливі known limitations. Новачки часто бояться їх писати — здається, ніби це визнання слабкості. Насправді все навпаки: відсутність обмежень виглядає підозріло. Межі є в будь-якого capstone: демо-режим замість бойової авторизації, відсутність retry, підтримка лише CSV, непокриті edge cases, локальний запуск без production deployment. Назвали чесно — і рецензент бачить: автор розуміє реальний обсяг проєкту і не продає прототип як космічний корабель.

Простий і сильний шаблон:

## Відомі обмеження

- підтримується лише один core-сценарій, описаний у `DEMO.md`;
- авторизацію замінено деморежимом і вона не призначена для production;
- звіти перевірено на тестових даних;
- retry для зовнішнього API поки що не реалізовано.

Зверніть увагу: тут немає ні виправдань, ні драматизму, ні «не судіть суворо». Тільки факти. Саме такий тон і створює довіру.

Сюди ж належить і фінальна гігієна публікації. У package не повинно бути реальних

.env
, приватних даних, сирих стенограм із чутливою інформацією, випадково закомічених ключів, демо-відео з чужими акаунтами, артефактів, які рецензент не повинен бачити. Фінальний sweep по репозиторію — частина пакування, особливо коли capstone стане proof-of-work, а не домашньою папкою на диску.

Коли package зібрано правильно, з ним стається приємна річ: проєкт починає триматися сам. Його можна відкрити без вас, запустити без дзвінка автору, перевірити без ворожіння й оцінити без знижки на хаос. Це і є головний знак готовності до захисту — не «я втомився і хочу натиснути здати», а «зовнішня людина дійде від репозиторію до результату й не втратить до вас довіру дорогою».

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ