feat(huanxi+memcore): 全量修正 huanxi 技能描述漂移 + memcore 七项优化

- huanxi: 更新 MCP URL 至 huanxi.office.yixiong-tech.com
- huanxi: 修正所有技能与后端 docstring 漂移
  · report items 字段表(补 module_id 必填、progress→progress_update、去除虚构 status)
  · weekly_report_save week→week_number
  · task end_date(非 due_date)、critical(非 urgent)、not_started(非 todo)
  · 用户/模块 ID 字段名统一为 id(非 user_id)
  · 所有 references 顶部声明"参数细节以 MCP docstring 为准"
- memcore: 新增 memcore-shared 共享层(路径锁定 + 全局常量 + PROJECT_DIR 跨平台解析)
- memcore: lint_report 增量保活(NEED-HUMAN 稳定 ID + resolved 跳过)
- memcore: synonyms.md 自动登记入索引
- memcore: SYNTHESIS_THRESHOLD / LINT_STALE_*_DAYS / MULTI_HOST_WARN_DAYS 常量化
- memcore: update Phase 1 增加 Base commit 兜底,防锚点丢失雪崩
- memcore: Phase 3C 引用快扫脚本改用 grep -F + -- 兼容中文/空格 title

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
SkyJourney
2026-06-12 19:13:21 +08:00
co-authored by Claude Opus 4.7
parent 4bf58796cf
commit 38beecb2d0
17 changed files with 362 additions and 112 deletions
@@ -1,7 +1,11 @@
# 名字 → ID 解析
> ⚠️ 参数细节以 MCP `module_list` / `user_list` / `user_get_me` 的 docstring 为准,本文档仅做工作流引导。
本文件详细说明如何将模块名、人员名解析为系统 ID,所有步骤均**缓存优先**。
**字段名约定**:用户/模块的系统内部 ID 字段名统一为 `id`(与后端返回结构一致),不要写成 `user_id`/`module_id` 作为 JSON 字段名。`module_id`/`user_id` 仅在传入 MCP 工具参数时使用。
---
## 模块名 → 模块 ID {#modules}
@@ -33,7 +37,7 @@
→ 检查 cached_at,若 age < 24h → 在 data 数组中查找
2. 查找逻辑:
a. name 精确匹配 → 返回 user_id
a. name 精确匹配 → 返回 user.id
b. name 包含输入 → 列出候选
c. 未找到 → 执行 Step 3
@@ -46,8 +50,8 @@
```
**特别注意:**
- `user_id`(系统内部 ID)≠ `feishu_user_id`(飞书 open_id
- 设置任务执行人`user_id`
- 用户的系统内部 ID 字段名是 `id`(后端 `user_list` 返回结构),`≠ feishu_user_id`(飞书 open_id
- 设置任务执行人时,MCP 工具的参数名叫 `assignee_ids`,传入的值就是 user.id 列表
- 飞书消息通知用 `feishu_user_id`(MCP 内部会自动处理,无需手动区分)
---
@@ -58,7 +62,7 @@
```
1. 解析模块 → read modules.json → 匹配"前端开发" → mod_001
2. 解析人员 → read users.json → 匹配"李四" → user_id: 456
2. 解析人员 → read users.json → 匹配"李四" → id: 456
3. 若任一缓存未命中:先拉 MCP,写缓存,再继续
4. 两个 ID 都拿到后 → 调用 task_create(module_id="mod_001", ...)
5. 创建完成后 → task_set_assignees(task_id, ["456"])