AI 教我学习 · 精读源码

每一个论断都回到具体行

写句子之前先打开那个文件,读到那一行。引用带上路径与起止行,代码块和源文件逐字节一致。

先玩一遍 · 哪几条动过手脚
技术说明里的四条引用
这一遍
先扫,再切到逐字节。也可以直接点一条。
AI 写的技术说明 · 示意文本

放行条件写在 admit:用户没被封,并且 token 还有效,才发 Permit。

gate/src/admit.rs第 40 至 46 行
pub fn admit(user: &User, token: &Token) -> Option<Permit> {
    if !user.banned && token.fresh() {
        Some(Permit::grant(user.id))
    } else {
        None
    }
}
0已核对
0对得上
0对不上
引用声称的那几行
还没开始比。
源文件真实的那几行
按行号切出源文件。
选一种看法,点播放。
肉眼放行了四条三处改动都保住了缩进、括号和行号连续。
行号是给别人用的写清路径与起止行,看的人能点进去核。
教学示意:源码与引用都是为演示编的片段。
它给的函数名和行号,我怎么知道是真的

打开一个几十万行的仓库,没有导读。你问它这段是怎么调度的,它会流畅地吐出一个函数名和一个看起来合理的行号,那个函数可能根本不存在。

你把这句话写进笔记,下次点进去对不上,分不清是当初写错了,还是后来上游改了。冻住版本的做法在 先锁版本,再往下写

行号是留给别人验你的

约束只有一条,写句子之前先打开那个文件,读到那一行,再写。找不到就写未找到对应实现,记下检索用过的关键词。

按工程经验,这条约束有两层用处。一层是迫使你真的读到那一行,印象和文件名推测过不了关。另一层是让别人能验你,没有行号的文章只能选择相信作者。

这套做法从 Claude Code、Grok、DeepSeek Harness、OpenAI Codex 四个项目里长出来,产出 61 节课页。站内那组就是成品,比如 新功能先找落脚的 crate。通用版在 三道能贴进对话的防线

找不到就写未找到,不要补一个看起来合理的。