docs/ по канону 12: паспорт с целью проекта, архитектура сегодняшнего устройства, схема хранилища, модель угроз, конвенции кода, журнал ревью. Конвенции перенесены из jellybit; места, где код им не следует, помечены строкой «Расхождение» как объявленный долг. tasks/ с роадмапом: две достигнутые цели, две запланированные (веб и многопользовательский режим), два направления (все форматы, долгие записи) и пять задач в беклоге. openspec/config.yaml — маршрутизатор с адресами документов, спек пока нет. CLAUDE.md переписан по форме канона: инварианты с severity, семантика гейта, запреты с путями. Taskfile получил task gate.
39 lines
3.6 KiB
Markdown
39 lines
3.6 KiB
Markdown
# Роадмап
|
|
|
|
Состояние проекта: что приложение **уже умеет** и чего ещё не умеет.
|
|
Цель — возможность приложения: файл типа `goal` (🎯) в
|
|
`items/`. Её задачи здесь **не перечисляются** — перечень даёт
|
|
`tasks.py list --goal <слаг>`.
|
|
|
|
- **Запланировано** — очередь значима и обосновывается прозой;
|
|
- **Направления** — очереди нет, тянутся долго;
|
|
- **Сопровождение** — чем держат проект: инструмент,
|
|
процесс, эксплуатация. Не возможности приложения, и отдельно —
|
|
чтобы не читаться как обещание продукта;
|
|
- **Готово** — достигнутое: строку пишет
|
|
`tasks.py close <цель> --implemented`, ссылки на файл в ней нет —
|
|
файл удаляется, поведение живёт в спеках. Стоит последней: копится.
|
|
|
|
Секции **канонические** и переименованию проектом не подлежат:
|
|
у каждой свой смысл, и в достигнутое пишет сам `close`. Порядок
|
|
тоже канонический. Английский
|
|
вариант — Planned | Directions | Operations | Done, один язык на весь
|
|
индекс.
|
|
|
|
## Запланировано
|
|
|
|
- [🎯 Записи загружаются и читаются в браузере](items/web-access.md) — Сегодня записи принимает только бот и голый HTTP API без интерфейса: отдать сервис человеку, у которого нет Telegram, нечем.
|
|
- [🎯 Сервисом пользуются несколько человек, и записи одного не видны другому](items/multi-user.md) — У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
|
|
|
|
## Направления
|
|
|
|
- [🎯 Принимается запись любого формата, включая дорожку из видео](items/any-audio-source.md) — Конвертер вызывается одной командой ffmpeg, проверенной на голосовых Telegram; что он берёт помимо них, никто не мерил.
|
|
- [🎯 Запись длиной в несколько часов доходит до текста](items/long-recordings.md) — Потолок не замерен ни на одном звене: Telegram не отдаёт больше 20 МиБ, а границы модели deferred-general неизвестны.
|
|
|
|
## Сопровождение
|
|
|
|
## Готово
|
|
|
|
- 2025-08-14 `telegram-transcription` — Голосовое сообщение из Telegram возвращается текстом. Основной вход сервиса: бот принимает голосовое, аудиофайл и документ с аудио и отвечает расшифровкой.
|
|
- 2025-08-08 `api-transcription` — Запись, отданная по HTTP, возвращается текстом. Программный вход: файл отдаётся формой, готовность и текст забираются опросом статуса задачи.
|