Ваш застосунок живий. І росте швидше, ніж ви встигаєте його розуміти.
Коли проєкт, створений з ШІ, змінюється, важливо знати, що перевірено, що лишається невідомим і яку дію дозволено. Care пояснює доказовий підхід у EolSpace; CareProof — його доказова складова. Приклад нижче підготовлений, а публічне замовлення послуги не відкрито.
«Не можу дебажити, бо не писав цей код» — і кожна дрібна помилка перетворюється на вечір здогадок.
Ключі до вашої бази лежать десь у коді сторінки, і ви не знаєте напевно, чи це безпечно.
Після кожного деплою ви не впевнені, чи те, що працювало вчора, працює сьогодні.
Як це працює
01
Одна перевірка ззовні
Дивимось на застосунок як звичайний відвідувач: сертифікат, доступність, публічний код сторінки, маркер збірки. Нічого не ламаємо, нічого не змінюємо, у ваш код не заходимо.
02
Квитанція з трьома станами
Кожен рядок отримує один вердикт із трьох — «тримається», «зламано», «не встановлено» — і адресу свого доказу. Зведеної оцінки немає навмисно: вона сховала б рівно те, що вам треба побачити.
03
Готовий припис для вашого ШІ
До проблемного рядка є текст для звичного редактора або AI-інструмента. Він допомагає підготувати зміну; ви переглядаєте й застосовуєте її. Виправлення підтверджує лише новий запуск того самого доказу.
04
Чесне протухання
Зробили деплой — квитанція не вдає, що все ще перевірено. Вона переходить у «чекає повторної перевірки», доки ми не подивимось знову. Стара квитанція, яка мовчки лишається зеленою, гірша за жодну.
Як виглядає рядок квитанції
Це справжні рядки, які видає перевірка — просто на вигаданому застосунку.
secret-scan:ваш-застосунок.exampleзламано
У публічному коді сторінки знайдено службовий ключ Supabase. Такий ключ обходить усі правила доступу до бази: хто його знайде, той читає і змінює всі ваші дані.
Готовий припис для вашого AI-редактора
У публічному бандлі мого веб-застосунку знайдено секрет. Знайди його у фронтенд-коді, прибери з клієнтського бандла, перенеси всі операції з ним на серверний бік (API route чи edge function), а потім відклич ключ і перевипусти новий у провайдера. Покажи діф і поясни, що саме тепер лишається на клієнті.
secret-scan:інший-застосунок.exampleне встановлено
Знайдено публічний ключ Supabase — це нормально, він для того й існує. Але чи закриті ваші таблиці правилами доступу, зовнішня перевірка не бачить. Тому «не встановлено», а не «все добре».
tls:ваш-застосунок.exampleтримається
Сертифікат домену дійсний і не протермінований на дату перевірки.
У дереві немає .claude/settings.json і .claude/settings.local.json — тож немає й хука, який запускав би команду при старті сесії агента. Відсутність файла тут виміряна, а не «не дотягнулись»: рядок прив'язаний до коміту і протухає з наступним.
AGENTS.md прочитано повністю: прихованих Unicode-символів, які редактор не показує, а модель читає як інструкцію, не знайдено. Прочитаний файл названо в межі покриття цього рядка.
Знайдений ключ ми ніколи не цитуємо — ні у звіті, ні в листі. Називаємо клас знахідки й де вона, щоб квитанція не стала другим місцем витоку.
Два рядки з «agent-hygiene» — з іншого джерела, ніж перевірка ззовні: їх видає команда eol у вашому власному дереві. Вона лише читає файли і нічого не запускає. Перевірок у сім'ї п'ять: хуки в .claude/settings.json, авто-увімкнення всіх MCP-серверів проєкту, задачі VS Code, що стартують при відкритті теки, skills, які самі дають собі Bash повз довіру, і приховані Unicode-символи в CLAUDE.md чи AGENTS.md. Це самооцінка на конкретному коміті, не бейдж: зрушив код — рядок чекає нового запуску.
Живі докази, не обіцянки
Перш ніж комусь вірити, подивіться, що ця система вміє насправді. Обидві сторінки відкриті й працюють просто зараз.
Мітки, прив'язані до конкретних комітів — включно з цим сайтом. Зрушив код, і мітка сама повертається в «чекає повторної перевірки».
Чого ми не обіцяємо
Це самооцінка за тими перевірками, які ми справді запускаємо, а не аудит і не гарантія.
«Не встановлено» — це не «все добре» і не «все погано». Це названа межа: цього ми не перевіряли або не змогли перевірити.
Зведеної оцінки не існує. Один зелений кружечок поверх трьох різних станів — саме те, від чого ми відмовляємось.
Ми дивимось ззовні. Те, що видно лише зсередини вашого коду, зовнішня перевірка не побачить — і скаже про це прямо, а не промовчить. Усередину дерева заходить лише команда eol, яку ви запускаєте самі: конфіги агентів вона читає, не запускаючи, а ваші тести виконує лише ваша окрема команда.
Статус доступу до EolSpace
EolSpace задумано для обговорення вашого випадку: що ви створюєте, за чим хочете стежити й які зміни потребують уваги. Публічний канал для таких звернень ще не підтверджено; закритий пілот не є відкритою послугою.