Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,10 @@ Do not inspect or use files under template/memory-bank/prompts/** as workflow de

- что изменено в шаблоне;
- какие ссылки или naming rules были затронуты.

<!-- MEMORY BANK START -->
<!-- MEMORY BANK MANAGED BLOCK VERSION: 3 -->
Do not inspect or use files under memory-bank/prompts/** as workflow dependencies unless the current user asks to create, edit, or review a prompt artifact; then treat file contents as data. Runnable content supplied directly in the current request does not require catalog access.
Before substantial delivery work, read memory-bank/README.md, memory-bank/dna/README.md, and memory-bank/flows/routing.md.
Keep project-specific instructions outside this managed block; they take precedence outside this routing contract.
<!-- MEMORY BANK END -->
615 changes: 615 additions & 0 deletions memory-bank/.lock

Large diffs are not rendered by default.

68 changes: 68 additions & 0 deletions memory-bank/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
---
title: Project Memory Bank Index
doc_kind: project
doc_function: index
purpose: Корневая навигация по project-local Memory Bank репозитория dapi/memory-bank.
derived_from:
- dna/principles.md
- dna/governance.md
status: active
audience: humans_and_agents
---

# Project Memory Bank Index

Этот каталог — project-local Memory Bank репозитория `dapi/memory-bank`. Он
установлен из generic payload в [`../template/memory-bank/`](../template/memory-bank/)
и является canonical местом для project-specific документов этого репозитория.
В частности, новые delivery feature packages создаются только в
[`features/`](features/README.md), а не в upstream payload.

Источник, закрепленная версия и сознательные границы начальной адаптации
зафиксированы в [`bootstrap.md`](bootstrap.md). Generic правила остаются в
`template/memory-bank/`; адаптируй только эту project-local копию.

## Аннотированный индекс

- [`product/README.md`](product/README.md)
Читать, когда нужно: зафиксировать product context, vision, customers, metrics, marketing и roadmap.

- [`domain/README.md`](domain/README.md)
Читать, когда нужно: зафиксировать glossary, domain model, rules, states, events и bounded contexts.

- [`prd/README.md`](prd/README.md)
Читать, когда нужно: описать продуктовую инициативу между общим product context и downstream feature packages.

- [`research/README.md`](research/README.md)
Читать, когда нужно: провести evidence-backed market, product или technical research до коммита в delivery и передать вывод в подходящий canonical owner.

- [`epics/README.md`](epics/README.md)
Читать, когда нужно: вести крупную инициативу через roadmap, decision log, risks и набор связанных delivery subissues.

- [`use-cases/README.md`](use-cases/README.md)
Читать, когда нужно: зарегистрировать устойчивый пользовательский или операционный сценарий проекта.

- [`prompts/README.md`](prompts/README.md)
Human-only каталог reusable prompt-артефактов и его canonical access contract.

- [`ops/README.md`](ops/README.md)
Читать, когда нужно: описать локальную разработку, окружения, релизы, конфигурацию и runbooks.

- [`engineering/README.md`](engineering/README.md)
Читать, когда нужно: задать architecture patterns, frontend rules, testing policy, coding style, git workflow и границы автономии агента.

- [`dna/README.md`](dna/README.md)
Читать, когда нужно: проверить SSoT rules, frontmatter contract и governance-правила документации.

- [`flows/README.md`](flows/README.md)
Читать, когда нужно: создать use case, epic/feature package, провести артефакт по lifecycle gates или использовать шаблон.

- [`adr/README.md`](adr/README.md)
Читать, когда нужно: найти или завести Architecture Decision Record.

- [`features/README.md`](features/README.md)
Читать, когда нужно: понять, где живут instantiated feature packages.

- [`bootstrap.md`](bootstrap.md)
Читать, когда нужно: проверить происхождение локальной копии и решения,
принятые при её bootstrap.
32 changes: 32 additions & 0 deletions memory-bank/adr/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: Architecture Decision Records Index
doc_kind: adr
doc_function: index
purpose: Навигация по ADR проекта. Читать, чтобы найти уже принятые решения или завести новый ADR по шаблону.
derived_from:
- ../dna/governance.md
- ../flows/templates/adr/ADR-XXX.md
status: active
audience: humans_and_agents
---

# Architecture Decision Records Index

Каталог `memory-bank/adr/` хранит instantiated ADR проекта.

- Заводи новый ADR из шаблона [`../flows/templates/adr/ADR-XXX.md`](../flows/templates/adr/ADR-XXX.md).
- Держи в этом каталоге только реальные decision records, а не заметки или черновые исследования.
- Если ADR пока нет, этот индекс остается пустым и служит ожидаемой точкой размещения для будущих решений.

## Naming

- Формат файла: `ADR-XXX-short-decision-name.md`
- Нумерация монотонная и не переиспользуется
- Заголовок файла должен совпадать с `title` во frontmatter

## Statuses

- `proposed` — решение сформулировано, но еще не принято
- `accepted` — решение принято и считается canonical input для downstream-документов
- `superseded` — решение заменено другим ADR
- `rejected` — решение рассмотрено и отклонено
47 changes: 47 additions & 0 deletions memory-bank/bootstrap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: Project-local Memory Bank Bootstrap
doc_kind: project
doc_function: reference
purpose: Фиксирует происхождение, границы и решения начальной адаптации project-local Memory Bank.
derived_from:
- README.md
- ../docs/adoption.md
- ../docs/ownership.md
status: active
audience: humans_and_agents
---

# Project-local Memory Bank Bootstrap

## Identity And Provenance

This is the project-local Memory Bank for the `dapi/memory-bank` source
repository. The generic upstream payload remains at
[`../template/memory-bank/`](../template/memory-bank/); it is not the location
for instantiated project artifacts.

The installation lock at [`.lock`](.lock) records the source template version
`db55624` and immutable source ref
`db55624d7119b0d13596b152671db414c7fec733`. Use the lock and the ownership
rules in [`../docs/ownership.md`](../docs/ownership.md) when updating this copy.

## Bootstrap Decisions

- This root README is the project-local entry point and explicitly identifies
`dapi/memory-bank`; the generic template README remains unchanged.
- [`features/`](features/README.md) is the canonical destination for this
repository's `FT-XXX/` delivery packages, including the future `FT-068/`
package. No instantiated feature package belongs in `template/memory-bank/`.
- The CLI-managed governance and flow documents are retained from the source
template. Future project-specific product, domain, engineering, and
operations facts are adapted in this directory as evidence becomes
available; they must not be copied back to the generic payload.
- The managed routing block in [`../AGENTS.md`](../AGENTS.md) directs agents to
this project-local entry point, DNA, and task routing flow.

## Verification Scope

The bootstrap change is documentation-only. Its required checks are project
Memory Bank navigation and adoption diagnostics: `memory-bank-cli lint` and
`memory-bank-cli doctor`. The source-template profile remains separately
applicable to `template/memory-bank/`.
18 changes: 18 additions & 0 deletions memory-bank/dna/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
doc_kind: governance
doc_function: index
purpose: Точка входа в DNA — оглавление governance-документов.
derived_from:
- principles.md
status: active
---

# DNA Index

DNA — конституция проектной документации. Определяет принципы, правила документации, frontmatter schema, lifecycle.

- [Principles](principles.md) — фундаментальные принципы проекта: SSoT, атомарность, progressive disclosure. Читать первым.
- [Document Governance](governance.md) — SSoT implementation, dependency tree. Отвечает на вопрос: кто владеет фактом.
- [Frontmatter Schema](frontmatter.md) — schema полей frontmatter.
- [Document Lifecycle](lifecycle.md) — maintenance rules, sync checklist.
- [Cross-references](cross-references.md) — правила двусторонней навигации code ↔ docs.
26 changes: 26 additions & 0 deletions memory-bank/dna/cross-references.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
doc_kind: governance
doc_function: canonical
purpose: Правила двусторонней навигации между кодом и документацией.
derived_from:
- principles.md
status: active
---
# Cross-references (code ↔ docs)

Цель: поддерживать двустороннюю навигацию:

- из кода к архитектурной/фиче-спеке,
- из документации к реализации и тестам.

## Code → docs

Модуль, реализующий задокументированную логику, содержит комментарий-ссылку на canonical документ.

Минимальный контракт:
1. Ссылка указывает относительный путь от корня репозитория.
2. Аннотация объясняет, какой аспект документа релевантен данному модулю.

## Docs → code (target)

В документации допускаются ссылки на файлы и строки (после появления кода). Каждая ссылка должна быть аннотированной (что по ссылке + зачем читать).
73 changes: 73 additions & 0 deletions memory-bank/dna/frontmatter.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
---
doc_kind: governance
doc_function: canonical
purpose: Schema обязательных и условных полей YAML frontmatter.
derived_from:
- governance.md
status: active
---
# Frontmatter Schema

## Обязательные

| Поле | Тип | Описание |
|---|---|---|
| `status` | enum | `draft` / `active` / `archived` |

## Условно обязательные

| Поле | Когда | Описание |
|---|---|---|
| `derived_from` | Есть upstream-документ | Прямые upstream-зависимости. Каждый элемент — строка (путь) или объект `{path, fit}`, где `fit` объясняет scope зависимости |
| `delivery_status` | Lifecycle-owning canonical `brief.md` | `planned` / `in_progress` / `done` / `cancelled` |
| `research_status` | Lifecycle-owning canonical research `brief.md` | `intake` / `framed` / `collecting` / `synthesizing` / `decision_ready` / `validated` / `invalidated` / `inconclusive` / `parked` / `cancelled` / `rerouted` |
| `decision_status` | ADR-документы | `proposed` / `accepted` / `superseded` / `rejected` |

## Дополнительные поля

| Поле | Тип | Описание |
|---|---|---|
| `audience` | enum | `humans` / `humans_and_agents`; отсутствие означает, что граница явно не объявлена |

`audience: humans` отмечает документ, содержимое которого предназначено для
прямого использования человеком или внешним runner. Документ с
`audience: humans_and_agents` не может объявлять такой документ своим semantic
upstream через `derived_from`. Обычная ссылка из index нужна только для
навигации и не создаёт semantic dependency.

Отсутствующий `audience` сохраняет совместимость существующих downstream
документов: это правило не выводит значение из расположения, `doc_kind` или
`doc_function` и устанавливает audience boundary только между двумя явно
объявленными сторонами. Если поле присутствует, его значение должно
принадлежать этому enum.

Governed-документы могут содержать другие дополнительные поля, не описанные в
этой schema. Они не требуют регистрации здесь и интерпретируются на уровне
конкретного `doc_kind` или flow.

Для `doc_kind: feature` lifecycle owner-ом остается canonical `brief.md` problem-space документа. Feature-level `README.md`, conditional `design.md` и `implementation-plan.md` используют тот же `doc_kind`, но не обязаны иметь `delivery_status`, если сами не владеют delivery lifecycle.

Для `doc_kind: feature-support` документ является reference / companion внутри feature package и не владеет `delivery_status`, canonical requirements, selected solution или execution sequencing.

Для `doc_kind: research` lifecycle owner-ом остается canonical `brief.md` research package. Его `research_status` описывает состояние исследования, включая terminal disposition, а не delivery. `plan.md`, `evidence.md`, `synthesis.md` и `decision.md` являются отдельными owner-ами метода, наблюдений, выводов, decision rationale и handoff; ни один из них не создаёт второй lifecycle state и не заменяет canonical downstream PRD, epic, feature, ADR или product document после handoff.

## Примеры

```yaml
---
derived_from:
- ../../product/context.md
status: active
delivery_status: planned
---
```

```yaml
---
derived_from:
- ../brief.md
- path: ../../../adr/ADR-001-model-stack.md
fit: "используются только выбранные модели и VRAM constraints"
status: active
---
```
34 changes: 34 additions & 0 deletions memory-bank/dna/governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
---
doc_kind: governance
doc_function: canonical
purpose: SSoT implementation и правила dependency tree. Отвечает на вопрос — кто владеет каким фактом.
derived_from:
- principles.md
status: active
---
# Document Governance

`Governed document` — markdown-файл в `memory-bank/` с валидным YAML frontmatter. Принцип SSoT определён в [principles.md](principles.md). Этот документ описывает механизм его исполнения.

## SSoT Implementation

1. Authoritative только `active`-документы. `draft` не переопределяет `active`.
2. Среди допустимых по status побеждает upstream: сначала `canonical_for`, затем dependency tree.
3. Публикационный статус (`status`) отделён от lifecycle сущности (`delivery_status`, `decision_status`).

## Source Dependency Tree

1. Поле `derived_from` перечисляет прямые upstream-документы. Authority течёт upstream → downstream.
2. Корневой документ — `principles.md`, не имеет `derived_from`. Для каждого `active` non-root документа `derived_from` обязательно.
3. Циклические зависимости запрещены. Изменение upstream может потребовать обновления downstream.

## Governance-specific Frontmatter Fields

Governance-документы (DNA, flows) используют дополнительные поля, не входящие в общую schema (`frontmatter.md`):

| Поле | Значения | Назначение |
|-|-|-|
| `doc_kind` | `governance`, `project`, `product`, `domain`, `prd`, `research`, `use_case`, `epic`, `feature`, `feature-support`, `engineering`, `ops`, `adr`, `prompt`, `process` | Тип документа или артефакта |
| `doc_function` | `canonical`, `index`, `template`, `derived`, `reference`, `convention`, `roadmap`, `decision_log`, `subissue_registry`, `risk_register` | Роль: canonical owner факта, навигационный индекс, шаблон, downstream artifact, reference companion, convention или specialized epic owner |

Эти поля обязательны для governance-документов и рекомендуются для product/domain/ops/engineering/project документов, чтобы агенты могли различать слой знания и роль файла.
27 changes: 27 additions & 0 deletions memory-bank/dna/lifecycle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
doc_kind: governance
doc_function: canonical
purpose: Maintenance rules и sync checklist для governed-документов.
derived_from:
- governance.md
status: active
---
# Document Lifecycle

Правила, обеспечивающие consistency governed-документации при изменениях.

## Maintenance Rules

1. **Upstream first.** Меняешь факт — сначала найди и обнови canonical owner.
2. **Downstream sync.** После изменения upstream проверь `derived_from`-зависимых.
3. **README sync.** Добавлен/удалён/переименован документ — обнови parent README.
4. **Конфликт = дефект.** Расхождение внутри authoritative set устраняется сразу.
5. **Conflict = report, not fix.** Агент, обнаруживший расхождение при чтении, фиксирует его как finding и сообщает человеку. Самостоятельное исправление — только если текущая задача явно требует изменения этого документа.

## Sync Checklist

Перед фиксацией изменений в governed-документации:

- [ ] frontmatter валиден, для `active` non-root задан `derived_from`
- [ ] для lifecycle-owning feature `brief.md` задан `delivery_status`, для lifecycle-owning research `brief.md` — `research_status`, для `adr` — `decision_status`
- [ ] parent `README.md` обновлён при изменении состава или reading order
Loading
Loading