- config: pydantic-settings по подсистемам, ADMIN_IDS через запятую
- texts.yaml + валидация при старте (лишний/пропущенный ключ — ошибка сразу)
- меню: reply-клавиатура разделов (Участники — только админам), инлайн «Назад»/«Отмена»
с редактированием сообщения на месте, /start, /menu, /help
- AccessMiddleware (outer) на сообщениях и кнопках: до #25 пускает только ADMIN_IDS,
постороннему — одна фраза в сутки, устаревшие кнопки молча гасятся
- heartbeat-файл + HEALTHCHECK в Dockerfile; JSON-логи
- FSM пока в памяти (фабрика), хранилище в БД — в #5
- тесты на фейковой сессии aiogram через настоящий Dispatcher
Refs #4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
## Что меняется
Шпаргалка по REST API SourceCraft (issues, метки, PR) с проверенными нюансами; `CLAUDE.md` теперь первым делом загружает `.env` с `SOURCECRAFT_TOKEN`.
Closes#1
## Как проверить
`set -a; . ./.env; set +a` и выполнить команды чтения из `docs/dev/SOURCECRAFT_API.md` — ответ 200.
## Чек-лист
- [x] ветка от origin/dev
- [x] секретов в диффе нет
- [x] лог в issue дописан
🤖 Generated with [Claude Code](https://claude.com/claude-code)