ChipCode 的项目记忆:哪些东西该写进文件,哪些不该

简介: ChipCode 提出“项目记忆”理念:只将四类关键信息落盘——板卡事实、编码约定、可勾选的验收条件、构建烧录命令;拒绝记录调试过程、临时代码与主观评价。强调人写意图、系统记事实,用纯文本文件保障可审阅、可 diff、高可靠,摒弃复杂向量库。

ChipCode 的项目记忆:哪些东西该写进文件,哪些不该

AI 忘事这件事,本质上是它每次都从零开始。

你以为你在跟一个记得昨天的人聊,实际上你在跟一个刚认识你的人聊。你说过十遍的编码规范,第十一遍还是要说。

解法大家都知道:把重要的东西写下来。但“重要的东西”具体是哪些?写多了是噪声,写少了不管用。

这篇讲 ChipCode 在这件事上的取舍。

两种记忆,别混在一起

先分清楚两件事:

会话记忆是这次对话里说过的内容。它天然存在,因为上下文就在那儿。关掉窗口就没了,这是对的——大部分对话不值得留。

项目记忆是跨会话要活下来的东西。它必须落在磁盘上,因为内存里的东西不可靠。

我们只做后者。会话记忆交给模型自己的上下文窗口,不额外存。

这个决定的意义在于:项目记忆是可审阅的。 用户能看到它、能改它、能 diff 它、能回滚它。而藏在某处的向量库不行。

该写进文件的四类东西

我们观察了大量真实项目,总结出四类必须落盘的:

一、板卡事实

型号、主频、Flash 大小、引脚占用、外设冲突。

# 板卡
- 型号:STM32F103C8T6,72MHz
- PA5:板载 LED(低电平点亮)
- PB12:被 USB 占用,不可用
- PA9/PA10:UART1,接串口模块

这类信息的价值是防止它编。你不写,它就会给你一个“典型接法”,而典型接法在你的板子上通常是错的。

二、编码约定

C 标准、内存策略、日志走哪个串口、命名风格。

# 约定
- C99,不用动态内存
- 日志走 UART2,禁用 printf 到 stdout
- 命名 snake_case,不用驼峰
- 中断里不做浮点

这些是“说一遍就够、不说就每次都错”的东西。写下来的成本是五分钟,收益是整个项目周期。

三、验收条件

这一条最重要,也最容易被忽略。

# 验收
- [ ] 上电 3 秒内进入待机,电流 < 20mA
- [ ] 连续按 3 次,计数为 3(允许 1 次抖动容错)
- [ ] 断电重启后时间误差 < 1s/天

写成勾选列表,每条都能判断“过没过”。

为什么它比前两类更重要?因为前两类影响“写得对不对”,这一类影响“做没做完”。前者错了好修,后者错了会误以为已经交付。

四、构建与烧录命令

不是每个项目都用标准命令。有些要带特殊参数、有些要先跑一个脚本生成头文件。

# 构建
- 编译:`make -j4 BOARD=bluepill`
- 烧录:`openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program build/fw.elf verify reset exit"`

写下来的好处是让 AI 别猜。它猜错的概率不低,而猜错的代价是一次失败的构建加上一段误诊。

不该写进文件的三类东西

有该写的,就有不该写的。我们踩过“什么都往里塞”的坑,结果是文件变成了一本没人读的流水账。

一、一次性的调试过程

“我试了 A 不行,试了 B 也不行,最后 C 可以。”

这段过程对当时的你有用,对三天后的你是噪声。它会被读进上下文,占着位置,还可能误导——因为 AI 会以为“A 和 B 都不能用”是结论,而实际上那只是你那天的环境问题。

过程记录应该进日志,不该进项目记忆。

二、临时代码片段

“先这么写着,回头改。”

这种片段一旦进了记忆,就会被当成“项目里的既有写法”被模仿。三个月后你在代码里看到五处同样的临时代码,来源就是它。

三、情绪和判断

“这个库很难用”“这个方案不行”。

写下来的人知道自己在抱怨,读的人(尤其是 AI)会把它当成事实依据。它会在下次选型时绕开这个库,理由是一条三周前的抱怨。

该写事实,不写评价。 如果确实要记录“为什么不用某个库”,那就写清楚具体的失败原因和复现条件,而不是“不好用”。

一个具体的结构

我们现在的项目目录里是这样:

project/
├── .chipcode/
│   ├── board.md          # 板卡事实
│   ├── conventions.md    # 编码约定
│   ├── acceptance.md     # 验收条件(可勾选)
│   └── evidence.jsonl    # 证据账本(append-only)
└── src/

前三个是人写的,第四个是系统写的。

这个划分很重要:人写意图,系统写事实。

acceptance.md 里的条件是“我希望它做到什么”,evidence.jsonl 里的是“它实际做到了什么”。两者分开存,才能对得上——如果混在一起,就成了自己给自己打分。

为什么不用向量库

技术上当然可以做:把项目文档切片、embedding、检索。

我们没做,原因有三个:

