Overview

MemoryCustodian v0.12.0 实施指南

Protocol 0.8:事务化治理、统一审计、Machine Contracts 与跨 Agent 一致性#

你正在继续修改已经完成以下版本的 MemoryCustodian:

  • v0.10 / Protocol 0.6
    • Entry ID、Evidence 与 Candidate admission
    • Unified project mutation guard、mutation lock 与 Plan ID
    • Trust boundary、privacy/security checks 与 ErasureScope
  • v0.11 / Protocol 0.7
    • Deterministic task/path/explicit routing
    • Complete read --explain 与 strict routing
    • Local overlay、root binding 与 shared/local precedence
    • Reachability、freshness 与 current-worktree conflict checks
    • Merge-aware read-only reconciliation review
    • Reconciliation record、Exception-To 与 Subject merge preview contracts
    • ID list/show/forget
    • Unified forgetting/history-inspection wording

本阶段不是发布 MemoryCustodian 1.0,而是在进入 1.0 决策前,对现有能力进行生产化加固。重点是:

  • 所有 multi-file mutation 的 crash recovery
  • 治理 resolution 的 transactional apply
  • 统一 audit finding model
  • 稳定的 Protocol 0.8 machine-readable output
  • staged canonical migration
  • cross-agent contract consistency

不要询问更多信息。先检查前两阶段是否完整实现。发现缺失时,应在本任务 Phase 0 补齐,不得绕过或降低验收标准。

目标版本:

  • Package version:0.12.0
  • Protocol version:0.8
  • Entry schema version:1
  • Subject schema version:1
  • Conflict schema version:1
  • Routing schema version:1(shared manifest,继承 Protocol 0.7)
  • Local overlay schema version:1(local manifest)
  • Transaction schema version:1(transaction journal)
  • Audit schema version:1(audit result child schema)
  • Output schema version:1(所有 public JSON envelope)
  • Erasure scope schema version:1erasure_scope object)

Schema authority:

Schema Authority and storage
Routing shared manifest.md
Local overlay repo-external local manifest.md
Transaction repo-external transaction journal
Output every --format json top-level envelope
Audit audit data/findings child object under output envelope
Erasure scope versioned erasure_scope child object

audit_schema_versionerasure_scope_schema_version 可以作为 output_schema_version: 1 下的 child version,不进入 shared manifest。

一、v0.12 版本目标与可验证能力#

MemoryCustodian v0.12 必须实现并通过仓库内测试、fixtures、audit 与文档证据验证以下能力。只有存在相应实现和验证证据时,README 与 release notes 才能陈述这些能力:

  1. Project memory 是 plain Markdown,repo-native,可审查、可 diff。
  2. Manifest 是运行时路由的唯一 shared authority。
  3. 相同 shared memory、canonical task、paths、explicit areas/rules/profiles 和 local mode 会产生确定的 shared context pack。
  4. Active memory 有稳定身份和可审查依据。
  5. Agent inference 不会静默升级为正式记忆。
  6. 多 agent 同时写入不会静默丢失更新。
  7. Preview 后内容变化会阻止旧计划被 Apply。
  8. 所有 multi-file mutation 发生进程崩溃后都可以检测,并在安全条件满足时 complete 或 rollback。
  9. Local preference 不会进入 shared repo。
  10. Forgetting 可以按完整语义单元或稳定 ID 执行。
  11. Hard forget 与 purge 不泄露被删除 topic。
  12. Memory 不会扩大 agent 权限。
  13. Protocol 0.5、0.6、0.7 项目存在明确迁移路径。
  14. 核心运行不依赖网络、数据库、embedding、daemon 或第三方 runtime package。
  15. Codex、Claude Code、Gemini 和 generic agent 使用同一协议与 context pack 规则。
  16. 每个 enabled module 都有唯一 module disposition;entry-level budget omission 使用独立 disposition。
  17. 缺少 routing scope 时不会静默声称 context pack 完整;strict routing 会阻止 substantial work。
  18. Active project-scoped hard constraints 在正常 substantial routes 中保持可达。
  19. 同一 structural conflict identity 不存在多个 unresolved active owners。
  20. Subject rename 不改变 identity;duplicate Canonical-Ref 与 alias ownership 可审计。
  21. Git 可用时,merge-aware audit 能将确定冲突与需要语义复核的并发 hard-memory changes 分开报告。
  22. 无法自动判定的异名同义问题不会被描述为已解决,而会产生显式 reconciliation requirement。
  23. Subject merge、supersede、promotion、exception、reconciliation、forget/purge、migration、compact、enable 与 local reset 等所有 multi-file mutation 具备 transaction protection。
  24. Soft/hard/purge、ID forget 和 local reset 具有统一、可机器读取的 erasure-scope contract。
  25. Git-history exposure inspection 的结果有稳定 status,但任何结果都不会被表述为对 forks、clones、backups 或 caches 的全局擦除证明。
  26. Transaction journal metadata、filenames、JSON、audit 和 error paths 不泄露 hard-forgotten topic; protected rollback backup bytes 可以短暂包含 pre-operation content,必须受限、不可进入 agent context, 并在 commit/rollback 后清理。
  27. 所有 adapters 对 forgetting boundary 使用相同语义和用户承诺。

不得宣称:

  • Memory 内容经过事实真实性证明。
  • CLI 可以理解任意语义。
  • CLI 可以发现所有自然语言矛盾。
  • 不同 Subject 名称一定表示不同概念。
  • 时间戳或最新 merge 自动决定有效条目。
  • Secret scanning 能检测所有 secrets。
  • Multi-file mutation 等同数据库 ACID transaction。
  • 所有 agent 都一定遵守 Skill。
  • 项目已经完成大规模 benchmark,除非仓库中确有相应证据。
  • Protocol 0.8 已冻结且不会继续调整。
  • v0.12 自动满足未来 1.0 的兼容性要求。
  • Entry schema、JSON schema 或 CLI contract 已获得长期 1.x 稳定性承诺。
  • 本版本本身等同于 1.0 release candidate,除非另有单独评估和决策。
  • Hard forget 或 purge 等同 complete erasure。
  • MemoryCustodian 会重写 Git history 或从 clones、forks、backups、caches 撤回内容。
  • no-reachable-copy-detected 证明不存在其他副本。
  • Local reset 会删除其他机器、同步目录或系统备份中的 local overlay。

v0.12 应被描述为:

A pre-1.0 reliability release focused on recovery, auditability, and cross-agent consistency.

