ducklm/MVP_CHECKLIST.md

2.9 KiB

MVP CHECKLIST

Этот чеклист фиксирует минимальный рабочий объём для первого демонстрационного запуска ducklm.

1. Core Runtime

  • Есть модульная структура проекта app/, config/, data/, tests/
  • Есть typed contracts для core entities
  • Есть Runtime Loop Controller
  • Runtime loop умеет принять задачу и создать task state
  • Runtime loop публикует стартовые и финальные события

2. Events and State

  • Есть EventBus
  • Есть EventStore
  • События имеют task_id + sequence
  • Есть TaskStateStore
  • Есть CheckpointStore
  • Есть сохранение checkpoint после critical transitions
  • Есть базовый resume path

3. Decision and Execution

  • Есть ContextBuilder
  • Есть Router как pure decision layer
  • Есть ExecutionDirective
  • Есть ExecutionEngine
  • Есть ExecutionScheduler
  • План валидируется и преобразуется в task graph

4. Tools and Safety

  • Есть PermissionService
  • Есть persistent store для user approvals
  • Есть ToolSandbox
  • Есть ToolRegistry
  • Работает shell_exec
  • Работает file_read
  • Работает file_write

5. Models and Evaluation

  • Есть orchestrator adapter
  • Есть planning mode interface
  • Есть coder adapter
  • Есть critic adapter
  • Есть fallback policy при critic failure

6. Memory

  • Есть SQLite metadata store
  • Есть vector index adapter
  • Работает memory insert/search
  • Есть MemoryWritePolicy
  • Запись в память не зависит только от critic score

7. Interfaces

  • Есть POST /chat
  • Есть WS /stream
  • Есть GET /health
  • Есть локальный веб-чат для ручной проверки runtime
  • Есть CLI для отправки задач и просмотра событий

8. Reliability

  • Есть structured logging
  • Есть retry/recovery policy skeleton
  • Есть replay path from event store
  • Есть critical-path smoke tests

9. Demo Definition

MVP считается достигнутым, если:

  • можно открыть локальный веб-чат в браузере
  • можно отправить задачу
  • видно streaming events
  • видно планирование или direct action
  • видно выполнение tool step
  • опасная команда требует подтверждения
  • финальный ответ возвращается пользователю