一是可审阅性。 用户需要能打开文件、看到原文、改一个字。向量库做不到这个,“检索出来的一段”和“文件里的第 12 行”是两种体验。

二是可 diff。 项目记忆会变。变了之后要知道变了什么——改了一条验收条件,还是删了一条约定。文件能 diff,向量库不能。

三是规模不匹配。 一个嵌入式项目的记忆文件通常不超过 200 行。这个规模下,全文读进去比检索更准,也更省事。

向量库解决的是“一百万条里找相关”的问题。我们面对的是“二十条里全都要”的问题。

最后

项目记忆这个东西,做得好用的时候你是感觉不到它的。

你只会觉得“这次它居然记得我用 C99”,而不会想到是因为三天前你写了一个文件。

反过来,一旦它失效,你立刻能感觉到——因为你要把同一段话再说一遍。

我们在这个功能上花的功夫,大部分不在“怎么存”,而在“什么该存”。前者是工程问题,后者是判断问题。判断错了,存得再好也没用。

相关文章
|
8月前
|
弹性计算
阿里云服务器——2026最新价格38元、68元、99元和199元配置对比详细介绍
阿里云2026年爆款云服务器价格曝光:38元(秒杀)/68元轻量应用服务器(2核2G/200M峰值带宽)、99元ECS经济型(2核2G/3M固定带宽)、199元企业款(2核4G/5M/80G)。新老用户各有所适,不限流量,独立IP,建站备案首选。
|
3天前
|
传感器 编译器
ChipCode 的编译门禁:exit code 之外还得看什么
ChipCode 编译门禁不止看 exit code:严查新增警告、产物新鲜度、大小异常与烧录一致性,分硬/软门禁,宁可少报、绝不误报,确保每份固件真实可信。(239字)
|
7天前
|
人工智能
淘宝买的壳装不进去,我干脆自己用chipcode写了个
淘宝外壳屡屡不匹配?作者四次失败后,转用chipcode OpenSCAD参数化建模:量三尺寸、改几数字,自动生成精准适配外壳。代码即模型,支持AI辅助修改,打印前可预览,高效可靠。(239字)
|
7天前
|
NoSQL IDE 编译器
51 单片机还在装 Keil?我换成chipcode的 SDCC 了,说说哪里疼
本文分享从Keil转向开源SDCC编译器开发51单片机的实战体验:告别安装玄学与2KB代码限制,拥抱命令行、无授权、零依赖;但需适应中断/位操作等语法差异、调试简陋、生态库少。适合课程设计、毕设及个人项目,商业交付仍推荐Keil。(239字)
|
8天前
|
存储 人工智能 JSON
AI Agent 说「已完成」,凭什么信——ChipCode 的证据链与产物门禁设计
ChipCode 提出“可信完成”新范式:拒绝轻信AI自述,通过append-only证据账本、文件驱动的阶段状态计算、进程层门禁(而非语言层断言)三重设计,将“已完成”锚定在可验证、可追溯、不可篡改的工程事实中。
|
9天前
|
人工智能 JSON JavaScript
AI 写嵌入式代码,编译通过不等于做完——拆解 ChipCode 产品工厂的文件状态机与 evidence.jsonl 证据链
大模型写 C 代码早就不是问题了。真正卡住嵌入式 AI 开发的是另外三件事:需求没法验收、"已验证"是模型自己说的、项目状态只存在聊天记录里。本文以 ChipCode(原 TrieCode)的「产品工厂」为样本,拆解它如何用**外置到磁盘的文件状态机**、**只追加的证据账本 `evidence.jsonl`**、**以编译器退出码为准的验证门禁**,把「一句需求 → 需求条件 → 结构 → BOM → 固件 → 联调 → 产品包」串成一条可审计的链路。文末附可运行的证据覆盖率校验脚本、四条工具链的实际编译路径,以及这套方案当前的真实边界。
|
3天前
|
JSON 安全 前端开发
ChipCode 插件清单校验:两个点能走多远
ChipCode插件安全校验聚焦`plugin.json`,严控路径遍历、transport枚举、command位置及webview入口,确保安装即可信。校验拦截“无意之失”与低成本攻击,不替代代码审查。(239字)
|
3天前
|
传感器 测试技术 网络性能优化
ChipCode 的 MQTT 通道:设备联调为什么要下沉到进程层
ChipCode 的 MQTT 通道将设备联调下沉至进程层,以长连接、发布/订阅模型替代 HTTP 轮询,解决功耗高、事件丢失、NAT 穿透等痛点;通过请求ID关联、LWT遗嘱、三级主题与QoS1策略,在资源受限场景下实现可靠、低开销、状态感知的异步联调。(239字)
|
3天前
|
JSON 人工智能 缓存
ChipCode 的七类 transport:一个 JSON 怎么统一九种工具链
ChipCode 通过抽象出 CLI、HTTP、gRPC、MCP、MQTT、internal、backend 七类 transport,统一九种异构工具链交互,实现能力声明与执行解耦,支撑可审计、可复现的嵌入式 AI 开发闭环。(239字)

热门文章

最新文章