Skip to content

设计:MEMORY.md 既要轻量入口又要求直连所有资产,语义冲突 #5

Description

@TbusOS

背景

SPEC §7 的核心目标是:每个 session 只先读 .memory/MEMORY.md,该文件保持轻量,主要放顶层指针;详细内容通过 topic sub-index 和单个 asset 按需加载。

但当前 conformance/validate 口径要求每个 local asset 都必须直接出现在 MEMORY.md。这和 L1 只作为轻量入口的设计目标冲突。

问题

如果所有 asset 都必须直接写进 MEMORY.md,大 store 会重新退回到一个大索引文件:

  • L1 token 预算难以稳定维持在 600-900 tokens。
  • index/<topic>.md 的 L2 价值被削弱。
  • 多 topic asset 可能在多个位置出现,后续“哪条索引记录是权威入口”不清楚。

这不是简单测试口径问题,而是 SPEC 对“reachable”和“directly listed”的语义没有分开。

建议

把 conformance/validate 规则改成:

每个 asset 必须从 MEMORY.md 出发,在最多 2 跳内可达。
允许路径:L1 -> L3,或 L1 -> L2 -> L3。

同时补充两个字段或规则:

  • primary_topic:每个 asset 有一个主 topic,用于唯一归档和统计。
  • tags:允许多 topic 检索,但不是唯一权威入口。

校验上可以拆成:

  • E-IDX-coverage:asset 从 L1 不可达。
  • W-IDX-duplicate-entry:同一 asset 在多个索引处重复出现,但未声明主 topic。

参考

  • SPEC.md §7.0:MEMORY.md 不包含所有 memory,只包含顶层指针。
  • SPEC.md §7.1:每个 asset 从 L1 最多 2 跳可达。
  • cli/engram/conformance.pyINV-I1 当前要求 every local asset is referenced by MEMORY.md。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions