Перейти к основному содержимому

Модель репозиториев и организации

Portable Agent использует GitHub Organization и отдельную репу для каждого сервиса.

Уже создано

РепозиторийЧто хранитСостояние
.githubОбщие шаблоны, правила и CI/CDСоздан, развивается
platformАрхитектура, ADR, карта и публичная документацияСоздан, сайт опубликован
contractsOpenAPI, AsyncAPI, JSON Schema и примерыBundle 2.1.0 выпущен и используется сервисами
action-serviceJava-сервис действийjOOQ, MVC, outbox и Temporal worker работают в backend-срезе
agent-runtimePython-сервис агентаMVC, JWT и предложение календарного действия работают в backend-срезе
deployCompose, Helm charts и тестовые окруженияЛокальный backend-срез и GitHub acceptance проходят одной командой
infraOpenTofu modules и тесты инфраструктурыСоздан, первый module test проходит в CI
test-labСквозные, нагрузочные и resilience-тестыКонтрактный календарный acceptance-тест готов
calendar-mcpMCP-интеграция календаряFake Calendar, OIDC и идемпотентность работают в общем сценарии
mcp-gatewayБезопасный вызов настроенных MCP-сервисовStateless-маршрутизатор работает между Action и Calendar MCP
channel-gatewayЕдиный вход независимых каналовТекстовый API, JWT и вызов Agent Runtime работают в общем сценарии

Каркас означает, что настроены структура и инженерные проверки. Это не означает, что правила бизнеса уже спроектированы или реализованы.

Запланировано

portable-agent organization
├── conversation-service состояние диалога
├── approval-service подтверждение действий
├── policy-bundle правила OPA
└── widget-sdk переносимые виджеты

Названия и границы запланированных репозиториев могут измениться до начала реализации.

Правила

  • Никаких Git submodules и общей multi-service сборки.
  • У каждого запускаемого сервиса свои Dockerfile, тесты, миграции, image, release и runbook.
  • Общие workflows задают одинаковые проверки, но каждая репа вызывает их явно.
  • GitOps использует готовые image digests и не собирает application code.
  • Сервисы не делят общие доменные классы.
  • Межсервисные границы описываются в contracts, выпускаются версионным bundle и проверяются consumer tests.
  • Сервисы генерируют только HTTP models и API interfaces; domain остаётся внутри сервиса.
  • README и AGENTS.md обновляются вместе с изменением ответственности или команд.