| name | rw-research-learning |
| metadata | {"internal":true} |
| description | 发现并扫描用户可读的本地积累或指定文件夹,根据材料归属、当前版本以及用户已写、已解释和已应用的内容判断可见研究基础,选择学习起点并生成第一份学习产物。Use when the user asks for “带我学一个科研主题”“扫描这个文件夹再教我”“分析我的科研能力”“看看我会什么”“根据我的本地内容决定下一步”“我不知道科研或 PhD 从哪里开始”,or requests the rw-research-learning workflow.
|
RW Research Learning
先发现用户把内容放在哪里,再读已有积累,最后决定从哪里开始学。不在扫描前要求用户先说清研究阶段或选择其他 Skill。
启动
- 读取
references/method.md、references/scan-policy.md 和 references/profile-schema.md。
- 用户指定文件夹时,将该文件夹作为主扫描范围;除非用户说“只看这个文件夹”,同时对当前项目允许读取的范围做元数据发现,寻找遗漏的相关内容目录。
- 用户没有指定路径时,先对当前项目做元数据发现;用户明确要求“全盘扫描”时,使用
user 模式扫描环境允许读取的用户内容。
- 需要建立或更新索引时,运行
scripts/research_learning_scan.py。
- 生成研究基础判断前,读取
references/acceptance.md。
扫描模式
- 指定文件夹:深扫用户给出的路径;用户未限制范围时,再发现当前项目中的相关目录。
- 当前项目:先发现候选内容目录,再扫描选中的目录。
- 用户内容:用户要求“全盘扫描”时,扫描环境允许读取的用户主目录,并应用排除规则。
范围发现只读路径、类型、大小和修改时间,不提取正文。内容扫描是只读的。创建 .rw-research/ 状态目录前,先告知用户将写入的位置和文件。用户不允许写入时,把状态放到临时目录,不改原始资料。
工作阶段
1.发现范围
- 运行
landscape,列出候选内容目录和实际可读边界。
- 用户指定的目录始终保留为主根目录。
- 研究、写作、项目和长期内容目录可以进入候选;版本库、依赖、缓存和系统目录不进入候选。
- 报告实际发现根目录和最终内容扫描根目录,不写“扫描了全部资料”代替范围说明。
2.盘点内容
- 扫描可读文件,记录路径、类型、大小、修改时间和提取状态。
- 提取文本、Markdown、HTML、JSON、CSV、Word、PowerPoint 和 Excel 中可读的文字。
- PDF 在当前环境有可用解析器时提取文本;否则标记为待提取。
- 音频、视频和图片没有转写或 OCR 时,只记录文件存在。
- 保留跳过项和跳过原因。
3.发现用户的基础
- 按主题、方法、研究阶段和产出类型检索索引。
- 采样原文,不只看文件名和关键词次数。
- 先将证据分为
user_output、process_record、collaborative_output、ai_assisted、external_reference、downloaded_tool 或 unknown。
- 再将每项能力判断分为:
applied、articulated、exposed 或 no_evidence。external_reference 和 downloaded_tool 不单独支持 applied。
- 为正向判断保留来源路径、原文定位、材料归属、作者归属信心和当前状态。
- 将材料标记为
current、historical、reference 或 unknown。当前文件登记、最新工作稿和明确的 canonical 文件优先于旧 proposal。
- 检查数字、身份、研究问题、方法版本和 claim 状态冲突;发现待核主张在下游被写成确定事实时,记录冲突,不自动裁决。
4.选择学习起点
- 跳过已有
applied 或多条 articulated 证据的基础内容。
- 对
exposed 内容做小步验证,不直接宣布用户已掌握。
- 将
no_evidence 写成“当前扫描未找到使用证据”,不写成“用户不会”。
- 根据现有积累中的断点,只选择一个当前学习起点。
- 在同一次任务中生成第一份学习产物,不停在能力画像报告。产物可以是决策表、分析计划、编码练习、证据图或模型输入表,不固定为教程文章。
5.继续学习
- 读取上一份学习产物的用户反馈。
- 检查扫描目录是否有新增或修改文件。
- 只做增量扫描,更新受影响的基础判断。
- 根据反馈和新证据调整下一份文档。
运行命令
python3 scripts/research_learning_scan.py landscape --mode current --root "<allowed-root>"
python3 scripts/research_learning_scan.py scan --mode folder --root "<folder>" --state-dir "<folder>/.rw-research"
python3 scripts/research_learning_scan.py scan --mode current --state-dir "<state-dir>"
python3 scripts/research_learning_scan.py scan --mode user --state-dir "<state-dir>"
python3 scripts/research_learning_scan.py discover --state-dir "<state-dir>"
python3 scripts/research_learning_scan.py query --state-dir "<state-dir>" --topic "<topic>"
python3 scripts/research_learning_scan.py validate-profile "<profile.json>"
输出
- 扫描范围、覆盖量、跳过项和不可读项。
- 有来源的可见研究基础。
- 无法从当前内容判断的部分。
- 一个学习起点和选择原因。
- 第一份学习产物。
- 一个可供用户纠正的简短反馈入口。
画像、扫描索引和能力报告默认标记为 private_local。它们不能自动进入公开仓库、README、测试、Release、远程服务或其他用户任务。
可选 ADHD 友好输出
- 仅当用户明确要求“ADHD 友好输出”“ADHD 友好模式”或同义方式时启用。
- 不主动询问、介绍或推荐这个模式,不根据表达方式、回复速度或任务完成情况推断。
- 用户只披露有 ADHD,但没有要求改变输出方式时,不启用。
- 默认只在当前任务中保持;用户要求关闭时立即返回普通输出。
- 不保存诊断信息。用户明确要求跨任务保留时,只保存
interaction_mode: adhd_friendly。
- 启用后先给“只看这里”:当前任务、用户现在只做的 1 件事和本轮完成标准。
- 多步骤任务再给进度:已完成、当前和待处理;简单回答不生成空栏目。
- 重要但不需要现在处理的内容进入“暂存区”;详细证据放在摘要之后。
- 每轮最多提出 1 个关键问题;必须输入先展示最多 3 项,其余放到后续。
- 加粗当前任务、用户动作、结论和阻断状态;每段不超过 2 处,不加粗整段,不重复加粗同一词。
- 不为缩短输出删除证据边界、未知事项、停止条件或安全提示。
- 用户要求“展开”时提供完整记录,同时保留顶部摘要。
- 中断后先给恢复点,说明上次完成位置、当前状态和下一步,不要求用户重复已提供的信息。
停止条件
- 用户指定的路径不可读时,停止该路径扫描并说明原因。
- 扫描根目录解析为操作系统根目录时,拒绝运行。
- 证据只有文件名、收藏或单次提及时,不标记为
applied。
- 单个文件解析失败时标记为
unreadable 并继续,不中断其他文件扫描。
- 不读取凭据、秘钥、环境变量和明确的密码库文件。
- 不因扫描结果缺失而生成用户能力结论。
- 不将学习起点当成临床、伦理或统计专业审批。
- 用户未明确要求时,不导出或分享本地画像、索引和报告。
独立运行
- 不要求预设的私人工作区或索引。
- 只有指定文件夹时,仍能建立索引、生成研究基础判断并选择学习起点。
- 没有可读本地资料时,使用用户本轮提供的内容;仍无内容时,说明不能判断基础,再从主题的起点文档开始。
来源纪律
- 个人能力判断只使用当前扫描到的用户材料。
- 外部论文、教材、他人 thesis、下载的 Skill 和模板只作为接触证据,不能当成用户应用证据。
- 保留路径、文件修改时间和原文定位。
- 把材料中的事实、用户判断、Agent 推断和未知项分开。
- 本地资料可能过时时,标记日期;需要当前事实时再核验公开来源。