# 空目录 · 九十分钟

对照实验。不替换 `/ai-agent/gate-1.html`，也不占用原来的十本目录。

原页：https://learning-field-guides.pages.dev/ai-agent/gate-1.html  
本页：`/empty-dir/`

## 为什么动这一关

十本里，Agent 的第一关最像教材工厂：八节目录、Worked Example、Trace 表、自检题、四道练习、PASS / CONDITIONAL / FAIL、证据栏、CivicOps 桥接。真正要会的只有一句——

**客户端超时不等于对面没写上。同一意图不要换号再发。**

这句话被章节结构稀释了。求职语境、打分表、留下了什么、下一阶段范围，全写在同一页上。打开就要做决定的人，先读完一章教材。

这一版只保留那一句，做成一次九十分钟的坐下。

## 原页具体有什么问题

| 原页 | 后果 |
| --- | --- |
| 八节教材 + 侧栏证据 | 坐下来写之前要先完成阅读仪式 |
| PASS / 有条件过 / 不过 | 把一次限时练习写成入学考试 |
| 完整教师仓库可先打开 | 空目录要求被参考实现抵消 |
| 广州 JD、CivicOps、Stage 2 写在同一页 | 编码手感问题和岗位包装绑在一起 |
| 静态 Trace 表 + SVG | 超时后的选择是看懂的，不是做过的 |
| 英语肩标、Worked Example、Rubric | 读起来像产品说明书 |
| 整页依赖 `gate1Template()` | 关掉 JS 就是空白 |

技术内容本身是对的。审批绑参数摘要、timeout-after-commit 先对账、重复请求回同一张回执——这些不扔。扔的是包装。

## 改什么（不只是课设和皮肤）

1. **学习单位**  
   从「关 / 阶段 / 打分」改成「一次坐下」。九十分钟到了，仓库要么不会双写，要么你知道卡在哪。没有及格线。

2. **先做决定，再写代码**  
   页上有一张工单。超时已经发生。你选下一动作，立刻看到库里写了一次还是两次。提交前超时和提交后超时可以切换：换号在前一种碰巧没事，在后一种会双写。策略不能靠运气。

3. **实验拆成两层**  
   - 原版 `clean-room-ownership` 仍是教师答案，本页只外链，并写明先别打开。  
   - 新实验 `empty-dir/lab/` 更小：Ledger 是对的，Closer 会在超时后换号、不校验审批摘要。测试是对的，启动时是红的。先改到全绿，再进空目录写 FastAPI。  
   - 九十分钟的正式动作仍是：空目录、FastAPI、Pydantic、异步读写。技术门槛不降。

4. **评估**  
   不打分。计时结束写三句，存在本机：超时之后做了什么、同一意图写了几次、审批后改参数写工具被叫了没有。

5. **语气**  
   给自己看的工单和计时。不用「不是 A 而是 B」，不写资格、证据链、硬失败、量规。广州岗位和 CivicOps 各留一句，放在最后。

6. **样子**  
   夜间桌面：深底、奶油色工单、琥珀色钟。和十本白纸衬线、和原 Gate 1 的试卷栏都分开，对照时不用看 URL 也能分清。

7. **入口**  
   门户加一条「对照实验」带，不进 01–10。原 Gate 1 顶上加一行链接。两页并存。

## 刻意不做

- 不改原十本的内容和编号  
- 不把本页做成第十一本课程  
- 不在本页放 38 章、求职仪表盘、证据登记  
- 不把教师答案再抄一份进来  
- 不引入框架、构建步骤、账户  
- 不写个人履历、雇主、家庭细节  

## 页结构

1. 钟和一句事：你点了关闭，对面可能已经写上了  
2. 工单 CASE-2044：选故障时机，再选下一动作  
3. 审批：三种实现，看工单会按谁的字关上  
4. 九十分钟怎么切：类型 → GET/审批写 → 超时先问 → 故意弄坏再加一条约束  
5. 会双写的小仓库：四条测试，先改 Closer  
6. 坐下之后三句  
7. 和原版怎么对照  

无 JS 时正文仍可读；钟、工单推演、三句话本机保存需要脚本。

## 小实验要锁住的事实

- 提交后超时：对账，不发第二次写；`committed_writes == 1`  
- 提交前超时：沿同一 `operation_id` 有界重试  
- 审批后改 note：进写工具之前拒绝  
- 重复同一意图：同一张回执  

主路径能跑不算完。

## 对照时看什么

| | 原 Gate 1 | 空目录 |
| --- | --- | --- |
| 打开之后 | 八节教材 | 一张工单 |
| 超时 | 表和 SVG | 自己选，看双写发生 |
| 实验 | 完整绿的教师仓 | 会双写的 Closer |
| 结束 | PASS 三条 | 三句本机记录 |
| 颜色 | 白纸试卷 | 夜间工单 |

## 完成标准

- `/ai-agent/gate-1.html` 内容不删不改结构，只加对照链接  
- `/empty-dir/` 可独立打开，视觉和原十本不同  
- `lab/` 在初始 Closer 上 pytest 有失败；按测试改完可全绿  
- 门户十本目录不被替换  
- 页面无原教材肩标（PASS、Rubric、Worked Example、资格门、证据链）  
- 可部署到现有 Cloudflare Pages 项目  
