$npx -y skills add rolandwonglonam/rw-research-skill --skill rw-research-learning发现并扫描用户可读的本地积累或指定文件夹,根据材料归属、当前版本以及用户已写、已解释和已应用的内容判断可见研究基础,选择学习起点并生成第一份学习产物。Use when the user asks for “带我学一个科研主题”“扫描这个文件夹再教我”“分析我的科研能力”“看看我会什么”“根据我的本地内容决定下一步”“我不知道科研或 PhD 从哪里开始”,or requests the rw-research-learning workflow.
| 1 | # RW Research Learning |
| 2 | |
| 3 | 先发现用户把内容放在哪里,再读已有积累,最后决定从哪里开始学。不在扫描前要求用户先说清研究阶段或选择其他 Skill。 |
| 4 | |
| 5 | ## 启动 |
| 6 | |
| 7 | 1. 读取 `references/method.md`、`references/scan-policy.md` 和 `references/profile-schema.md`。 |
| 8 | 2. 用户指定文件夹时,将该文件夹作为主扫描范围;除非用户说“只看这个文件夹”,同时对当前项目允许读取的范围做元数据发现,寻找遗漏的相关内容目录。 |
| 9 | 3. 用户没有指定路径时,先对当前项目做元数据发现;用户明确要求“全盘扫描”时,使用 `user` 模式扫描环境允许读取的用户内容。 |
| 10 | 4. 需要建立或更新索引时,运行 `scripts/research_learning_scan.py`。 |
| 11 | 5. 生成研究基础判断前,读取 `references/acceptance.md`。 |
| 12 | |
| 13 | ## 扫描模式 |
| 14 | |
| 15 | - **指定文件夹**:深扫用户给出的路径;用户未限制范围时,再发现当前项目中的相关目录。 |
| 16 | - **当前项目**:先发现候选内容目录,再扫描选中的目录。 |
| 17 | - **用户内容**:用户要求“全盘扫描”时,扫描环境允许读取的用户主目录,并应用排除规则。 |
| 18 | |
| 19 | 范围发现只读路径、类型、大小和修改时间,不提取正文。内容扫描是只读的。创建 `.rw-research/` 状态目录前,先告知用户将写入的位置和文件。用户不允许写入时,把状态放到临时目录,不改原始资料。 |
| 20 | |
| 21 | ## 工作阶段 |
| 22 | |
| 23 | ### 1.发现范围 |
| 24 | |
| 25 | 1. 运行 `landscape`,列出候选内容目录和实际可读边界。 |
| 26 | 2. 用户指定的目录始终保留为主根目录。 |
| 27 | 3. 研究、写作、项目和长期内容目录可以进入候选;版本库、依赖、缓存和系统目录不进入候选。 |
| 28 | 4. 报告实际发现根目录和最终内容扫描根目录,不写“扫描了全部资料”代替范围说明。 |
| 29 | |
| 30 | ### 2.盘点内容 |
| 31 | |
| 32 | 1. 扫描可读文件,记录路径、类型、大小、修改时间和提取状态。 |
| 33 | 2. 提取文本、Markdown、HTML、JSON、CSV、Word、PowerPoint 和 Excel 中可读的文字。 |
| 34 | 3. PDF 在当前环境有可用解析器时提取文本;否则标记为待提取。 |
| 35 | 4. 音频、视频和图片没有转写或 OCR 时,只记录文件存在。 |
| 36 | 5. 保留跳过项和跳过原因。 |
| 37 | |
| 38 | ### 3.发现用户的基础 |
| 39 | |
| 40 | 1. 按主题、方法、研究阶段和产出类型检索索引。 |
| 41 | 2. 采样原文,不只看文件名和关键词次数。 |
| 42 | 3. 先将证据分为 `user_output`、`process_record`、`collaborative_output`、`ai_assisted`、`external_reference`、`downloaded_tool` 或 `unknown`。 |
| 43 | 4. 再将每项能力判断分为:`applied`、`articulated`、`exposed` 或 `no_evidence`。`external_reference` 和 `downloaded_tool` 不单独支持 `applied`。 |
| 44 | 5. 为正向判断保留来源路径、原文定位、材料归属、作者归属信心和当前状态。 |
| 45 | 6. 将材料标记为 `current`、`historical`、`reference` 或 `unknown`。当前文件登记、最新工作稿和明确的 canonical 文件优先于旧 proposal。 |
| 46 | 7. 检查数字、身份、研究问题、方法版本和 claim 状态冲突;发现待核主张在下游被写成确定事实时,记录冲突,不自动裁决。 |
| 47 | |
| 48 | ### 4.选择学习起点 |
| 49 | |
| 50 | 1. 跳过已有 `applied` 或多条 `articulated` 证据的基础内容。 |
| 51 | 2. 对 `exposed` 内容做小步验证,不直接宣布用户已掌握。 |
| 52 | 3. 将 `no_evidence` 写成“当前扫描未找到使用证据”,不写成“用户不会”。 |
| 53 | 4. 根据现有积累中的断点,只选择一个当前学习起点。 |
| 54 | 5. 在同一次任务中生成第一份学习产物,不停在能力画像报告。产物可以是决策表、分析计划、编码练习、证据图或模型输入表,不固定为教程文章。 |
| 55 | |
| 56 | ### 5.继续学习 |
| 57 | |
| 58 | 1. 读取上一份学习产物的用户反馈。 |
| 59 | 2. 检查扫描目录是否有新增或修改文件。 |
| 60 | 3. 只做增量扫描,更新受影响的基础判断。 |
| 61 | 4. 根据反馈和新证据调整下一份文档。 |
| 62 | |
| 63 | ## 运行命令 |
| 64 | |
| 65 | ```bash |
| 66 | python3 scripts/research_learning_scan.py landscape --mode current --root "<allowed-root>" |
| 67 | python3 scripts/research_learning_scan.py scan --mode folder --root "<folder>" --state-dir "<folder>/.rw-research" |
| 68 | python3 scripts/research_learning_scan.py scan --mode current --state-dir "<state-dir>" |
| 69 | python3 scripts/research_learning_scan.py scan --mode user --state-dir "<state-dir>" |
| 70 | python3 scripts/research_learning_scan.py discover --state-dir "<state-dir>" |
| 71 | python3 scripts/research_learning_scan.py query --state-dir "<state-dir>" --topic "<topic>" |
| 72 | python3 scripts/research_learning_scan.py validate-profile "<profile.json>" |
| 73 | ``` |
| 74 | |
| 75 | ## 输出 |
| 76 | |
| 77 | - 扫描范围、覆盖量、跳过项和不可读项。 |
| 78 | - 有来源的可见研究基础。 |
| 79 | - 无法从当前内容判断的部分。 |
| 80 | - 一个学习起点和选择原因。 |
| 81 | - 第一份学习产物。 |
| 82 | - 一个可供用户纠正的简短反馈入口。 |
| 83 | |
| 84 | 画像、扫描索引和能力报告默认标记为 `private_local`。它们不能自动进入公开仓库、README、测试、Release、远程服务或其他用户任务。 |
| 85 | |
| 86 | ## 停止条件 |
| 87 | |
| 88 | - 用户指定的路径不可读时,停止该路径扫描并说明原因。 |
| 89 | - 扫描根目录解析为操作系统根目录时,拒绝运行。 |
| 90 | - 证据只有文件名、收藏或单次提及时,不标记为 `applied`。 |
| 91 | - 单个文件解析失败时标记为 `unreadable` 并继续,不中断其他文件扫描。 |
| 92 | - 不读取凭据、秘钥、环境变量和明确的密码库文件。 |
| 93 | - 不因扫描结果缺失而生成用户能力结论。 |
| 94 | - 不将学习起点当成临床、伦理或统计专业审批。 |
| 95 | - 用户未明确要求时,不导出或分享本地画像、索引和报告。 |
| 96 | |
| 97 | ## 独立运行 |
| 98 | |
| 99 | - 不要求预设的私人工作区或索引。 |
| 100 | - 只有指定文件夹时,仍能建立索引、生成研究基础判断并选择学习起点。 |
| 101 | - 没有可读本地资料时,使用用户本轮提供的内容;仍无内容时,说明不能判断基础,再从主题的起点文档开始。 |
| 102 | |
| 103 | ## 来源纪律 |
| 104 | |
| 105 | - 个人能力判断只使用当前扫描到的用户材料。 |
| 106 | - 外部论文、教材、他人 thesis、下载的 Skill 和模板只作为接触证据,不能当成用户应用证据。 |
| 107 | - 保留路径、文件修改时间和原文定位。 |
| 108 | - 把材料中的事实、用户判断、Agent 推断和未知项分开。 |
| 109 | - 本地资料可能过时时,标记日期;需要当前事实时再核验公开来源。 |