diff --git a/README.md b/README.md index 660f737..55f287e 100644 --- a/README.md +++ b/README.md @@ -102,6 +102,11 @@ service setup-команды проекта; он намеренно не пер ### Методические источники +- [MECE principle](https://en.wikipedia.org/wiki/MECE_principle) — источник + правила для непересекающихся и совместно исчерпывающих закрытых + классификаций; +- [Markdown Architectural Decision Records (MADR)](https://adr.github.io/madr/) — + источник структуры и authoring guidance для локального ADR template; - Philippe Kruchten, [*Architectural Blueprints — The “4+1” View Model of Software Architecture*](https://arxiv.org/abs/2006.04975) — первичный источник stakeholder-oriented проверки Logical, Process, Development и Physical views через driving scenarios; [краткий обзор](https://en.wikipedia.org/wiki/4%2B1_architectural_view_model); - Nenad Medvidovic, Richard N. Taylor, [*A Classification and Comparison Framework for Software Architecture Description Languages*](https://ics.uci.edu/~taylor/documents/2000-ADLs-TSE.pdf) — источник архитектурной модели components, connectors и configurations. diff --git a/template/memory-bank/dna/principles.md b/template/memory-bank/dna/principles.md index cd57811..72659f0 100644 --- a/template/memory-bank/dna/principles.md +++ b/template/memory-bank/dna/principles.md @@ -7,11 +7,12 @@ status: active # Principles 1. **SSoT.** Каждый факт имеет ровно одного canonical owner. Дубли = дефект. -2. **Атомарность.** Один файл = одна тема. Разрастается — разбивай. -3. **Компактность.** Документ должен оставаться читаемым. Разрастается — разбивай. -4. **Progressive disclosure.** Сначала обзор, затем ссылки вглубь. Сверху вниз. -5. **WHY / WHAT / HOW.** `prd/`, `use-cases/` и feature `brief.md` = что; `adr/` и feature `design.md` = почему выбран подход; `implementation-plan.md` и код = как выполняем. -6. **Code vs Docs.** Код владеет реализацией. Документация владеет intent, rationale и contracts. -7. **Index-first.** Каждый документ в индексе. Orphan файл = дефект. -8. **Аннотированные ссылки.** Ссылка объясняет: что по ней и зачем читать. -9. Каждое архитектурное решение — отдельный ADR в выделенном разделе. +2. **MECE для закрытых классификаций.** Перед созданием sibling-категорий объяви классифицируемую область. Каждый объект этой области должен иметь ровно одну основную категорию. Пересечения разрешай через canonical ownership или явный precedence, а непокрытые случаи — через explicit fallback или Human Routing. Cross-references допустимы, duplicate ownership запрещён. Не применяй MECE к открытым спискам, ортогональным осям или dependency graph с несколькими обоснованными upstream. +3. **Атомарность.** Один файл = одна тема. Разрастается — разбивай. +4. **Компактность.** Документ должен оставаться читаемым. Разрастается — разбивай. +5. **Progressive disclosure.** Сначала обзор, затем ссылки вглубь. Сверху вниз. +6. **WHY / WHAT / HOW.** `prd/`, `use-cases/` и feature `brief.md` = что; `adr/` и feature `design.md` = почему выбран подход; `implementation-plan.md` и код = как выполняем. +7. **Code vs Docs.** Код владеет реализацией. Документация владеет intent, rationale и contracts. +8. **Index-first.** Каждый документ в индексе. Orphan файл = дефект. +9. **Аннотированные ссылки.** Ссылка объясняет: что по ней и зачем читать. +10. Каждое архитектурное решение — отдельный ADR в выделенном разделе.