对话档案导入2481 字·2026/11/14·被检索 0 次

对话档案 D15 · 项目结构扫描与 ROS 课程整理(11-13)

同日三段会话共 1.47 亿 token:先扫描旧项目并顺手建起 C 语言学习站(发现笔记站无创建接口,催生只读分享码方案),再在 WSL2 装 ROS 2 Jazzy、留下 261 行 environment.md,最后把 ROS 课程资料整理成 17 篇笔记、194 张图、96.7MB,并倒逼出目录批量导入能力。

挂靠在《一、对话档案与提示词复盘》之下

版本
使用说明
v1reused-preview2026/11/14 11:10:48

对话档案 D15 · 项目结构扫描与 ROS 课程整理(11-13)

一句话:一天之内从「看一眼这个项目有什么」开始,先顺手造了第四个站(C 语言学习站),再在 WSL2 里装好 ROS 2 Jazzy,最后把一学期的 ROS 课程资料整理成 17 篇带 194 张图的笔记——三件事共用一条主线:先摸清环境,再动手。

一、这段对话怎么走的

三段会话,全部在 J:/workbuddy.workspace,同日连续发生(01:00 → 02:44 → 04:18),合计 1.47 亿 token、58 条用户消息、1138 次工具调用。

阶段用户要求产出卡点
A 项目扫描 → C 站「扫描 C:\Users\cag\WorkBuddy\2026-10-11-06-00-16 这个项目,里面已有主页和三个子网站」,随即转入「新任务:C语言学习网站」C-Lab/C 程序站:继承门户登录态、在线编译、题目展示、挂靠门户;对词汇站/笔记站「只调用、不改代码」站名与范围在第一条消息后就变了,扫描只完成了「建立地图」的作用
B 题目笔记归属发现示例题无法复制源码、无法在笔记站打开定位到笔记站没有对外开放「创建笔记」接口,题目被硬编码进 C 站用户提议给 C 站单独注册账号管理私密题目笔记
C 只读授权调研「笔记站可以通过@用户名的方式去只读访问笔记,这个方式不能实现吗?」结论:@用户名 只是检索层过滤器,不能放行详情页与挂靠;改为 readToken(24 位随机 hex)只读分享码方案授权模型要新增而不是复用,方案对比花了整轮
D 环境扫描「先扫描运行环境,生成 environment.md,然后安装 ROS 机器人仿生程序」J:/workbuddy.workspace/environment.md(261 行):宿主 Win10 19045 / i5-14600KF 14 核 20 线程 / 31.81GB 内存 / 磁盘 / WSL2 发行版 / 网络首轮 wsl.exe 被「命令安全 - 程序黑名单」拦截,报告判定系统级 ROS 不可行
E 解除限制「我的系统有安装 wsl2,你可以利用他进行安装」「我已删除 wsl 限制」09:16–09:28 重扫,确认 WSL2 Ubuntu 24.04 可用;报告保留「变更记录」段,写明前一轮结论为何被推翻两个后台任务连续 failed(wsl.exe 仍被拦)
F ROS 安装「先走一步 C」「后面接着走吧,把 2~6 执行完」ROS 2 Jazzy 装入 WSL2,构建 bionic_robot 功能包;同时保留零依赖本地仿真模式,两种模式共用源码用户中途问「代码疑似卡住了,源码梳理需要这么久吗?」
G 课程整理「工作目录下放了 ros课程资料,整理成若干 md 笔记,做重要度区分;目录.md 是最重要的笔记,规定接下来如何整理这些资料、文字、图片和源代码」17 篇(目录.md + 00_课程总览 至 15_综合实践)、194 张图、87 个附件、96.7MB图片与代码分散在子目录,需按 NN_x.md + 同名夹的约定重组

A 段标题写「项目结构扫描」,实际只扫了个开头就转成造站。扫描的产出是一张地图,价值在「下一步往哪走」;真正被留下来的资产是 environment.md。

G 段结束后还有一段余波:这 17 篇笔记要进笔记站,93MB 的目录在公网上行 98KB/s 下,12MB 单包上传 127 秒必被网关判 524,前端只看到 Unexpected token '<'。于是有了 lib/import-folder.ts 的目录导入(图片转资产、其余转附件、正文链接改写、内容哈希去重)与「图片每批 12 个串行 + 进度条」。一次课程整理,倒逼出一个通用导入能力。

二、用户的关键原话

「扫描 C:\Users\cag\WorkBuddy\2026-10-11-06-00-16 这个项目,里面已有主页和三个子网站。」

开场只有一句,但「已有主页和三个子网站」是在给模型装地图——省掉了「这个仓库里有什么」的十几次探索。

「1. 本任务运行token是免费的,不要为了节省token而省略篇幅。」

这句话解释了 84.5M 的来由:用户明确解除了「省 token」的约束,要求把篇幅给足。同一段里还有「我现在调用的方式是免费token,无需担忧token问题」。这是一条重要的成本信号——当预算约束消失,模型的默认行为(精简、抽样、跳过)反而成了缺点,需要显式纠正。

「我有个建议,给C程序站单独注册一个账号,这个账号完全由C程序站管理,然后让这个账号管理所有的题目笔记,这样就可以把题目笔记管理成私密的,不影响笔记站的笔记内容。」