或者:

The final major protocol-hardening stage before the 1.0 stabilization decision.


二、Protocol 0.8 Canonical Entry Contract#

2.1 强制结构化的文件#

以下 active memory 文件中的正式语义条目必须采用 canonical structured entry:

decisions.md
constraints.md
do-not-use.md
preferences.md
areas/*.md

以下文件不强制每段拥有 Entry ID:

brief.md
rules/*.md
profiles/*.md
manifest.md
changelog.md

理由:decision、constraint、preference、rejection 与 area facts 需要稳定身份;brief、rules、profiles 与 changelog 保持适合人工维护的连续文本。

2.2 Canonical metadata and typed body#

正式 entry 必须具有:

Entry ID
Status
Scope
Evidence
Typed body
Subject(managed decision/constraint/do-not-use/area hard memory)
Facet(managed decision/constraint/do-not-use/area hard memory)

Active managed files允许:

active
superseded

inbox.md 允许:

candidate
promoted

允许 Scope:

project
area:<slug>
local-user
local-machine

Shared active files 不能使用 local scopes;local overlay 不能使用 shared scopes。

Typed-body matrix:

Entry class Required typed body
MC-DEC Decision:
MC-CON Constraint:
MC-DNU Rejected:
MC-PREF Preference:
MC-INBOX Statement:
MC-TOMB Rejected:
area entry 使用原始 type-specific ID,或声明 Entry-Type 后使用对应 typed body

Protocol 0.8 推荐 area 文件继续使用 type-specific IDs,例如 MC-DECMC-CONMC-PREF。如果保留 MC-AREA,必须增加:

Entry-Type: decision | constraint | preference | do-not-use

并验证 typed body 与 Entry-Type 一致。

Parser 必须拒绝:

  • duplicate scalar fields
  • duplicate Evidence blocks
  • duplicate lifecycle/relation fields when scalar-only
  • missing or empty typed body
  • ID type、storage path、Entry-Type 与 typed body 不一致
  • Status 与 lifecycle fields 不相容
  • unknown mandatory-field spelling that would otherwise be silently ignored

2.3 Canonical Subject Contract#

规范 registry:

docs/memory/subjects.md

Subject unit 必须具有 Subject ID、Status、Kind、Evidence,并可具有 Canonical-Ref 与 Aliases。

允许 Subject Status:

active
merged

要求:

  • Entry 引用稳定 Subject ID,而不是 display name。
  • Rename 不改变 Subject ID。
  • Active Subject ID、normalized Canonical-Ref 与 normalized alias ownership 唯一。
  • merged Subject 必须有 Merged-Into,target 必须 active。
  • 不允许 Subject merge cycle。
  • Active managed entry 不得引用 merged Subject。
  • Registry 不进入普通 context pack,但属于 audit、migration、mutation 与 conflict analysis source of truth。
  • 不使用 fuzzy similarity 自动合并 Subject。
  • audit --subjects 列出无 Canonical-Ref 的 active custom Subjects作为 review inventory;不是错误。

Canonical Facet 是受控枚举。扩展枚举通过 Protocol migration 或规范性 extension,不由普通 entry 自由创建。

Structural conflict identity:

normalized Scope + Subject ID + Facet

同一 exact identity 最多一个 active owner。Project/area overlap 必须有合法 Exception-To,或保持 unresolved REVIEW/CONFLICT。

2.4 Conflict and reconciliation relations#

Entry conflict/reconciliation relations:

Exception-To
Reconciled-With  # derived/display convenience only when backed by a record

规范 reconciliation authority 是 Protocol 0.7 的独立:

docs/memory/reconciliations.md

Resolution 枚举:

distinct
superseded
exception
subject-merged

Subject registry relations独立为:

Merged-Into
Merged-From

要求:

  • distinct 引用 reviewer 明确认定为不同 invariant 的 entries。
  • superseded 与 Supersedes/Superseded-By 一致。
  • exception 与合法 Exception-To 一致。
  • subject-merged 与 Subject registry merge 一致。
  • Reconciliation record 可双向审计,带 admissible Evidence。
  • 不允许 relation cycle 或 prose-only acknowledgement。
  • 关系不能授权或提升权限。

2.5 Entry relations#

支持:

Supersedes
Superseded-By
Promoted-From
Promoted-To
Related
Exception-To

要求:

  • 所有 ID 引用存在,除非明确 external。
  • Supersedes 与 promotion relations 双向一致。
  • 不允许 cycle。
  • Exception-To 满足 scope/Subject/Facet contract。
  • Subject merge fields只解析 Subject ID,不得作为 Entry relation 接受。
  • check/audit 将断裂 relation 报 ERROR。
  • migrate 不自动猜测 relation。
  • forget preview 显示受影响 relation,但 hard/purge public output 不泄露 topic。

2.6 Legacy 内容#

Protocol 0.8 项目中:

  • Legacy entries 仍可被 reader 读取。
  • Active legacy memory 在 check/audit 中为 ERROR。
  • Reader 不因 legacy error 完全拒绝安全 baseline,除非无法保持 semantic boundary。
  • CLI 新写入永远不得创建 legacy entry。
  • Migration 使用 prepare/manual/finalize,不把未完成 canonicalization 的项目标为 fully compliant 0.8。

Release 前必须将仓库自身 dogfood memory、templates 与 examples 迁移至 canonical format。

三、Transaction Journal 与 Crash Recovery#

现有能力包括单文件 atomic replace、unified mutation guard、Plan ID 与 apply-time digest verification。Protocol 0.8 为所有 multi-file mutation增加 journal。

必须 transactional 的操作包括但不限于:

  • add when it also updates manifest/changelog
  • supersede
  • promote
  • Subject merge
  • reconciliation record mutation
  • adding/removing Exception-To
  • soft/hard/purge forget when more than one target changes
  • compact/archive
  • enable optional module
  • init --replace-existing
  • migration prepare/finalize/canonicalization
  • local reset
  • any canonicalization that changes Subject or relation references

如果一个命令最终只有一个 target,可以继续使用单文件 atomic replace;一旦 target count 大于一,必须进入 transaction engine。Release notes 不得将只覆盖 conflict-governance mutation 描述为所有 multi-file recovery。

3.1 Journal 位置与权限#

<state-root>/transactions/<project_id>/<transaction_id>/journal.json

同一 transaction directory包含 prepared outputs 与 backups。

要求:

  • transaction directory:POSIX 0700
  • journal、prepared、backup:POSIX 0600
  • filename 不包含 topic、message、title、Subject display name 或 secret preview
  • 不位于 repo、.git/ 或项目根目录
  • state paths 拒绝 symlink escape
  • 删除 temporary state 是 best-effort cleanup,不得描述为 cryptographic secure deletion

3.2 Transaction phases and target model#

固定 phases:

planned
prepared
committing
committed
recovering
rolled-back
failed

Journal target:

{
  "path": "docs/memory/decisions.md",
  "operation": "create | replace | delete",
  "base_exists": true,
  "base_digest": "...",
  "output_exists": true,
  "output_digest": "...",
  "original_mode": "0644",
  "backup_path": "targets/0001.backup",
  "prepared_path": "targets/0001.prepared",
  "replaced": false
}

必须区分“不存在”与“存在但为空”;不得用 empty-file digest 替代 existence state。

Journal top-level 至少包含:

{
  "transaction_schema_version": 1,
  "transaction_id": "opaque-random-id",
  "project_id": "...",
  "command": "generic-operation-type",
  "plan_id": "...",
  "phase": "prepared",
  "created_at": "RFC3339 UTC",
  "targets": []
}

3.3 Atomic journal update#

每次 phase 或 target progress 更新必须:

  1. 在 transaction directory 写同文件系统 temp。
  2. flush 与 best-effort fsync file。
  3. os.replace(temp, journal.json)
  4. best-effort fsync transaction directory。

不得原地覆盖 journal,因为 target replace 已完成而 journal progress 丢失会破坏 recovery 判断。

3.4 Apply 流程#

  1. 获取 permanent project mutation lock。
  2. 检查 unfinished transactions;存在时拒绝新 mutation。
  3. 在 lock 内重新构建与验证 Plan ID。
  4. 读取所有 targets,验证 existence、base digest、realpath 与 symlink safety。
  5. 在 state transaction directory 写 prepared outputs 与 backups。
  6. flush/fsync,写 atomic journal prepared
  7. 更新 journal 为 committing
  8. 以 canonical repo-relative path稳定排序提交 targets。
  9. 每个 target 在 target parent 创建 same-filesystem temp,写入 prepared bytes,preserve original mode or controlled new-file mode,flush/fsync,并以 os.replace() 提交。
  10. Delete operation 只在 current target仍与 base state一致时执行。
  11. 每提交一个 target,atomic 更新 journal replaced
  12. 所有 target 完成后验证 output existence/digest。
  13. 更新 journal 为 committed
  14. 清理 prepared 与 backups。
  15. 保留最小 generic completion record或安全删除 transaction directory。

State-root prepared file不得直接 rename 到 repo target,因为二者可能位于不同 filesystem。

3.5 Recovery#

提供:

memory-custodian recover
memory-custodian recover --complete
memory-custodian recover --rollback

要求:

  • analysis 与 apply 都先获取同一 permanent project lock。
  • recovery 期间拒绝任何新 mutation。
  • 多个 unfinished transactions 时不自动选择,输出 inventory 与 manual selection requirement。
  • newer unsupported transaction schema 为 BLOCKER。
  • malformed journal 不被忽略。

默认 recover 只分析,不写入。

--complete 允许条件:

  • 未替换 target 仍与 base existence/digest 一致。
  • 已替换 target 与 expected output existence/digest 一致。
  • prepared outputs完整。
  • target realpaths 未改变且不存在 symlink replacement。

--rollback 规则:

  • replace:当前 target仍等于 transaction output时,恢复 backup。
  • create:当前 target仍等于 output时,删除该新文件。
  • delete:target仍不存在时,从 backup恢复。
  • 任何外部修改都会阻止自动覆盖。

complete 与 rollback 都不安全时:

  • 报告 manual recovery required。
  • 不覆盖任何文件。
  • 只输出 repo-relative path、digests、existence state 与 generic operation type。
  • hard/purge 不显示 topic。

3.6 Crash tests#

Failpoints:

after-journal-prepared
after-first-replace
after-each-replace
before-committed
after-committed-before-cleanup

测试必须证明:

  • 下一命令检测 unfinished transaction。
  • 不继续新 mutation。
  • create/replace/delete 都能安全 complete 或 rollback。
  • 外部 edit、mode change、symlink replacement 时不会覆盖。
  • Journal metadata、filenames 与 diagnostics 不泄露 hard-forgotten topic。
  • Committed-but-not-cleaned transaction 可安全 finalize。
  • Journal update 本身崩溃后仍可判定安全状态。

Failpoint 仅用于测试或显式开发环境。

四、Unified Erasure Contract#

Protocol 0.8 将 v0.10–v0.11 的 deletion boundary 固化为统一 public contract。该 contract 适用于:

soft forget
hard forget
purge
forget --id
local reset
recovery of an interrupted forgetting transaction

4.1 Canonical ErasureScope model#

固定字段:

{
  "active_memory": true,
  "managed_archive": false,
  "local_overlay": false,
  "git_worktree_modified": true,
  "git_history_modified": false,
  "distributed_copies_revoked": false,
  "history_check_status": "not-requested"
}

要求:

  • 字段不得省略;不适用时使用 documented enum,而不是模糊 null。
  • active_memorymanaged_archivelocal_overlay 只表示 MemoryCustodian 本次管理和修改的 scope。
  • git_worktree_modified 表示 managed files 在 working tree 中发生变化,不表示已 commit。
  • git_history_modified 在 v0.12 所有正常 forgetting/local-reset 操作中固定为 false。
  • distributed_copies_revoked 固定为 false。
  • CLI 不提供绕过 preview 的 history-rewrite shortcut。
  • 对 hard forget/purge,result 不包含原始敏感 topic;使用 Entry ID、generic unit reference、counts 或 redacted operation type。

4.2 History check status#

固定 enum:

not-requested
unavailable
reachable-copy-detected
no-reachable-copy-detected

要求:

  • unavailable 不等于 PASS。
  • reachable-copy-detected 表示当前可检查 repository history 中仍存在先前 committed copy。
  • no-reachable-copy-detected 只描述本次 bounded inspection;不得推断 dangling objects、other refs、remote copies、clones、forks、backups、caches 或 exported artifacts 不存在副本。
  • Git-derived path、ref 和 digest 可以输出,但不得为了报告 hard-forgotten content 而重复敏感 topic。
  • 相同 Git graph 和 parameters 必须产生确定 status。
  • Git 不可用时核心 forgetting 仍可工作,但 output 必须明确 history 未检查。

4.3 Transaction-state privacy#

Forgetting transaction 的 journal、prepared output、backup 与 recovery 必须满足:

  • Journal 只记录 generic operation type、target path、digests、Entry ID 或 redacted unit reference。
  • Journal 不保存 topic string、完整 removed body、secret preview 或可逆编码的敏感内容。
  • Prepared output 与 rollback backup 只在 0700 的受控 state transaction directory 中存在,文件使用 0600,filename 不包含 topic。
  • Rollback backup 必然可能包含完整 pre-operation bytes,包括被忘记的 topic;这是恢复能力与 pre-state confidentiality 的物理边界,不得声称 backup content 不含 topic。
  • Backup 不进入 reader、audit payload、JSON、error output 或 agent context。
  • Recovery complete/rollback 后必须按 transaction policy 清理 temporary prepared files 与 backups。
  • Crash 后遗留的 transaction state 必须由 audit --transactions 检测;不得静默长期保留。
  • Backup 是 crash recovery mechanism,不是 archive;不能被 reader 或 agent context loading 使用。
  • 即使 managed transaction state 被清理,也不得声称 Git history 或 distributed copies 已被清除。

4.4 Erasure audit findings#

统一 audit 增加:

MC-ERASURE-001  Output claims broader erasure than performed
MC-ERASURE-002  Git history inspection unavailable
MC-ERASURE-003  Reachable historical copy detected
MC-ERASURE-004  No reachable copy detected; external copies unverified
MC-ERASURE-005  Forgotten topic leaked into journal, backup metadata, JSON or error output
MC-ERASURE-006  Local reset scope exceeds current machine/project overlay
MC-ERASURE-007  Sensitive repo memory should be minimized or moved to a controlled source

Severity:

  • broader-erasure false claim:ERROR。
  • forgotten topic leakage:BLOCKER。
  • unsafe local reset scope:BLOCKER。
  • reachable historical copy:WARNING/REVIEW;不阻止 managed-memory removal,但要求准确提示。
  • inspection unavailable:INFO/REVIEW,不能显示 PASS。
  • sensitive raw content finding:WARNING/ERROR,按 security pattern 与 policy 决定。

4.5 Documentation language#

规范性定义固定为:

Forgetting controls what remains available to future agents through MemoryCustodian. It is not a guarantee of erasure from Git history or previously distributed copies.

允许:

Removed from managed active memory.
Purged from managed active memory and managed archive.
Git history was not modified.
Previously distributed copies remain outside MemoryCustodian control.

禁止:

Permanently deleted everywhere.
Completely erased from the repository.
No copies remain.
Removed from all clones and forks.

五、统一 Audit 与检查层次#

Protocol 0.8 引入正式:

memory-custodian audit

但必须区分三个层次,不能把项目状态、某次 read invocation 与 MemoryCustodian 源码仓库静态检查混为一体。

5.1 Project audit#

普通:

memory-custodian audit

检查项目持久状态:

routing configuration
reachability
evidence
relations
subjects
current conflicts
erasure policy state
budgets
local overlay state
transactions

支持:

--routing
--reachability
--freshness
--evidence
--privacy
--security
--relations
--subjects
--conflicts
--merge-base <ref>
--budgets
--local
--transactions
--erasure
--history-exposure
--all
--format text
--format json

无 task/path 输入的 project audit 不输出某次 invocation 的 Routing completeness;它输出 routing configuration validity、substantial-route coverage 与 unreachable hard constraints。

5.2 Invocation audit#

某次 context pack 的 COMPLETE/INCOMPLETE/AMBIGUOUS/INVALID 主要由:

memory-custodian read --task ... --path ... --explain

产生。也可以提供:

memory-custodian audit --routing-input \
  --task implementation \
  --path cli/memory_custodian/read.py

该模式必须直接复用 read routing result model,不能重新实现第二套路由。

5.3 Repository contract checks#

以下属于 MemoryCustodian 源码仓库 CI scripts,而不是普通用户项目 audit:

adapter embeds a second routing table
README/Skill contains false complete-erasure wording
version metadata drift
reference links or normative contracts drift

推荐 scripts:

python scripts/check-adapter-contracts.py
python scripts/check-erasure-language.py
python scripts/check-version.py

5.4 Finding model、status 与 exit code#

固定 severity:

INFO
WARNING
ERROR
BLOCKER

固定 status mapping:

only INFO findings                         -> PASS
one or more WARNING, no ERROR/BLOCKER       -> REVIEW
one or more ERROR or BLOCKER                -> FAIL

Exit code:

0  PASS or REVIEW
1  FAIL caused by one or more ERROR findings
2  FAIL caused by BLOCKER or fatal invocation/runtime error
  • Optional Git unavailable 是 INFO/WARNING review state,不是 fatal runtime error。
  • Unsupported transaction schema 是 BLOCKER。
  • Invalid command arguments 或 malformed output request 是 exit 2。
  • Project policy 可以将特定 WARNING 提升为 CI error,但 core status model保持稳定。

每条 finding 至少包含:

{
  "code": "MC-EVIDENCE-001",
  "severity": "ERROR",
  "path": "docs/memory/decisions.md",
  "entry_id": "MC-DEC-...",
  "message": "Active entry has no admissible evidence.",
  "remediation": "Add user-confirmed or source-backed evidence."
}

要求:

  • Finding code稳定。
  • Text 与 JSON来自同一 internal finding model。
  • Path repo-relative POSIX。
  • 不在 JSON、message 或 remediation 中泄露 secret/topic。
  • History inspection unavailable不得渲染为 PASS evidence。

5.5 Core finding namespaces#

Routing/reachability:

MC-ROUTING-001  Missing canonical route
MC-ROUTING-002  Enabled module has no activation path
MC-ROUTING-003  Invocation omitted required scope input
MC-ROUTING-004  Ambiguous route invocation
MC-ROUTING-005  Required module missing
MC-ROUTING-006  Unreachable active entry
MC-ROUTING-007  Unreachable active hard constraint

Subject/conflict:

MC-SUBJECT-001   Duplicate active Subject ID
MC-SUBJECT-002   Duplicate normalized Canonical-Ref
MC-SUBJECT-003   Alias owned by multiple active Subjects
MC-SUBJECT-004   Active entry references missing Subject
MC-SUBJECT-005   Active entry references merged Subject
MC-SUBJECT-006   Invalid Subject merge relation
 
MC-CONFLICT-001  Multiple active owners for exact Scope+Subject+Facet
MC-CONFLICT-002  Project/area overlap lacks valid Exception-To
MC-CONFLICT-003  Invalid exception scope or target
MC-CONFLICT-004  Reconciliation record inconsistent
MC-CONFLICT-005  Concurrent branches created colliding Subject identities
MC-CONFLICT-006  Concurrent hard-memory changes require semantic reconciliation
MC-CONFLICT-007  Branch extends an entry superseded on the other side
MC-CONFLICT-008  Subject merged on one side but referenced on the other

Erasure 与 transaction findings沿用第四节与 transaction policy。

5.6 Audit summary#

Project audit summary 示例:

Protocol: 0.8
Project ID: ...
Routing configuration: VALID / INVALID
Substantial routes checked: ...
Unreachable hard constraints: ...
Shared entries: active / superseded / legacy
Candidates: pending
Local overlay: disabled / bound / unbound / review
Evidence coverage: ...
Subjects and relations: ...
Current conflict status: CLEAR / REVIEW / CONFLICT / INVALID
Budgets: ...
Transactions: clean / recovery required
Erasure policy: bounded; Git history and distributed copies unchanged

Invocation completeness只在提供具体 routing inputs 时进入 summary。

六、统一 Machine-readable CLI 输出#

为主要只读命令与所有 preview 增加:

--format text
--format json

--json 可作为 convenience alias,但 public contract、help、fixtures 与 docs 统一使用 --format

6.1 Public JSON envelope#

所有 JSON 使用:

{
  "output_schema_version": 1,
  "command": "audit",
  "protocol_version": "0.8",
  "status": "REVIEW",
  "exit_class": "success-with-review",
  "data": {},
  "findings": [],
  "disclaimers": []
}

要求:

  • stdout 仅输出一个 JSON document;环境/argument parser fatal errors 使用 stderr。
  • Domain validation failure在命令已进入 JSON mode 后仍输出合法 envelope,并使用 nonzero exit。
  • Repo-relative path 使用 /
  • Arrays 与 object-derived lists 使用稳定顺序。
  • Timestamp 使用 UTC RFC 3339。
  • 缺失 collection 使用空 array/object;只有规范明确允许时使用 null。
  • JSON schema 在 Protocol 0.8 / 0.12.x 生命周期内兼容,不承诺未来所有 1.x。

至少覆盖:status、check、audit、read、show、list、migrate preview、compact preview、forget preview 与 recover。

6.2 Internal execution plan、public plan 与 journal#

必须是三个不同 representation:

Internal execution plan
- may contain runtime selectors required to rebuild a mutation
- never serialized directly to public JSON
 
Public preview plan
- repo-relative paths
- no hard/purge raw topic
- opaque operation reference
- target existence/digests and bounded effects
 
Transaction journal
- generic command type
- opaque IDs
- target paths/existence/digests
- no user message/topic/title or secret preview

不得直接对 MutationPlan.canonical() 调用 JSON serialization作为 public output。

Hard/purge stale protection使用 target base/output digests、mode 与 opaque pending operation ID;不需要在 public Plan 中保留 raw topic-dependent fingerprint。

6.3 Context and audit JSON#

Context pack data至少包含:

  • supplied/canonical task
  • normalized paths 与 explicit modules
  • routing completeness
  • module dispositions
  • entry dispositions
  • loaded/omitted Entry IDs
  • stable reason codes
  • budgets
  • shared/local distinction
  • rendered context text
  • conflict status and identities
  • Subject IDs/Facets
  • optional merge-aware findings

Forgetting/local-reset/recovery result包含 versioned erasure_scope 与 bounded history_check_status

不得为写命令加入绕过 preview/confirm-plan/transaction 的 JSON shortcut。

七、跨 Agent 一致性#

7.1 Shared context contract#

相同输入包括:

shared memory contents
shared manifest
canonical task
normalized paths
explicit areas/rules/profiles
strict-routing mode
conflict policy
Subject registry and reconciliation records
local overlay contents and local manifest, or --no-local
optional merge-base Git graph
CLI version

必须产生:

  • 相同 loaded file/entry sets 与 order
  • 相同 skipped/missing/omitted sets
  • 相同 routing completeness 与 reason codes
  • UTF-8 LF normalization 后 byte-identical context text
  • 相同 current conflict status 与 structural findings
  • 相同 merge-aware findings for the same Git graph
  • 相同 ErasureScope、history status 与 boundary wording

要求:

  • 输出统一 \n,不保留未定义的平台换行差异。
  • Repo-relative path 使用 /
  • 排序不依赖 filesystem enumeration 或 Python hash randomization。
  • Glob、token estimate 与 budget calculation跨平台确定。
  • no path matchprofile not requestedtask mismatchscope missing 使用不同 reason code。
  • Enabled path-routed areas存在而无 path/explicit area时为 INCOMPLETE。
  • Strict routing 对 INCOMPLETE/AMBIGUOUS/INVALID 非零。
  • 不使用 “all relevant memory loaded” 或 “no semantic conflicts”。
  • Subject display-name changes不改变 identity/finding/order。

7.2 Adapters#

检查并统一 Codex、Claude Code、Gemini 与 generic instructions。

所有 adapter 只承担:

  1. 定位 MemoryCustodian。
  2. substantial work 前触发 manifest-first loading。
  3. 使用 canonical task。
  4. implementation/debug/review 前传递 touched paths;high-level planning 无 path 时传 explicit area,或接受 INCOMPLETE inspection。
  5. 必要时显式传 rules/profiles。
  6. 检查 routing completeness,并在 strict failure 时停止 substantive modification。
  7. 遵守 trust boundary。
  8. meaningful decision 后提出或执行 memory update。
  9. 不直接加载整个 docs/memory/、archive 或 inbox。
  10. 创建 managed hard memory 前复用 Subject ID。
  11. substantial work 前阻止 deterministic current conflict。
  12. merge/rebase workflow 中运行 merge-aware audit/check。
  13. REVIEW 只通过 distinct、supersede、exception 或 subject-merge transaction消除。
  14. 不根据 timestamp、file order 或 Evidence count选择 winner。
  15. 对 forgetting/local reset 使用 canonical ErasureScope 与 caveats。
  16. History-check unavailable 或 bounded no-match使用准确解释。
  17. 不自行实现 routing、Subject、conflict 或 erasure logic。

7.3 Agent contract fixtures#

建立:

evals/memory-custodian/cross-agent/

每个 scenario包含 project files、manifest、memory、local mode、task、paths、expected module/entry dispositions、reason codes、completeness、warnings、context hash、Subject identities、conflict findings 与可选 merge-base fixture。

Static checker 验证 adapter 不偏离 protocol。可以保留少量 documented live evaluation,但网络或真实 agent runtime 不成为 CI 必需条件。

八、协议迁移#

支持 0.5、0.6、0.7 进入 staged Protocol 0.8 migration。

8.1 Prepare#

memory-custodian migrate --prepare

要求:

  • 使用独立 Prepare Plan ID 与独立 transaction。
  • 保持原 protocol version,不写入表示 0.8 compliance 的 shared metadata。
  • Migration state存放在 repo 外 state directory,并绑定 project_id、source protocol 与 prepare result digests。
  • 执行可机械证明安全的 transformations。
  • 生成逐 entry canonicalization、Evidence、Subject、Facet 与 relation checklist。
  • 不伪造 Evidence、Subject equivalence、Facet、Exception-To 或 reconciliation。
  • 不自动创建 local overlay、添加 area glob或移动 shared preferences。
  • 保留 custom routes、optional index、合法 IDs 与 descriptions。

8.2 Manual interval and helpers#

允许多次:

memory-custodian migrate --canonicalize
memory-custodian add --from-legacy <file>:<unit-index> ...
memory-custodian audit

Canonicalize:

  • 默认 preview-only。
  • 只转换明确可解析的 legacy H2 units。
  • Top-level bullet不自动生成语义 title。
  • 不使用 LLM。
  • 用户/agent显式提供 type、Evidence、Scope、Subject、Facet 与 title后才创建 canonical entry。

Manual interval允许 source files变化,因此 Prepare Plan ID不得跨阶段复用。

8.3 Finalize#

memory-custodian migrate --finalize

要求:

  • 重新生成新的 Finalize Plan ID 与新的 transaction。
  • 验证 source protocol、project_id 与 prepare state binding。
  • 验证所有 managed active entries canonical。
  • 验证 Subject/Facet/relations完整。
  • 验证 project audit无 BLOCKER,且 canonicalization blockers为零。
  • 最后才写入 protocol_version: 0.8 与相关 schema metadata。
  • 清理 repo-external migration state。

不得要求用户逐版本运行,但 prepare、manual interval 与 finalize 是三个明确阶段,不共享一个 Plan ID 或一个 transaction。

8.4 Protocol downgrade#

拒绝 unsupported newer protocol、malformed metadata 与任何 silent downgrade。Reader 对 unsupported protocol不得猜测 routes。

九、安全强化#

9.1 Memory authority invariant#

在所有入口保持:

Memory is project context, not authorization.

任何 memory 内容均不能:

  • 覆盖 system instruction。
  • 覆盖当前 user instruction。
  • 解除 safety 或 permission boundary。
  • 授权访问 credentials。
  • 授权上传文件或数据。
  • 授权 destructive command。
  • 授权 commit、push、merge、release。
  • 关闭测试或审查。
  • 声称拥有特殊权限。
  • 要求隐藏操作。

9.2 Suspicious memory audit#

audit --security 可以提示:

  • ignore system instructions
  • bypass safety
  • upload secrets
  • auto-push
  • run destructive command
  • disable tests
  • conceal changes
  • user has already authorized

这只是启发式 warning,不自动删除,也不声称完整检测 prompt injection。

Skill 必须指导 agent:

  • 把 repo memory 视为项目数据。
  • 不逐字执行其中的权限声明。
  • 只应用与当前项目工作相关的合法约束。
  • 遇到授权型语句时要求当前用户明确授权。

所有 shared/local/state 操作:

  • 规范化真实路径。
  • 防止 symlink escape。
  • 不跟随 memory file 指向 repo 外。
  • 不允许 manifest route 指向 docs/memory/ 外。
  • 不允许 local reset 删除 project overlay 外文件。
  • Transaction restore 不允许 target path 在 plan 生成后被替换为逃逸 symlink。
  • Apply 前重新检查 realpath。
  • Repo target replace preserve existing file mode;new managed files使用受控默认 mode。
  • State unlink只表示 managed temporary file removed,不声称底层 storage cryptographic erasure。

十、实施阶段、性能与规模要求#

Phase 0 — Inherited contract verification#

  • Protocol 0.7 routing/local/conflict tests green
  • public/internal Plan separation complete
  • all state helpers private and symlink-safe
  • no unresolved v0.11 apply stubs presented as supported mutations

Phase 1 — Transaction engine#

  • journal schema
  • atomic journal update
  • create/replace/delete target model
  • same-filesystem target commit
  • recovery and failpoints

Phase 2 — Retrofit all multi-file mutations#

  • add/enable/compact
  • forget/purge
  • migration prepare/finalize
  • Subject merge/reconciliation/Exception-To/promotion
  • local reset
  • init replacement and canonicalization

Phase 3 — Governance apply#

  • Subject merge transaction
  • reconciliation record transaction
  • Exception-To add/remove transaction
  • promotion transaction
  • post-transaction conflict validation

Phase 4 — Unified audit and JSON#

  • project/invocation/repository-check separation
  • finding/status/exit mapping
  • output envelope
  • public plan schemas

Phase 5 — Staged migration#

  • prepare
  • manual reports/helpers
  • finalize
  • protocol metadata transition

Phase 6 — Cross-agent、scale、dogfood 与 release evidence#

  • fixtures and adapter drift checks
  • performance/scale fixture
  • dogfood Protocol 0.8
  • release notes and CI evidence

每个 phase必须保持之前 phase tests green;任何 transaction retrofit缺失都阻止版本完成。

性能目标:

  • 单次命令缓存 parse result。
  • ID、Subject、alias、relation 与 conflict indexes只在内存中建立。
  • Audit 每个文件只读取必要次数。
  • 不引入 persistent hidden index或 database。
  • 文件系统仍是 source of truth。

规模 fixture:

  • 500 active entries
  • 500 candidates
  • 500 archived entries
  • 50 areas
  • 100 Evidence refs

测试不设置脆弱毫秒阈值,但防止明显 O(n²) relation lookup。

十一、测试矩阵#

11.1 Python 与 OS#

CI 至少覆盖:

  • Python 3.10
  • 当前主要 Python 版本
  • Ubuntu
  • Windows smoke
  • macOS 可使用 GitHub Actions 条件允许时加入;若不加入,必须保证 path tests 覆盖 macOS semantics

11.2 Core protocol#

覆盖:

  • Canonical entry parse/write。
  • Legacy parse。
  • Relation integrity。
  • Subject registry integrity。
  • Canonical-Ref and alias uniqueness。
  • Facet validation。
  • Structural conflict ownership。
  • Exception-To validation。
  • Reconciliation validation。
  • Subject merge。
  • Merge-aware review。
  • Evidence admission。
  • Candidate promotion。
  • Supersede。
  • ID forget。
  • Soft/hard/purge。
  • Canonical ErasureScope。
  • Optional Git history exposure inspection。
  • Local reset erasure boundary。
  • Anti-resurrection。
  • Area routing。
  • Global hard-constraint baseline。
  • Routing completeness。
  • Strict routing。
  • Full enabled-module disposition。
  • Stable routing reason codes。
  • Local precedence。
  • Budget packing。
  • Explain。
  • Public JSON envelope、stable ordering 与 internal/public Plan separation。
  • Staged migration prepare/manual/finalize with separate Plan IDs and transactions。

11.3 Transaction recovery#

覆盖全部 failpoints:

  • prepared before replace
  • first target replaced
  • middle target replaced
  • all replaced before committed
  • committed before cleanup
  • backup missing
  • prepared output missing
  • external edit after crash
  • lock left behind
  • journal malformed
  • newer unsupported journal schema
  • atomic journal update interrupted
  • create/delete rollback semantics
  • file mode preservation

11.4 Cross-agent contract#

每个 fixture 验证:

  • expected file set
  • expected skipped module set
  • expected entry set
  • expected order
  • expected routing completeness
  • expected stable reason codes
  • expected reasons
  • expected warnings
  • expected context hash
  • expected Subject IDs
  • expected conflict status
  • expected conflict and reconciliation findings

Adapter drift checker 确保:

  • Codex、Claude、Gemini 不内置另一套路由。
  • 所有 adapter 指向 manifest-first workflow。
  • 所有 adapter 含 trust boundary。
  • 所有 adapter 不自动加载 archive/inbox。

11.5 Privacy 与 security#

覆盖:

  • private key redaction
  • token redaction
  • machine paths
  • URL credentials
  • suspicious authorization text
  • hard forget journal privacy
  • purge JSON output privacy
  • local overlay secret rejection
  • symlink escape
  • transaction target replacement attack
  • hard-forget subject metadata leakage
  • merge-base output privacy
  • committed historical copy remains detectable after hard forget
  • purge removes managed archive but not Git history
  • Git unavailable produces unavailable, not PASS
  • no-reachable-copy-detected retains external-copy disclaimer
  • local reset does not affect another-machine fixture
  • false complete-erasure wording is rejected
  • transaction backup metadata and filenames do not leak forgotten topic; protected backup bytes are never emitted

11.6 Migration fixtures#

至少:

  • clean 0.5 project
  • heavily customized 0.5 manifest
  • 0.6 evidence project
  • 0.7 local-overlay and conflict-governance project
  • legacy bullet-heavy project
  • corrupted metadata
  • newer protocol
  • archived tombstones
  • incomplete transaction during migration
  • duplicate Subject registry
  • duplicate structural owner
  • unresolved project/area exception
  • cross-branch custom Subject creation fixture

十二、v0.12 文档结构#

README 应保持产品导向和简洁,不把所有协议细节堆入首页。

README 包含:

  • Product promise
  • Why
  • Quickstart
  • How routing works
  • Evidence-backed memory
  • Shared vs local
  • Safe update and forgetting
  • Erasure boundary: managed memory vs Git history and distributed copies
  • Core CLI recipes
  • Supported agents
  • v0.12 verified capabilities
  • Pre-1.0 status and non-guarantees
  • Non-goals
  • Structural conflict detection limitations
  • Merge-aware reconciliation and why it is not a semantic theorem prover
  • Links to detailed references

详细内容放入 references:

memory-file-protocol.md
manifest-policy.md
admission-policy.md
entry-schema.md
local-overlay-policy.md
routing-policy.md
subject-identity-policy.md
conflict-reconciliation-policy.md
transaction-policy.md
erasure-boundary.md
quality-audit.md
forgetting-policy.md
security-boundary.md
migration-policy.md
examples.md

如果当前 references 命名不同,可以合理重组,但必须:

  • 更新所有内部链接。
  • 避免重复定义。
  • 明确哪个文件是规范性定义。
  • README、Skill 和 examples 不得形成冲突的第二协议。

12.1 Normative language#

协议文档使用:

  • MUST
  • MUST NOT
  • SHOULD
  • MAY

Skill 使用对 agent 可执行的自然语言。

README 使用产品语言,不重复全部 MUST 级规则。


十三、Release 准备#

13.1 版本一致性#

检查并统一:

  • pyproject version
  • plugin metadata
  • marketplace metadata
  • Skill bundle metadata
  • README badge
  • release notes
  • package scripts
  • protocol metadata templates
  • dogfood manifest

增加 automated version drift check。

13.2 v0.12 Release Notes#

按以下类别记录:

  • Protocol hardening
  • Evidence and entry identity
  • Shared/local separation
  • Deterministic routing
  • Safe concurrency and recovery
  • Explainability and audit
  • Forgetting and privacy
  • Erasure scope and Git-history boundary
  • Migration
  • Cross-agent support
  • Subject identity and conflict governance
  • Merge-aware reconciliation
  • Compatibility and non-goals

不得夸大:

  • agent runtime test coverage
  • semantic correctness
  • security completeness
  • transaction guarantees
  • complete erasure
  • removal from Git history
  • revocation from clones, forks, backups or caches

13.3 Dogfood#

仓库自身 docs/memory/ 必须:

  • 使用 Protocol 0.8。
  • 有 project_id。
  • Active managed entries canonical。
  • 无 duplicate ID。
  • 无 duplicate active Subject ID。
  • 无 duplicate normalized Canonical-Ref。
  • 无 alias ownership collision。
  • 所有 managed hard-memory entries 有合法 Subject 与 Facet。
  • 无 multiple active structural owners。
  • project/area overlaps 有合法 Exception-To 或已完成 reconciliation。
  • 无 broken relation。
  • 无 active legacy entry。
  • Evidence coverage 可解释。
  • audit --all 不存在 ERROR/BLOCKER。
  • project policy 要求的 merge-aware fixtures 不存在 unresolved REVIEW。
  • manifest area index 与实际文件一致。
  • 所有 active project-scoped hard constraints 对 substantial routes 可达。
  • 每个 enabled module 的 route metadata 完整。
  • read --strict-routing --explain 对 dogfood fixtures 不产生未解释的 INCOMPLETE。
  • brief 仍是项目内容,不是 protocol boilerplate。
  • budgets 健康。
  • forgetting fixtures 的 output 与 JSON 都包含 canonical erasure scope。
  • dogfood docs 不使用 complete-erasure language。

十四、后续 1.0 决策边界#

完成 v0.12 不代表自动进入 1.0.0 / Protocol 1.0

是否进入 1.0 必须在独立阶段重新评估,至少依据:

  • v0.12 在真实项目中的迁移结果。
  • Transaction recovery 与 crash tests 的稳定性。
  • Codex、Claude Code、Gemini 和 generic adapters 的一致性结果。
  • Protocol 0.8 schema 是否仍需要调整。
  • JSON 与 CLI contract 是否具备长期维护条件。
  • Local overlay、Evidence、relations 和 forgetting 的真实使用反馈。
  • Erasure-scope wording、history-inspection usefulness 与用户对边界的理解。
  • 是否存在阻碍长期兼容承诺的已知问题。

后续 1.0 应作为单独版本规划,不在本指南中预先冻结 schema,也不在 v0.12 release notes 中承诺 1.x 长期兼容。


十五、v0.12 Definition of Done#

只有满足以下全部条件才可标记 v0.12 完成:

Protocol#

  • Protocol version 为 0.8。
  • Canonical managed entry contract、typed-body matrix 与 area Entry-Type strategy已定义并验证。
  • Routing、local、transaction、output、audit 与 erasure-scope schema authorities明确。
  • Active managed decision、constraint、do-not-use 与 area hard-memory entries有合法 Subject/Facet。
  • subjects.mdreconciliations.md 是规范 shared authorities,但不进入普通 context pack。
  • Active legacy entry在 Protocol 0.8 项目中为 ERROR。
  • Reader仍安全读取 legacy projects。
  • 0.5/0.6/0.7 可进入 prepare;只有 canonical audit通过后 finalize为 0.8。
  • Prepare与Finalize使用不同 Plan IDs和transactions。
  • 不发生 protocol downgrade。

Reliability#

  • Concurrent writers不发生 silent lost update。
  • Stale Plan ID无写入。
  • 所有 multi-file mutations使用 transaction journal;不只覆盖 conflict governance。
  • Journal updates atomic。
  • Create/replace/delete均有 existence-aware recovery。
  • Crash后可检测 complete/rollback;不安全时不覆盖外部修改。
  • Recovery获取同一 permanent project lock并阻止新 mutation。
  • Transaction state不位于 repo,使用 private permissions。
  • Repo target使用 same-filesystem atomic replacement并 preserve file mode。

Memory quality and governance#

  • Active entry有 ID、Status、Scope、Evidence与合法 typed body。
  • Duplicate fields和invalid lifecycle被拒绝。
  • Agent inference只能 candidate;candidate不进入 normal context。
  • Relations、Subjects与 reconciliation records可审计。
  • Exact identity multiple owner至少 ERROR。
  • Project/area overlap无 Exception-To至少 REVIEW;影响安全 baseline时 BLOCKER。
  • Merge-aware deterministic conflict至少 ERROR。
  • 无法自动判定的并发 hard-memory changes要求 reconciliation,不静默 PASS。
  • Subject merge、reconciliation、Exception-To与promotion均 transactional。
  • Historical superseded/archive Subject references不机械重写,但可解析 current canonical identity。
  • Reachability可审计;unreachable project hard constraint至少 ERROR。
  • Freshness只提示,不自动改写。

Routing and local#

  • Manifest是唯一 shared routing authority。
  • Path-to-area matching确定且跨平台一致。
  • Root constraints对 substantial routes可达。
  • 每个 enabled module有唯一 module disposition;budget omission为 entry disposition。
  • read --explain 使用稳定 reason code完整解释。
  • Missing scope不静默 COMPLETE;strict routing非零。
  • --no-local 产生 byte-stable shared context。
  • Local root binding防止 unbound repository自动读取 overlay。
  • Local memory不能覆盖 shared hard memory。
  • Archive和inbox默认不加载。

Safety and privacy#

  • Memory不能授予权限。
  • Security scan不泄露 secret。
  • Internal execution plan、public plan与journal分离。
  • Hard/purge preview、JSON、journal metadata、filenames与errors不泄露 topic。
  • Protected rollback backup bytes可能包含 pre-operation topic,但使用 0700/0600、永不输出/加载,并在安全完成后清理。
  • Forget、purge、local reset与recovery使用统一 versioned ErasureScope。
  • git_history_modifieddistributed_copies_revoked在正常操作中固定 false。
  • unavailable不显示 PASS;bounded no-match不表示无外部副本。
  • Shared/local/state paths防 traversal与symlink escape。
  • Temporary state cleanup不描述为 cryptographic erasure。

Audit and machine contracts#

  • Project audit、invocation audit与repository contract checks职责分离。
  • Finding severity到 status/exit code映射固定并有测试。
  • Public JSON使用 output_schema_version: 1统一 envelope。
  • Paths、arrays、timestamps与null/empty semantics稳定。
  • Text与JSON来自同一 result model。
  • JSON包含 Subject、Facet、conflict identity、reconciliation findings、ErasureScope与history status。
  • Public output不直接序列化 internal MutationPlan。
  • Fatal errors与domain findings的 stdout/stderr contract文档化。

Cross-agent#

  • Codex、Claude Code、Gemini与generic adapters使用同一 CLI contract。
  • Adapter不包含第二套路由、Subject、conflict或erasure logic。
  • Cross-agent routing/conflict/forgetting fixtures产生一致 IDs、reason codes、context hashes、ErasureScope与wording。
  • Static checker不冒充 live runtime benchmark。
  • 至少保留一个明确标注的可复现 live evaluation。

Documentation and release#

  • README保持产品导向,规范细节由 references承载。
  • README、Skill、references、templates、examples、evals与dogfood同步。
  • Release notes准确描述 transaction scope,不夸大 ACID、semantic correctness、security或complete erasure。
  • 所有版本号和schema metadata一致。
  • audit --all 对dogfood memory无 ERROR/BLOCKER。
  • 全部 tests、CI、static contract checks与whitespace checks通过。
  • 不改变 local-first、plain-text、repo-native、minimal-context 产品定位。

Updated

Was this page helpful?