-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
90 lines (90 loc) · 3.31 KB
/
Copy pathquiz.json
File metadata and controls
90 lines (90 loc) · 3.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
{
"lesson": "35-initialization-scripts",
"title": "Agent 的初始化脚本",
"questions": [
{
"stage": "pre",
"question": "一个 init 脚本消除了什么?",
"options": [
"推理带来的延迟",
"每会话的设置税:探测运行时、列出 repo、在每个新会话重复同样的检查",
"提供商限流",
"认证 token"
],
"correct": 1,
"explanation": "脚本只交一次税,并把答案写进 agent 会读取的 init_report.json。"
},
{
"stage": "pre",
"question": "init 脚本的失败模式契约是什么?",
"options": [
"软失败并继续",
"大声失败、快速失败、在一处失败;当工作台坏掉时拒绝启动",
"总是成功",
"永远重试"
],
"correct": 1,
"explanation": "整个要点就是当工作台坏掉时拒绝启动;静默回退会破坏这个目的。"
},
{
"stage": "check",
"question": "下列哪一个不是本课列出的探测项之一?",
"options": [
"运行时版本",
"依赖可用性",
"测试命令可解析性",
"逐 token 采样温度"
],
"correct": 3,
"explanation": "探测项包括运行时版本、依赖、测试命令、路径、环境变量、状态新鲜度、最近已知良好提交(LKG)。"
},
{
"stage": "check",
"question": "为什么本课说 init 必须是幂等的?",
"options": [
"它满足 SOC 2",
"运行两次除了新时间戳外应是无操作,这样它就能被接入 CI、hook 或一个任务前的 slash 命令",
"幂等性省钱",
"这是 JSON Schema 要求的"
],
"correct": 1,
"explanation": "幂等性让 init 能安全地从多个入口(hook、CI、slash 命令)调用。"
},
{
"stage": "check",
"question": "什么是最近已知良好提交锚定(last-known-good commit anchoring)?",
"options": [
"团队负责人最近的提交",
"把当前提交与一个 LKG 文件对照探测;若 diff 在未经人工批准下超过预算就拒绝启动",
"repo 中最早的提交",
"HEAD 与 main 的合并基"
],
"correct": 1,
"explanation": "Cloudflare 的 AI Code Review 用 LKG 来界定审查者范围,防止漂移跨会话累积。"
},
{
"stage": "post",
"question": "带 TTL 的锁文件模式做什么?",
"options": [
"把 repo 锁住禁止编辑",
"在一次成功探测通过后写入 prereqs.lock;后续运行在 24 小时内信任该锁,若清单哈希匹配就跳过昂贵的探测",
"把所有写入封锁 24 小时",
"禁用 CI"
],
"correct": 1,
"explanation": "与 Docker 层缓存形态相同:幂等探测 + 内容哈希 = 跳过。"
},
{
"stage": "post",
"question": "什么绝不应出现在 init 的热路径中?",
"options": [
"本地文件系统读取",
"网络调用、LLM 调用、外部许可证检查;探测是三秒内的确定性管道",
"读取环境变量",
"读取锁文件"
],
"correct": 1,
"explanation": "一个调用 LLM 的探测是工作流,不是探测;让 init 保持确定性。"
}
]
}