chore: memory-sync — 归档 memory-lint 速度分档决策 + 修复 2 处断链 + CLAUDE.md 常量同步

decisions.md 新增 memory-lint 过期检测速度分档决策记录;修正 2 处因章节标题漂移导致的断链引用;MEMORY.md 引用计数按实测刷新;lint_report.md 归档本次健康检查结果(含 1 项 3B 双链非对称 WARN 待人工确认);CLAUDE.md 常量表与决策条目计数同步更新。

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019z1dhAgV1vqz7SiniXw96C
This commit is contained in:
SkyJourney
2026-07-10 11:07:05 +08:00
co-authored by Claude Sonnet 5
parent a13898b55e
commit d7aaaf8224
4 changed files with 57 additions and 31 deletions
+2 -2
View File
@@ -1,9 +1,9 @@
# Memory Index
> _Last synced: 2026-06-12 | Base commit: `fad7335`_
> _Last synced: 2026-07-10 | Base commit: `a13898b`_
| 文件 | 描述 | 类型 | 引用 | Commit |
|------|------|------|------|--------|
| decisions.md | 关键架构决策:无版本号/userConfig/Bearer Token/SKILL.md规范/路径锁定/memcore三项优化/memcore-shared共享层/lint_report保活/Base commit兜底/obsidian社区对标审查 | project | 3 | fad7335 |
| decisions.md | 关键架构决策:无版本号/userConfig/Bearer Token/SKILL.md规范/路径锁定/memcore三项优化/memcore-shared共享层/lint_report保活/Base commit兜底/obsidian社区对标审查/memory-lint速度分档过期检测 | project | 2 | a13898b |
| project_overview.md | 项目定位、目录结构、插件规范、发布流程(huanxi/memcore/obsidian 10 技能) | project | 1 | fad7335 |
| feedback_plugin_dev.md | 插件开发协作规范:同步四处/路径解析/工具签名对照/MCP docstring单一真相/签名变更全量扫描 | feedback | 1 | 38beecb |
| lint_report.md | memory-lint 最新执行结果 | lint | 0 | 38beecb |
+17 -5
View File
@@ -1,9 +1,9 @@
---
name: 架构决策
description: Marketplace 设计中的关键技术决策及其原因
description: Marketplace 设计中的关键技术决策及其原因:无版本号/userConfig/Bearer Token/SKILL.md规范/路径锁定/memcore三项优化/memcore-shared共享层/lint_report保活/Base commit兜底/obsidian社区对标审查/memory-lint速度分档过期检测
type: project
last_updated: 2026-06-12
commit: fad7335
last_updated: 2026-07-10
commit: a13898b
---
# 关键架构决策
@@ -103,7 +103,7 @@ commit: fad7335
**How to apply**:未来 memcore 类多 skill 插件如出现「共享约束 + 多处硬编码常量」时,提取为独立 `<plugin>-shared` skill;常量声明在共享 skill 顶部表格,子技能引用常量名而非裸数字。
**See Also**[[decisions.md#memcore memory-update/lint 路径锁定:禁止写入系统自动记忆路径]] [[feedback_plugin_dev.md#skill 不要重写 MCP 参数表,引用 docstring]]
**See Also**[[decisions.md#memcore memory-update/lint 路径锁定:禁止写入系统自动记忆路径]] [[feedback_plugin_dev.md#skill 不要重写 MCP 参数表,引用 docstring 为单一真相]]
---
@@ -161,4 +161,16 @@ commit: fad7335
- 涉及 vault 内格式(.canvas/.base/.md)的能力,**默认独立成 skill**——不要塞进核心 obsidian。
- 学习模式契机:obsidian-canvas 的"AI 大批量写入回滚策略"4 选项对照表留给团队/用户决策,AI 不强制做掉,默认采用 C+D 作为决策前兜底。
**See Also**[[feedback_plugin_dev.md#签名变更全量扫描]]、kepano/obsidian-skills、AgriciDaniel/claude-obsidian
**See Also**[[feedback_plugin_dev.md#MCP 后端工具签名变更后必须全量扫描所有 skill]]、kepano/obsidian-skills、AgriciDaniel/claude-obsidian
---
## memory-lint 过期检测改用提交速度分档,弃用固定 30/90 天阈值(2026-07-10
**结论**`/memory-lint` Phase 5 过期检测从固定 `LINT_STALE_WARN_DAYS=30` / `LINT_STALE_ERROR_DAYS=90` 改为「自 last_updated 以来的全仓库提交速度」分档:`LINT_STALE_MIN_DAYS=7`(不足 7 天跳过检测)+ 速度 ≥`LINT_HIGH_VELOCITY`(1.0 次/天) → ERROR,≥`LINT_LOW_VELOCITY`(0.3 次/天) → WARN,低于此速度不判定过期,但 `LINT_STALE_ABSOLUTE_DAYS`(180 天) 绝对兜底。
**Why**:AI 辅助开发下代码迭代速度远超传统人工节奏,高频项目 7 天内可能已发生大量架构变更,30 天固定阈值严重滞后不报警;反过来低活跃期项目(如进入维护期)超过 30 天没提交,旧记忆大概率仍准确,固定天数会误报过期。纯日历天数无法区分"高频漂移"和"低频稳定"两种情况,需要用提交速度代理"内容漂移风险"。
**How to apply**:新增/调整任何"距离上次更新多久算过期"的判定逻辑时,优先考虑用活跃度信号(提交频次、变更行数等)分档,而非固定日历阈值。常量集中在 `memcore-shared` 全局常量表单点维护,调整数值只改一处。
**See Also**[[decisions.md#memcore-shared:路径锁定 + 全局常量的单一来源]]
+33 -21
View File
@@ -2,39 +2,32 @@
name: 记忆健康检查报告
description: memory-lint 最新一次执行的检查结果与待处理项
type: lint
last_updated: 2026-06-12
commit: fad7335
last_updated: 2026-07-10
commit: a13898b
---
# 记忆健康检查报告
> _执行时间: 2026-06-12 | Base commit: `fad7335` | Last synced: 2026-06-12_
> _执行时间: 2026-07-10 | Base commit: `a13898b` | Last synced: 2026-07-10_
>
> **如何使用**NEED-HUMAN 条目末尾有 `<!-- id: xxxxxxxx -->` 标记。处理完或决定不处理时,在同段追加 `<!-- resolved: DATE, 简要原因 -->`,下次 lint 该条目自动跳过。
## 健康概览
| 检查项 | AUTO-FIX | NEED-HUMAN |
| 检查项 | AUTO-FIX | NEED-HUMAN(含已 resolved 跳过 N 项) |
|--------|---------|-----------|
| 1 孤儿 / 2 幽灵 / 3A 引用 / 3B 双链 | 0 / 0 / 1 / 0 | — / — / 0 / 0 |
| 1 孤儿 / 2 幽灵 / 3A 引用 / 3B 双链 | 0 / 0 / 2 / 0 | — / — / 0 / 1(含已 resolved 跳过 0 项) |
| 4 矛盾 / 5 过期 / 6 污染 | — | 0 / 0 / 0 |
**AUTO-FIX 已执行 1 项 | NEED-HUMAN 新列出 0 项 | 历史已 resolved 跳过 0 项**
**AUTO-FIX 已执行 2 项 | NEED-HUMAN 新列出 1 项 | 历史已 resolved 跳过 0 项**
---
## AUTO-FIX 已执行清单
- [x] 文件级引用计数刷新(Phase 3A):decisions.md 新增 obsidian 审查 Section 引入新引用关系,更新 MEMORY.md「引用」列:decisions 1→3(按源去重,新增 lint_report 与 feedback_plugin_dev 作为源);project_overview / feedback_plugin_dev 仍为 1(同源去重)
- [x] **核心枢纽阈值达成**`decisions.md` 文件级引用数 = 3feedback_plugin_dev / lint_report / project_overview 三源),达到 SYNTHESIS_THRESHOLD3),列入下方核心枢纽节点
---
## 核心枢纽节点(文件级引用 ≥ SYNTHESIS_THRESHOLD = 3
| 文件 | 引用源数 | 含义 |
|------|--------|------|
| **decisions.md** | 3 | 该文件已成为记忆体系的中心节点(被 3 个不同 memory 文件引用);新增决策时优先考虑是否会形成跨多领域影响 |
- [x] 更新断链(Phase 3A,章节标题漂移):`decisions.md``[[feedback_plugin_dev.md#skill 不要重写 MCP 参数表,引用 docstring]]``[[feedback_plugin_dev.md#skill 不要重写 MCP 参数表,引用 docstring 为单一真相]]`
- [x] 更新断链(Phase 3A,章节标题漂移)`decisions.md` `[[feedback_plugin_dev.md#签名变更全量扫描]]``[[feedback_plugin_dev.md#MCP 后端工具签名变更后必须全量扫描所有 skill]]`
- [x] MEMORY.md「引用」列已刷新(按源文件去重重新计数,见下方文件级引用计数表;`decisions.md` 3→2,因 lint_report.md 本身不再含旧版 wikilink
---
@@ -46,15 +39,19 @@ commit: fad7335
|------|----------|------|
| — | — | 无候选 |
当前所有 decisions/feedback 条目的**单 section 级**跨文件引用数均 < 3,无 synthesis 升级候选。文件级已达阈值不触发 section 升级。
当前所有 decisions/feedback 条目的**单 section 级**跨文件引用数均 < 3,无 synthesis 升级候选。
---
## NEED-HUMAN 待处理清单
✅ 本次扫描无 NEED-HUMAN 待处理项,记忆体系健康。
### [WARN] 双链非对称 — 3B 目标章节缺少精确反向链接
**备注**`synonyms.md` 不存在,矛盾检测使用保守模式(仅检测直接数值/版本冲突)。如项目有领域术语缩写,建议创建 `.claude/memory/synonyms.md`(首次创建后会被 Phase 2 自动登记为 reference 类型入索引)。
- **A→B**`decisions.md → ## obsidian skill 集对标社区基准的审查 + 优化``[[feedback_plugin_dev.md#MCP 后端工具签名变更后必须全量扫描所有 skill]]`
- **现状**`feedback_plugin_dev.md` 全文件对 `decisions.md` 有反向引用(`## skill 不要重写 MCP 参数表...` 一节内的 See Also),但不在本次目标章节 `## MCP 后端工具签名变更后必须全量扫描所有 skill` 内,按边界规则不自动追加,仅记录。
- **说明**:非结构性错误(目标文件/章节均存在,链接有效),纯属"是否需要精确双链"的风格判断,不影响可读性,可长期搁置。
- **矩阵**:若希望强化双链闭环 → 在该章节末尾追加 `**See Also**[[decisions.md#obsidian skill 集对标社区基准的审查 + 优化]]`;若认为文件级已有反向引用足够 → 标记 resolved 即可。
<!-- id: 3f3d2245 -->
---
@@ -62,7 +59,22 @@ commit: fad7335
| 文件 | 被引用次数(去重源) | 引用来源 |
|------|-------|---------|
| **decisions.md** | **3** | feedback_plugin_dev.md / lint_report.md / project_overview.md |
| **decisions.md** | **2** | feedback_plugin_dev.md / project_overview.md |
| project_overview.md | 1 | decisions.md(含 2 个 wikilink,同源去重为 1 |
| feedback_plugin_dev.md | 1 | decisions.md(含 2 个 wikilinkmemcore-shared 共享层 + obsidian 审查 See Also,同源去重为 1 |
| feedback_plugin_dev.md | 1 | decisions.md(含 2 个 wikilink,同源去重为 1 |
| lint_report.md | 0 | — |
**备注**`decisions.md` 文件级引用数由 3 降为 2(未跌破规则,是 lint_report.md 本身历史上不含 wikilink 却被误计入源——本次按 grep 实测重新计数),暂不满足 `SYNTHESIS_THRESHOLD`(3) 核心枢纽节点条件。
`synonyms.md` 不存在,矛盾检测使用保守模式(仅检测直接数值/版本冲突)。如项目有领域术语缩写,建议创建 `.claude/memory/synonyms.md`
---
## 过期检测明细(速度分档,本次生效的新逻辑)
| 文件 | last_updated | days_since | commits_since(全仓库) | velocity(次/天) | 判定 |
|------|-------------|-----------|----------------------|------------------|------|
| project_overview.md | 2026-06-12 | 28 | 8 | 0.29 | 低于 LOW_VELOCITY(0.3),不判定过期 |
| feedback_plugin_dev.md | 2026-06-12 | 28 | 8 | 0.29 | 低于 LOW_VELOCITY(0.3),不判定过期 |
| decisions.md | 2026-07-10 | 0 | — | — | 不足 MIN_DAYS(7),跳过 |
| lint_report.md | 2026-07-10 | 0 | — | — | 不足 MIN_DAYS(7),跳过 |