Перейти к содержанию

Приложение D. Файлы памяти: структура и шаблоны

Память — это папка с файлами под git. Узел знания — файл с YAML-шапкой (frontmatter) и текстом. Ссылки между узлами пишутся только полями шапки; ссылка на несуществующий node_id роняет проверку целостности.

Где что лежит

Названия слоёв в тексте методологии (раздел 14) — концептуальные. В стартовом репозитории poh-cortex они реализованы так:

Слой в тексте В poh-cortex Заметка
rules/ladder.md GROUND/SCHEMA/ladder.yaml Лестница
rules/gates.md GROUND/SCHEMA/gates.yaml Гейты
rules/decay.md GROUND/SCHEMA/profiles.yaml Сроки годности
— GROUND/SCHEMA/checks.yaml Жёсткость проверок: error / warn / off
— GROUND/SCHEMA/agents.yaml Классы агентов, зоны записи, never_delegated
— GROUND/SCHEMA/nodes.yaml, edges.yaml Типы узлов, обязательные поля, рёбра
nexus/ GROUND/NEXUS/<slug>/ + _registry.yaml Нексус — папка, узел — файл
evidence/ GROUND/DECIDE/evidence/ Только добавление
bets/ GROUND/DECIDE/bets/ Ставки
decisions/ GROUND/DECIDE/decisions/ Решения и калибровки
log/ GROUND/DECIDE/log/ Наблюдения без артефакта; на CP не влияют
inbox.md GROUND/_intake/inbox.md, _intake/hermes/, _intake/chats/ Единственная зона записи сборщиков
— GROUND/PULSE/{summaries,daybook,radar}/ Операционный след: встречи, дни, радары
— GROUND/_index/packs/<профиль>.md Производный срез памяти под профиль
хребет OKR ROADMAP/kr-epic-map.md KR → ставка → эпик

Узел

Обязательные поля: nexus, node_id (латиница, нижний регистр, стабилен навсегда), node_type, kind (normative | empirical), owner, sources (непустой; пустой источник — «workslop»), updated, ripeness (вычисляется командой refresh).

Поля смысла: cp (2–9), confidence (производное), change_rate, scope (org | team:<имя> | product:<имя> | personal), captured_by (human, claude-code, skill:<имя>, hermes:<бот>), ttl_days, status (draft | accepted | rejected — запись агента остаётся черновиком до приёмки), shared_with, aliases, disputed, contradicts, outcome, stage, non_critical.

Тип узла определяет дополнительные обязательные поля: у dependency обязательны ещё owner и channel. Всего в каталоге типов 38: каркас, ось ценности, хребет (цель, KR, эпик, задача), корпоративные (система, интеграция, зависимость, процесс), люди и решения (человек, решение, риск, ставка, артефакт), операционка (эпизод, дневник, чат, канал).

Ставка

Шаблон лежит в GROUND/DECIDE/bets/_template.md.

node_id: bet-…
node_type: bet
owner: <человек>
gate: commit            # ключ из gates.yaml
stage: 4                # 1 идея · 2 потребность · 3 ценность · 4 решение · 5 онбординг · 6 бизнес-модель
threshold: 6
due: 2026-11-15
cp: 3
cp_history: ["w1:2", "w3:3"]
scope: team:платформа
impact_metric: "что должно измениться и на чём измеряется"
window: "когда результат нужен потребителю и почему"
satisfies: <KR>
depends_on: [<узлы>]
non_critical: []        # зависимости, не держащие потолок; причина — в «Слабом звене»
sources: [<файлы из evidence/>]
tracker: [KEY-1, KEY-2] # ключи задач; jira — синоним
outcome: met | missed   # заполняется при закрытии, вход калибровки

Тело: «Что должно быть правдой» (одно утверждение), «Слабое звено», «Что поднимет ступень» (минимальный артефакт: не поторопить, а получить), «Решение на гейте» (убить / донасытить / дать дату). Ставок на квартал — три–семь; меньше трёх — декомпозиция поверхностная. Для типа bet схема требует gate, due, cp.

stage выбирается по риску: потребность принёс потребитель — входите сразу на стадию 4 (раздел 10).

Артефакт (evidence)

Лежит в GROUND/DECIDE/evidence/ГГГГ-ММ-ДД-описание.md, неизменяем.

node_id: ev-…
date: 2026-09-17          # дата самого артефакта, не записи
author: <кто сказал>
authority: <владелец объекта, если не автор>
channel: email            # email | ticket | mr | ci | demo | oral | chat
ladder: 3
scope: "на каком объёме подтверждено"
link: <permalink>         # нужен человеку, не агенту
affects: <ставка или узел>

Разделы тела: «Цитата» и «Что это доказывает» (и чего не доказывает). Схема требует author, channel, scope, link.

Решение

GROUND/DECIDE/decisions/ГГГГ-ММ-ДД-….md: owner (человек, не агент), about, cp_at_decision, weeks_before_due («это и есть мера управляемости»), outcome. Разделы: что решили; на основании какого числа; какие варианты предлагались; чем закончилось. Пишите и неудачные решения: ранняя снятая дата сильнее героически вытянутого срока (П7).

Наблюдение

GROUND/DECIDE/log/ГГГГ-ММ.md — таблица «дата / узел или ставка / наблюдение». На уверенность не влияет. Сюда пишут человек и бот-наблюдатель.

Запись очереди

Три строки на запись; сюда вы кладёте цитату, а не дайджест переписки:

2026-09-17 | Петров, владелец системы «Расчёты» | slack: <permalink>
"объём подтвердим к концу недели, схему отдадим после"

Для крупной записи — файл с шапкой captured_by, date, author, authority (не владелец — ступень не выше 2), channel (устное и чат — потолок 3), link, about.

Эпизод встречи

GROUND/PULSE/summaries/ГГГГ-ММ-ДД-тема.md: «Решения», «Изменения контекста», «Открытые вопросы». Эпизод сам узлы не обновляет: решение попадает в память, когда узел правится явно и эпизод добавляется в его sources.

Кто может писать куда

Класс Куда пишет Режим
Человек Всё —
Детерминированный (claude-code, cortex) GROUND/NEXUS/**, DECIDE/**, PULSE/**, _intake/**, _index/**, ROADMAP/** Показывает, что запишет, и ждёт подтверждения. SCHEMA/ намеренно исключён
Куратор NEXUS, PULSE Только добавление
Сборщик (боты Hermes, шлюз мессенджеров) _intake/**, DECIDE/log/** Только добавление

Всё, что пишет агент, остаётся status: draft, пока человек не примет его командой приёмки. Никогда не делегируется: обещания наружу; изменение SCHEMA/**; отправка сообщений от имени человека; переговоры о датах и ёмкости; запись в NEXUS и DECIDE без подтверждения.

Защита линейки — договорная

Защита по полю captured_by самодекларируемая. Реальная защита лестницы от правки агентом на уровнях 0–1 — это исключение SCHEMA/ из зон записи и ваша дисциплина; технической блокировки (CODEOWNERS, защита веток) стоит ждать с уровня 2 (уровни зрелости).