Appearance
Architecture Decisions & Plane Backlog v1
Статус
- Date: 2026-06-25
- Source task: MHPAY-100 / Import key
MHPAY-DOC-001 - Scope: docs-only canonical backlog / decisions aggregation
Назначение документа
Единая точка входа для AI-агентов и разработчиков MyHoreca Pay: принятые architecture/product decisions, карта модулей, продуктовые циклы, Plane/backlog keys, research items и правила работы агентов. Документ агрегирует уже принятые решения из ADR, roadmap, backlog и process docs — не вводит новых бизнес-решений.
Активная Plane-задача агента: current-plane-task.md. Снимок реализации: current-implementation-state.md.
Источники
| Документ | Назначение |
|---|---|
AGENTS.md (repository root) | Обязательные правила агентов |
codegraph/manifest.yaml (repository root) | Границы модулей, API surface, тесты |
| project-prompt.md | Продуктовый контекст |
| product-scope.md | Scope MVP/Beta/Production |
| user-roles.md | Роли и права |
| myhoreca-pay-roadmap.md | Фазы и readiness |
| implementation-backlog.md | Приоритизированный engineering backlog |
| current-state.md | Архитектурный снимок |
| permission-matrix.md | Матрица permissions |
| ADR (см. Accepted decisions) | Принятые architecture decisions |
| plane-task-template.md | Шаблон Plane-задач |
| plane-task-execution-rules.md | Правила выполнения задач |
| git-plane-traceability.md | Git/Plane traceability |
| rules.md | Краткие правила агентов |
tools/plane-mcp/import-backlog-report.json (repository root) | Импорт Plane backlog MHPAY-44..105 |
| plane-epic-navigation-tenancy-ux-v1.md | Epic Variant C: navigation/connection context — подробные инструкции для AI agents |
Product workflow baseline
Базовый workflow (источник: ADR: Product workflow v1):
text
bank file
→ bank adapter / format detector
→ normalized transactions
→ debit / credit interpretation
→ counterparty wizard / matching rules
→ Accountant review
→ allocation to Syrve/iiko documents
→ safe posting through IikoConnector
→ reconciliation
→ anomalies / notifications / auditMVP ведёт Accountant (полный цикл). PaymentOperator — target/future role, не блокер MVP. Production write запрещён до Phase 6 gates (roadmap).
Accepted decisions
Только решения со статусом Accepted в существующих docs/ADR.
| Decision | Status | Source | Impacted modules | Notes |
|---|---|---|---|---|
| Product workflow v1 (adapter → normalized → match → allocate → post → reconcile → anomaly/audit) | Accepted | product-workflow-v1.md | BankStatements, Application, IikoConnector, Infrastructure | Не копия 1С/iiko payment screen |
| Organization / Sub-organization / Outlet ownership; UI term Outlet | Accepted | org-outlet-ownership-v1.md | Domain, Infrastructure (tenancy), Frontend | OrganizationId required; OutletId nullable when unresolved |
| Soft delete 5d → PendingHardDelete → manual hard delete; audit tombstones | Accepted | data-deletion-policy-v1.md | Persistence, Application, Workers | Hard delete never mutates Syrve/iiko |
| Local encrypted secret store + SecretRef; no raw secrets in API/Redis | Accepted | secrets-and-credential-rotation-v1.md | Infrastructure, IikoConnector, Api | Rotation UI: MegaAdmin/MegaManager/OrganizationAdmin |
| Redis runtime policy: TTL invites 3h, Redis-only invitations, no permanent secrets in Redis | Accepted | redis-runtime-policy.md | Infrastructure, Redis | PostgreSQL — source of truth для audit/history |
| UUID v7 for domain entity IDs | Accepted | AGENTS.md | Domain, Infrastructure | IUuidGenerator; never Guid.NewGuid() for entities |
Newtonsoft.Json via PayJsonSerializer; typed DTOs only | Accepted | AGENTS.md | Application, Api, Shared | No System.Text.Json, no JToken/JObject in app code |
| Bank adapters via registry; normalized transaction contract | Accepted | bank-statement-parsing.md, normalized-bank-transaction-model.md | BankStatements | New format = new adapter |
| Layered backend; Application must not reference Infrastructure | Accepted | current-state.md, manifest | All backend projects | ArchitectureTests enforce |
| Payment write gates (test/prod flags, approval, idempotency, preflight, anomaly block) | Accepted | product-workflow-v1.md, syrve-payment-orchestration.md | Infrastructure, IikoConnector | AllowProductionWrites alone insufficient |
| Scoped RBAC permission names and operator matrix | Accepted (target model) | permission-matrix.md, user-roles.md | Api, Infrastructure | Legacy flat roles coexist; full org/outlet enforcement — backlog |
| Navigation & tenancy information architecture Variant C | Accepted | navigation-tenancy-information-architecture-v1.md | Frontend SPA, RBAC/tenancy docs, Syrve Integration | Sidebar groups, connection-scoped Syrve read routes, active context stack |
| Telegram bank-statement inbox v1 (link challenge + Active link; WhatsApp out of scope) | Accepted | telegram-bank-statement-inbox-v1.md | Api, Application, Persistence, Infrastructure, BankStatements, Frontend Settings | Feature flag Telegram__Enabled; NuGet Telegram.Bot |
Direct commits to main; commit format [MHPAY-XXX] | Accepted (process) | git-plane-traceability.md | AI Agents & Process | PR not mandatory |
| Plane task template + execution rules for AI agents | Accepted (process) | plane-task-template.md, plane-task-execution-rules.md | AI Agents & Process | Import key required in CSV import |
Modules
Опирается на codegraph/manifest.yaml и architecture docs.
| Module | Path / doc | Responsibility | Related tasks | Notes |
|---|---|---|---|---|
| Domain | backend/src/MyHoreca.Pay.Domain | Entities, enums, bank interfaces, normalized model | MHPAY-2, MHPAY-ADR-002 | No outward refs |
| Application | backend/src/MyHoreca.Pay.Application | Use cases, DTOs, abstractions | MHPAY-19, MHPAY-21 | No Infrastructure refs |
| Persistence | backend/src/MyHoreca.Pay.Persistence | EF Core, migrations, seeder | MHPAY-LIFE-001, MHPAY-RBAC-001 | |
| BankStatements | backend/src/MyHoreca.Pay.BankStatements | Adapters, import pipeline, quality | MHPAY-1..5, MHPAY-27, MHPAY-BANK-* | IBankAdapter boundary |
| Infrastructure | backend/src/MyHoreca.Pay.Infrastructure | Auth, Syrve services, workers, tenancy | MHPAY-28, MHPAY-34, MHPAY-37, MHPAY-SEC-* | |
| IikoConnector* | backend/src/IikoConnector* | Syrve/iiko transport & persistence | MHPAY-SYRVE-*, MHPAY-76 | Writes only through connector |
| Api | backend/src/MyHoreca.Pay.Api | REST controllers | MHPAY-21, MHPAY-29, MHPAY-API-* | |
| Gateway | backend/src/MyHoreca.Pay.Gateway | YARP reverse proxy | — | Edge only |
| Frontend SPA | frontend/src | Operational workspace UI | MHPAY-1..13, MHPAY-FE-* | TanStack Query, shared UI |
| Docs portal | docs/docs | VitePress product docs | MHPAY-23, MHPAY-100 | Mandatory with product changes |
| Codegraph | codegraph/manifest.yaml | Agent navigation map | MHPAY-98..100 | Dev tooling only |
| AI Agents & Process | docs/docs/ai-agents | Templates, traceability, this doc | MHPAY-98, MHPAY-99, MHPAY-100 |
Work cycles / product streams
| Cycle / stream | Goal | Modules | Related tasks | Current status |
|---|---|---|---|---|
| Bank import / adapters / normalized transactions | Стабильный импорт индонезийских выписок | BankStatements, Domain, Frontend | MHPAY-1..5, MHPAY-27, MHPAY-BANK-*, P3 backlog | Beta adapters implemented; live pilot pending |
| Matching / counterparty rules | Сопоставление контрагентов и правила | Application, Api, Frontend | MHPAY-MATCH-*, MHPAY-67..72 | Implemented baseline; wizard/rules backlog |
| Payment allocation | Распределение платежа по документам Syrve | Application, Api, Frontend | MHPAY-19, MHPAY-ALLOC-* | Implemented; UX hardening in backlog |
| Syrve/iiko posting | Безопасная запись через IikoConnector | Infrastructure, IikoConnector | MHPAY-SYRVE-*, MHPAY-RECON-001 | PASS_WRITE test; production disabled |
| Reconciliation | Live readback vs expected state | Infrastructure workers | MHPAY-RECON-001, P0 backlog | FAIL_RECONCILE on first live write |
| Anomalies / notifications / audit | Safety layer, operator alerts | Application, Api, Frontend | MHPAY-AUDIT-*, MHPAY-NOTIF-001 | Partial; critical anomaly gate verified |
| RBAC / tenancy / permissions | Multi-tenant scope safety | Domain, Infrastructure, Api | MHPAY-29, MHPAY-RBAC-*, Phase 2 | Foundation partial; org/outlet hierarchy backlog |
| Production readiness | Gates, runbooks, paym acceptance | Docs, operations | MHPAY-23, MHPAY-35, MHPAY-39, P4 backlog | Docs prepared; live evidence pending |
| AI-agent process / traceability | Repeatable agent workflow | docs/docs/ai-agents | MHPAY-98, MHPAY-99, MHPAY-100 | Template + traceability done; this doc |
Plane backlog cycles (import package)
| Cycle ID | Name | Task range (import) |
|---|---|---|
| MHPAY-C0 | Архитектурная фиксация | MHPAY-44..49, MHPAY-98..100 |
| MHPAY-C1 | Platform Foundation | MHPAY-50..60, MHPAY-84, MHPAY-91..93, MHPAY-102 |
| MHPAY-C2 | Bank Import & Matching | MHPAY-61..75, MHPAY-86, MHPAY-90, MHPAY-101, MHPAY-103, MHPAY-105 |
| MHPAY-C3 | Allocation & Syrve Safety | MHPAY-76..83, MHPAY-85, MHPAY-104 |
| MHPAY-C4 | UX, Operations & Reports | MHPAY-87..89, MHPAY-94..97 |
Plane / backlog mapping
Исторические итерации (MHPAY-1..43, по docs)
Задачи до CSV-import package; статусы — по упоминаниям в docs (многие завершены в коде/docs).
| Task key | Import key | Title / summary | Module | Cycle | Status (docs) | Research? |
|---|---|---|---|---|---|---|
| MHPAY-1 | — | Bank import pipeline review | Bank Import | Foundation | Done (doc) | No |
| MHPAY-2 | — | Normalized bank transaction model | BankStatements | Foundation | Done (doc) | No |
| MHPAY-3 | — | bank-statement-parsing.md | Bank Adapters | Foundation | Done (doc) | No |
| MHPAY-4 | — | First real Indonesian bank CSV adapter | Bank Adapters | Phase 1 | Beta (Permata etc.) | No |
| MHPAY-5 | — | Supported banks API/UI | Bank Import | Phase 1 | Implemented | No |
| MHPAY-1..13 | — | Mocked E2E smoke (Playwright) | Frontend | UX | Done (test) | No |
| MHPAY-19 | — | Payment allocation contracts/flow | Payment Allocation | Phase 3 | Implemented | No |
| MHPAY-21 | — | API named DTO boundary | API Foundation | Foundation | Implemented | No |
| MHPAY-23 | — | UAT / release / ops checklists | Operations | Phase 5 | Done (docs) | No |
| MHPAY-27 | — | Bank adapter development checklist | Bank Adapters | Phase 1 | Done (doc) | No |
| MHPAY-28 | — | Import health aggregate endpoint | Bank Import | Observability | Implemented | No |
| MHPAY-29 | — | Permission matrix doc | Identity & RBAC | Phase 2 | Done (doc) | No |
| MHPAY-34 | — | Operational settings resolution | Infrastructure | Platform | Partial (org-level) | No |
| MHPAY-35 | — | paym.ru.tuna.am production profile epic | Syrve Integration | Production | In progress (env) | No |
| MHPAY-37 | — | Syrve operational flags API/UI | Syrve Integration | Platform | Implemented | No |
| MHPAY-39 | — | paym acceptance checklist (PAYM-01..08) | Operations | Production | Documented; live pending | No |
| MHPAY-42 | — | Syrve references live names / cash-flow | Syrve Integration | Phase 3 | Implemented | No |
CSV import package (MHPAY-44..105)
Источник: tools/plane-mcp/import-backlog-report.json (imported 2026-06-25). Полный список:
| Task key | Import key | Title / summary | Module | Cycle | Status | Research? |
|---|---|---|---|---|---|---|
| MHPAY-44 | MHPAY-ADR-001 | ADR: Финальный продуктовый workflow | Архитектура и ADR | MHPAY-C0 | Backlog → doc exists | No |
| MHPAY-45 | MHPAY-ADR-002 | ADR: Organization / Sub-organization / Outlet | Organizations & Outlets | MHPAY-C0 | Backlog → doc exists | No |
| MHPAY-46 | MHPAY-ADR-003 | ADR: MVP role matrix и permissions | Identity & RBAC | MHPAY-C0 | Backlog | No |
| MHPAY-47 | MHPAY-ADR-004 | ADR: Soft delete / restore / hard delete | Data Lifecycle | MHPAY-C0 | Backlog → doc exists | No |
| MHPAY-48 | MHPAY-ADR-005 | ADR: Redis runtime policy | Redis Runtime | MHPAY-C0 | Backlog → doc exists | No |
| MHPAY-49 | MHPAY-ADR-006 | ADR: Local encrypted secret store + SecretRef | Secrets & Credentials | MHPAY-C0 | Backlog → doc exists | No |
| MHPAY-50 | MHPAY-RBAC-001 | Иерархия Organization/Sub-organization/Outlet | Organizations & Outlets | MHPAY-C1 | Backlog | No |
| MHPAY-51 | MHPAY-RBAC-002 | MVP role seeds и permission constants | Identity & RBAC | MHPAY-C1 | Backlog | No |
| MHPAY-52 | MHPAY-RBAC-003 | Platform user management MegaAdmin/MegaManager | Identity & RBAC | MHPAY-C1 | Backlog | No |
| MHPAY-53 | MHPAY-RBAC-004 | Active organization/outlet после логина | Identity & RBAC | MHPAY-C1 | Backlog | No |
| MHPAY-54 | MHPAY-RBAC-005 | Redis-only invitation flow TTL 3h | Identity & RBAC | MHPAY-C1 | Backlog | No |
| MHPAY-55 | MHPAY-REDIS-001 | Redis Stack в docker/dev | Redis Runtime | MHPAY-C1 | Backlog | No |
| MHPAY-56 | MHPAY-REDIS-002 | Typed Redis JSON layer (NRedisStack) | Redis Runtime | MHPAY-C1 | Backlog | No |
| MHPAY-57 | MHPAY-SEC-001 | LocalEncryptedSecretStore | Secrets & Credentials | MHPAY-C1 | Backlog | No |
| MHPAY-58 | MHPAY-SEC-002 | Syrve credentials rotation API | Secrets & Credentials | MHPAY-C1 | Backlog | No |
| MHPAY-59 | MHPAY-SEC-003 | Syrve credentials rotation UI | Secrets & Credentials | MHPAY-C1 | Backlog | No |
| MHPAY-60 | MHPAY-SEC-004 | Syrve runtime token в Redis, reconnect 7× | Secrets & Credentials | MHPAY-C1 | Backlog | No |
| MHPAY-61 | MHPAY-BANK-001 | Original bank file storage 24h | Bank Import | MHPAY-C2 | Backlog | No |
| MHPAY-62 | MHPAY-BANK-002 | Duplicate upload by hash + OrganizationId | Bank Import | MHPAY-C2 | Backlog | No |
| MHPAY-63 | MHPAY-BANK-003 | Balance warning: NeedsReview + override | Bank Import | MHPAY-C2 | Backlog | No |
| MHPAY-64 | MHPAY-BANK-004 | AdapterVersion/ParserVersion/NormalizerVersion | Bank Adapters | MHPAY-C2 | Backlog | No |
| MHPAY-65 | MHPAY-BANK-005 | Защита repo от реальных банковских файлов | Bank Adapters | MHPAY-C2 | Backlog | No |
| MHPAY-66 | MHPAY-BANK-006 | Stored Reprocess Preview | Bank Import | MHPAY-C2 | Backlog | No |
| MHPAY-67 | MHPAY-MATCH-001 | Indonesian CounterpartyNameNormalizer | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-68 | MHPAY-MATCH-002 | Counterparty Match Wizard | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-69 | MHPAY-MATCH-003 | CounterpartyRuleConflictDetector | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-70 | MHPAY-MATCH-004 | Справочник правил распознавания | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-71 | MHPAY-MATCH-005 | Применение rules к импорту | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-72 | MHPAY-MATCH-006 | Hourly Syrve supplier snapshot sync | Syrve Integration | MHPAY-C2 | Backlog | No |
| MHPAY-73 | MHPAY-CORR-001 | Manual corrections entity | Manual Corrections | MHPAY-C2 | Backlog | No |
| MHPAY-74 | MHPAY-CORR-002 | UI истории/отката corrections | Manual Corrections | MHPAY-C2 | Backlog | No |
| MHPAY-75 | MHPAY-CORR-003 | Reason policy для опасных действий | Manual Corrections | MHPAY-C2 | Backlog | No |
| MHPAY-76 | MHPAY-SYRVE-001 | Research IikoConnector posting capabilities | Syrve Integration | MHPAY-C3 | Backlog | Yes |
| MHPAY-77 | MHPAY-SYRVE-002 | SyrvePostingRule v1 (after research) | Syrve Integration | MHPAY-C3 | Backlog | Depends on MHPAY-76 |
| MHPAY-78 | MHPAY-ALLOC-001 | Allocation editor: один платёж → несколько документов | Payment Allocation | MHPAY-C3 | Backlog | No |
| MHPAY-79 | MHPAY-ALLOC-002 | Auto allocation candidates | Payment Allocation | MHPAY-C3 | Backlog | No |
| MHPAY-80 | MHPAY-ALLOC-003 | Outlet ambiguity resolution | Payment Allocation | MHPAY-C3 | Backlog | No |
| MHPAY-81 | MHPAY-SYRVE-003 | RMS/CHAIN mapping для connections | Syrve Integration | MHPAY-C3 | Backlog | No |
| MHPAY-82 | MHPAY-SAFE-001 | Hard delete warning for unreconciled postings | Data Lifecycle | MHPAY-C3 | Backlog | No |
| MHPAY-83 | MHPAY-RECON-001 | Reconciliation hardening PASS_WRITE + PASS_RECONCILE | Syrve Integration | MHPAY-C3 | Backlog | No |
| MHPAY-84 | MHPAY-LIFE-001 | Soft delete/restore/PendingHardDelete | Data Lifecycle | MHPAY-C1 | Backlog | No |
| MHPAY-85 | MHPAY-LIFE-002 | HardDeletePurgeWorker | Data Lifecycle | MHPAY-C3 | Backlog | No |
| MHPAY-86 | MHPAY-AUDIT-001 | Append-only audit + tombstones | Audit & Compliance | MHPAY-C2 | Backlog | No |
| MHPAY-87 | MHPAY-AUDIT-002 | Audit CSV/PDF export | Reports & Exports | MHPAY-C4 | Backlog | No |
| MHPAY-88 | MHPAY-NOTIF-001 | Critical notification escalation SLA 2h | Notifications & SLA | MHPAY-C4 | Backlog | No |
| MHPAY-89 | MHPAY-WORK-001 | Read-only /admin/workers dashboard | Workers & Observability | MHPAY-C4 | Backlog | No |
| MHPAY-90 | MHPAY-WORK-002 | FileRetentionCleanupWorker | Workers & Observability | MHPAY-C2 | Backlog | No |
| MHPAY-91 | MHPAY-API-001 | Единый API error contract | API Foundation | MHPAY-C1 | Backlog | No |
| MHPAY-92 | MHPAY-API-002 | RowVersion и workflow state guards | API Foundation | MHPAY-C1 | Backlog | No |
| MHPAY-93 | MHPAY-STATE-001 | Workflow state machines docs + guards | API Foundation | MHPAY-C1 | Backlog | No |
| MHPAY-94 | MHPAY-FE-001 | Mantine UI Foundation + shared/ui | Frontend Mantine | MHPAY-C4 | Backlog | No |
| MHPAY-95 | MHPAY-FE-002 | Bank statement Accountant workbench | Frontend Mantine | MHPAY-C4 | Backlog | No |
| MHPAY-96 | MHPAY-I18N-001 | i18n ru/en/id + language switcher | Multilingual UI | MHPAY-C4 | Backlog | No |
| MHPAY-97 | MHPAY-REPORT-001 | Reconciliation/payment evidence CSV report | Reports & Exports | MHPAY-C4 | Backlog | No |
| MHPAY-98 | MHPAY-AI-001 | Plane task template для AI-агентов | AI Agents & Process | MHPAY-C0 | Done | No |
| MHPAY-99 | MHPAY-PROC-001 | Git/Plane traceability direct main | AI Agents & Process | MHPAY-C0 | Done | No |
| MHPAY-100 | MHPAY-DOC-001 | Этот документ — canonical backlog v1 | AI Agents & Process | MHPAY-C0 | In Progress | No |
| MHPAY-101 | MHPAY-SENS-001 | Sensitive logging/masking policy | Security Baseline | MHPAY-C2 | Backlog | No |
| MHPAY-102 | MHPAY-API-DOC-001 | API docs Organization/Sub-org/Outlet | API Foundation | MHPAY-C1 | Backlog | No |
| MHPAY-103 | MHPAY-API-DOC-002 | API docs matching wizard/rules | Counterparty Matching | MHPAY-C2 | Backlog | No |
| MHPAY-104 | MHPAY-API-DOC-003 | API docs allocation/posting gates | Payment Allocation | MHPAY-C3 | Backlog | No |
| MHPAY-105 | MHPAY-FIXT-001 | Sanitized fixtures matching/allocation | Bank Adapters | MHPAY-C2 | Backlog | No |
Epic: Navigation & Tenancy UX — Variant C (imported 2026-07-06)
Полное agent-facing описание: plane-epic-navigation-tenancy-ux-v1.md.
Импорт: tools/plane-mcp/create_navigation_tenancy_issues.py → отчёт create-navigation-tenancy-issues-report.json.
| Plane | Import key | Title | Extends |
|---|---|---|---|
| MHPAY-109 | MHPAY-NAV-000 | [Epic] Навигация, tenancy и иерархия подключений (вариант C) | — |
| MHPAY-110 | MHPAY-ADR-007 | ADR: информационная архитектура навигации и tenancy | — |
| MHPAY-111 | MHPAY-NAV-001 | Sidebar: Платформа / Организация / Syrve / Операции | ADR-007 |
| MHPAY-112 | MHPAY-NAV-002 | Вложенные маршруты подключения и редиректы | NAV-001 |
| MHPAY-113 | MHPAY-API-003 | Явный connectionId в Syrve read API | ADR-007 |
| MHPAY-114 | MHPAY-RBAC-006 | Активный контекст Syrve-подключения | MHPAY-53 |
| MHPAY-115 | MHPAY-FE-003 | Playwright: иерархия навигации | NAV/RBAC |
| MHPAY-116 | MHPAY-DOC-002 | Синхронизация продуктовой документации | all |
Порядок: ADR-007 → NAV-001 → (NAV-002 ∥ API-003) → RBAC-006 → FE-003 → DOC-002.
Engineering backlog (без Plane keys)
Приоритеты P0–P5 из implementation-backlog.md дополняют Plane tasks (например OUTGOING_INVOICE readback, duplicate review UX, per-org production flags).
Research items
Не являются accepted decisions. Требуют отдельной задачи или ADR после закрытия research.
| Research item | Why unresolved | Related module/cycle | Proposed next Plane task |
|---|---|---|---|
| IikoConnector posting capabilities & SyrvePostingRule v1 | Нужен формальный survey RPC/REST перед правилами posting | Syrve Integration / MHPAY-C3 | MHPAY-76 → MHPAY-77 |
| OUTGOING_INVOICE readback strategy | getUnpaidSumForAGivenInvoice lag; reconcile FAIL_RECONCILE | Syrve Integration / Reconciliation | MHPAY-83, P0 backlog readback probes |
| PASS_WRITE + PASS_RECONCILE repeatability | Первый live write: PASS_WRITE / FAIL_RECONCILE | Syrve Integration | MHPAY-83, Phase 4 roadmap |
| Per-organization / per-location production write gates | Global flag insufficient; flags not in DB yet | Platform / Phase 6 | P4 backlog, future Plane tasks |
| Full scoped RBAC on all business entities | Ownership partial; imports/connections not fully scoped | Identity & RBAC / MHPAY-C1 | MHPAY-50..54 |
| Live pilot validation on real bank exports | Beta adapters need production samples | Bank Import / MHPAY-C2 | P3 backlog, MHPAY-105 fixtures |
| paym.ru.tuna.am live acceptance evidence | PAYM-01..08 checklist documented, not executed | Operations / Production | MHPAY-39 follow-up operator run |
| Name matching ML / synonym expansion | Beyond rules — not designed | Counterparty Matching | P5 backlog (no Plane key) |
| ADR: MVP role matrix (MHPAY-ADR-003) | Plane task MHPAY-46; dedicated ADR file not in repo yet | Identity & RBAC | MHPAY-46 |
AI-agent notes
Сводка обязательных правил (полные версии — в linked docs):
- Targeted repo inspection only — читать
AGENTS.md→codegraph/manifest.yaml→project-prompt.md→current-implementation-state.md→current-plane-task.md; затем только domain-relevant files. No broad scan. - Manifest-first navigation — для API/UI/архитектуры:
api_surface,shared_symbols, test pointers в manifest. - Docs update обязательна — любое изменение behavior/API/architecture/UI → соответствующие docs; public API →
backend/api.md. current-implementation-state.mdupdate обязательна — после каждой завершённой итерации (команды, gaps, changed files).- Security — no real bank files, secrets, raw bank lines, full account numbers in repo/logs/docs fixtures.
- Docs-only tasks — no runtime backend/frontend changes unless задача явно требует.
- No new business decisions without ADR — конфликт с ADR → propose ADR update first.
- Commits — direct to
main, format[MHPAY-XXX] описание; Plane handoff с commit hash (git-plane-traceability.md). - Plane tasks — использовать plane-task-template.md; Import key обязателен при CSV import.
- Verification — запускать narrowest relevant tests; не заявлять pass без фактического run.
Maintenance rules
Обновлять этот документ когда:
| Trigger | Action |
|---|---|
| Новый accepted ADR | Добавить строку в Accepted decisions; ссылка в Источники |
| Крупный Plane CSV import | Расширить таблицу MHPAY-44+; сверить с import-backlog-report.json |
| Изменение module boundaries | Обновить Modules; синхронизировать codegraph/manifest.yaml |
| Изменение plane-task-template / execution rules | Обновить AI-agent notes |
| Закрытие research item | Перенести из Research в Accepted decisions (через ADR) или в Plane mapping как implementation task |
| Смена активной Plane-задачи | Обновить current-plane-task.md (не дублировать полное описание здесь) |
Владелец: команда разработки / AI agent handoff. Review: после каждого архитектурного цикла MHPAY-C0 или import package.