用户不是在提需求,是在给架构方案:用「账号隔离」代替「权限改造」。这个思路把跨站耦合降到最低——C 站只要拿到一个账号,就能用现成接口管理自己的笔记。后来虽因 @用户名 只是检索过滤器而改用 readToken,但「隔离优先于改造」的判断是对的。

「我在你的工作目录下放了一个文件夹:ros课程资料.里面是这节课的内容. 你帮我整理这些内容,生成若干md笔记.笔记要囊括这里的内容,但是要做重要度区分. 期望:目录.md 目录.md是最重要的笔记,他规定了接下来如何整理这些资料,文字和图片,以及一些源代码. 然后,其他md文件,每个对应一个模块的知识,严格按照目录.md组织.将与这个md有关的文件等资料,放在与md文件同名……」

这是本批六篇里最成熟的一条指令:它先定义「元文档」(目录.md 规定组织方式),再要求其余文档严格服从元文档,最后规定资源的落位规则(与 md 同名的文件夹)。等于把「怎么组织」这件事本身也变成了产物,而不是留给模型即兴发挥。17 篇笔记能保持一致结构,靠的就是这条。

「代码疑似卡住了,源码梳理需要这么久吗?」

与 D14 的「你卡住了」同源:长任务缺少进度反馈,用户只能靠猜。区别是这次先问了一句,而不是直接停。

三、成本与效率

合计 1.47 亿 token、58 条消息、1138 次工具调用,平均每条消息 253 万、每次工具 12.9 万。

  • A 段(扫描 + C 站):84.51M / 26 条 = 每条 325 万;618 次工具 = 每次 13.7 万。最贵的一段,因为同时在读旧项目、建新站、调研笔记站接口。
  • D–F 段(ROS 安装):52.17M / 27 条 = 每条 193 万;435 次工具 = 每次 12 万。成本在反复验证 WSL 黑名单与环境重扫。
  • G 段(课程整理):10.32M / 5 条 = 每条 206 万;85 次工具 = 每次 12.1 万。单位成本不低,产出密度最高。

按产出折算,G 段每 100 万 token 换约 1.6 篇带图笔记;A 段每 100 万 token 换的是一个新站骨架加一份接口调研。

四、曲折点与评判

1. WSL 被安全策略拦截,结论被推翻后如何处理(★★★★★) 首轮扫描时 wsl.exe 被「命令安全 - 程序黑名单」拦住,environment.md 判定「系统级 ROS 2 不可行」,改走零依赖本地方案。用户解除限制后,09:16–09:28 重扫,确认 Ubuntu 24.04 可用,方案 A 启用。关键动作是报告顶部保留「变更记录」,写明「09:00 首轮扫描时被拦截……以下为合并后的最终状态」,并列出补充核查时间。结论被推翻时保留证据链,比直接改写结论更有价值。

2. 「卡住」的判定(★★★☆☆) 用户问「源码梳理需要这么久吗」时,任务可能只是慢(构建 ROS 包、解压大量资料),也可能是死循环。缺少阶段性输出,用户无法区分。G 段好一些:task-notification 有 completed 回报(pymupdf 安装、临时目录创建),至少能看到进度点在动。

3. 93MB 导入撞上网关(★★★★☆) 12MB 单包在 98KB/s 上行下要 127 秒,Cloudflare 直接 524,浏览器拿到错误页,res.json() 抛 Unexpected token '<'。真正的修复不是重试,而是改协议:目录导入 + 图片每批 12 个串行 + readJson() 把非 JSON 响应翻成人话(413/524/502 各有建议)。

4. 跨站权限的两次误判(★★★★☆) 先以为「给 C 站一个账号」就能解决题目笔记的私密管理,再以为「@用户名」能放行只读访问。两次都被实现打回:@用户名 只是检索层过滤器,不能放行详情页与挂靠。最终方案是 Note.readToken(24 位 hex、可轮换、可撤销、仅私密笔记生效、canEdit 恒 false)。教训是:读代码确认「这个机制管哪一层」,比按命名推测省两轮返工。

五、提示词与流程改进

反例:「整理这些课程资料,生成笔记。」 模型会按自己的理解分节,17 篇结构各不相同。

正例(实际发生):「目录.md 是最重要的笔记,它规定接下来如何整理这些资料、文字和图片以及源代码;其他 md 每个对应一个模块,严格按 目录.md 组织;相关资料放在与 md 同名的文件夹里。」把「组织规则」也变成产物,后续所有文件都有了唯一的裁判。

反例:「跑完了吗?」 正例:「每完成一个模块回报一行:模块名 / 已生成文件 / 图片数 / 下一步。超过 5 分钟没有新输出就打印当前正在做什么。」把「心跳」写进指令,能避免「卡住还是慢」的反复确认。

六、可复用结论

  1. 先产出环境文档,再动系统。 environment.md 一旦落盘,后续所有方案判断都有共同依据;结论被推翻时保留「变更记录」,比改写结论更有用。
  2. 把「组织规则」写成元文档。 目录.md 这种「规定怎么整理」的文件,是让 17 篇笔记结构一致的最低成本手段。
  3. 跨站能力先读代码确认层级,再设计方案。 @用户名 是检索过滤器不是授权凭证——这类误判每发生一次,就要多花一轮方案对比。