# 元信息写入前先定位目标表 类型:`workflow-pattern` ## 1.1 为什么值得做 这个主题有效:用户说“更新到项目元数据里”时,agent 把“元数据”误解析为工作区协作入口,先去看 AGENTS.md / CLAUDE.md,而真实目标是此前维护过的业务元信息表。该模式说明,对“元信息/metadata/项目元数据”这类泛称,写入前必须先做目标表解析,优先从历史产物和 data-analysis-workspace 的元信息目录定位唯一可写对象。 ## 1.2 学习实验 / Before-After ## Workflow Pattern: Metadata Target Resolver ### Before 用户说:把这个商服 codebase 地址更新到项目元数据里。 错误路径: 1. 在当前 cwd 根目录寻找 `metadata` 文件。 2. 看到没有独立 metadata 文件后,把 `AGENTS.md` / `CLAUDE.md` 当作“元信息入口”。 3. 先写入协作说明文件。 4. 用户纠正后再回滚误改,并重新寻找真实业务表。 ### After 先做目标解析,再写入: | Step | Action | Success Signal | Failure Signal | | --- | --- | --- | --- | | 1 | 解析用户词:`项目元数据`、`商服`、`抖小来`、`codebase` | 得到业务关键词和写入意图 | 只有泛称,没有业务名 | | 2 | 在 `/Users/bytedance/Documents/job-bu/data-analysis-workspace/data/元信息/` 查候选 | 找到 `抖小来_商服元信息表_2026-05-19_v1.csv` | 找不到或多张相近表 | | 3 | 读取表头和当前行数 | 能确认 16 列、已有记录类型可容纳 `商服 Codebase` | 表结构不匹配或需要新列 | | 4 | 写入前声明目标路径和变更 | “将更新这张 CSV 和同名 Markdown,新增 1 条 Codebase 记录” | 用户否认目标 | | 5 | 执行写入并校验 | 行数 +1、列数不变、协作文件无残留 | 行列异常或误改其他文件 | ### Rule `metadata` 不是文件名,也不一定是协作入口。它通常是用户对某个已存在业务资产的口语化指代;除非已定位唯一目标表,否则不应开始写入。 ## 1.3 落地动作 - 更新 `/Users/bytedance/Documents/job-bu/AGENTS.md`:新增“元信息/metadata 写入前解析规则”,明确当用户说“项目元数据/元信息表/更新到元数据里”时,先在 `data-analysis-workspace/data/元信息/`、相关项目目录和历史产物中定位业务表,不能默认写入 `AGENTS.md` 或 `CLAUDE.md`。 - 新增轻量索引 `/Users/bytedance/Documents/job-bu/data-analysis-workspace/data/元信息/README.md`:列出当前元信息表文件、主题、主键/列数、最近更新时间、可追加的记录类型,作为后续 resolver 的第一入口。 - 创建本地 skill `metadata-target-resolver`:输入为用户给出的新元信息、业务名、当前 cwd;流程为 `rg --files data-analysis-workspace/data/元信息` 查候选表、用文件名/表头/历史 session 关键词匹配目标、确认唯一目标后再 append/update;失败信号为候选为 0 或多张高相似表,此时先向用户确认。 - 在数据分析工作流 checklist 中加入“mutation target first”检查项:任何表格写入、metadata 更新、项目资料登记前,先输出将要改的绝对路径、行数/列数基线和预计新增字段或记录,再执行写入。