v0.5.0
Added
-
第三份学科档案
economics(profiles/economics.md,经济学各分支与金融学):填的是前两份档案之间的一个具体缺口——经济学此前被当作「边界学科」分流(stem 第 1 节说计算题走它、humanities 第 1 节说论述走它),但两份档案的题型集里都没有一行管「统计数据的出处核对」。GDP 增速、CPI、基尼系数这类答案不是算出来的而是查出来的,走 stem 时最接近的「概念辨析 → 核对定义来源」并不贴。红线不会因此被绕过(验证状态二值化属内核,填不出手段就落⚠️),代价是一本数据密集的教材会攒下一堆待确认标记压给作者。本档案把经济学的真实形态——模型题可复算、统计数据只能核来源、政策题两者都不适用而要给论证要点——正面建模成三类手段并存,这也是首份「混合可验证」档案 -
economics档案第 2 节七个题型:模型求解(与解答不同路径的 sympy/numpy 复算并实际执行)、比较静态与图形分析(符号求导核验方向 + 图文一致性核对,曲线移动方向与面积增减须与文字结论逐项对齐)、指标计算与核算(复算 + 口径核对:定义式来源/单位/基期/名义与实际是否混用)、实证数据题(核对权威数据源原始发布值并标明指标全称、机构、口径、单位、年份;取不到 →⚠️ 需作者确认(数据未核),不得凭记忆写出数值)、计量与统计推断(给出数据的实际跑一遍核对系数,纯解读题核验识别假设与相关/因果混淆)、概念辨析、政策分析与论述(论证要点 + 评价标准表,恒标「开放题」)。第 1 节另写明前置输入要求:阶段 1 应建议作者提供数据来源清单与统计口径——一个凭印象写出的统计数值比一道算错的题更难被读者发现 -
economics档案的章内段义:四段标题为「概念与模型讲解 / 示范例题 / 引导练习 / 独立习题与论述」,首末两段的文案点出经济学的两个特征(概念要落到模型上才算讲完,末段除算题外要容纳政策论述);示范例题的增量是每步除数学操作外必须给一句经济含义(算出$\partial P^*/\partial t = 1/3$ 之后要说「消费者承担三分之一税负」,缺了这句例题就退化成解方程);引导练习特有的好变式是换参数符号(把弹性从大改小看结论如何翻转,练的正是「结论依赖哪个参数」);载体扩展为数据来源台账(| 数据指标 | 来源与发布机构 | 口径/基期/单位 | 首次引用章节 | 核对状态 |)+ 符号约定附注行——动机同 humanities 的引文台账:上下文隔离让各章在不同会话写成,术语表管不到统计口径,第 3 章用不变价、第 8 章用当年价,读者会以为数据自相矛盾。文体附加条款七条(数据必带来源与口径、模型假设先行并写明适用边界、实证与规范分开写、相关不等于因果、学派归属清楚、图形标注统一、单位与量纲一致),并声明 writing-style.md 第 13 节数学公式规范全节适用。坐标类图示(供需图、IS-LM 图)明确用内嵌 SVG 而非 mermaid——mermaid 画不出坐标系与曲线相交 -
evals 新增用例 9、10(M8):9 验档案路由——《微观经济学导论》须判定为
economics、题型全落在七型内,且有一条断言专查题型分布同时覆盖两类验证手段(至少一处可复算题型 + 至少一处须核来源的题型),否则这份档案就只是 stem 的换皮;10 验混合验证纪律——prompt 硬性要求含一道真实统计数据题(不要求就可能整章只出模型题,验不到新增的那半边),断言四段标题逐字一致、题目数等于验证行数、模型题附逐题可运行且路径不同的复算代码、数据题「带来源标注」与「标⚠️ 需作者确认(数据未核)」二者必居其一、论述题给论证要点与评价标准 -
两份 README 新增「能写哪些学科」/「Which subjects it can write」一节(紧跟「能做的 / 不做的」之后):「都能写哪些学科」是用户最关心的第一个问题,此前的回答散在开篇概括段与三份档案文件里,没有一处可直接扫读。新章节收拢为一张三档案覆盖表(覆盖学科、验证方式、实测状态三列,实测口径与里程碑表一致)+ 三分法判定句(全能复算走
stem、全不能走humanities、一半一半走economics)+ 边界学科分流口径(语言学习/法学/会计、心理学/地理、经济学内部三分、交叉主题,均摘自各档案第 1 节,不另立口径)+ 清单外学科的兜底机制(spec 第 7 节:不静默套用、列出已知差异、作者拍板)。纯文档改动,不触碰 skill 行为 -
独立习题答案与题目分离(落盘新增
98-参考答案.md,规则见 handoff-contract.md 3.1 节):这是从教材使用者角度补的第一个缺口。此前答案紧跟题干排版,读者眼睛一扫就看到底,「独立习题」的独立性名存实亡——全书投入最大的产出(三类题 + 逐题验证)在使用侧直接失效,而这恰恰是四段式「教 → 扶 → 放」最后一步要换来的东西。搬走三件:参考答案/解题路径/开放题参考要点、验证状态行、验证过程;三件必须整体同行——验证代码几乎必然含答案数值,只搬答案会从验证过程泄底。留在章内四件:题干、Bloom 标注、「开放题」标记、论述类题的评价标准表(那是任务说明不是答案,同99-表现性任务.md把 rubric 交给学生的口径,读者动笔前就该知道按什么标准写)。示范例题一动不动(worked example 先行是四段式的教学内核,藏起来等于毁掉第二段),引导练习的提示阶梯改用<details>折叠留在原位——提示离开题干就失去意义,而线性 Markdown 下「读者自行决定看到哪层」本就是句空话 -
契约新增字段
答案排版/.progress.json新增answer_layout(separate/inline):沿用subject_profile那套单点决策 + 存量兜底的成熟模式——新项目一律separate,字段缺失(v0.4.x 及更早创建的项目)按inline处理并在续写行后补一句说明,已写的章不迁移答案。一本书两种答案排版比统一用旧排版更糟,所以兜底选的是「整本沿用旧排版」而不是「从下一章起改新排版」。分离只在被主 skill 调度时执行:独立触发 textbook-chapter(写单篇文章)或 textbook-exercises(只要题)时没有教材项目目录,答案搬无可搬,一律照旧内嵌——textbook-exercises 只管产出、不管落位,输出契约一字未改 -
evals 断言随规格更新(用例数不变,仍 10 个):4 补三条(
answer_layout=separate落盘、98-参考答案.md按章分节且题号与 N.4 段逐一对账、章内搜不到答案且引导练习三层已折叠)——答案分离的验收压在这个走完整调度链的 e2e 用例上;5 的「全书题目数等于验证行数」改为分处清点并补一条落位泄底检查;6 的「未创建任何流水线文件」清单补98-参考答案.md;2、3 各补一条反向断言,锁住「独立触发不分离」这条边界,防止 skill 把落位规则过度泛化 -
成书要件:读者向前页
00-前言.md(固定三节「本书写给谁 / 怎么用这本书 / 目录」,来源与改写要求见 handoff-contract.md 3.2 节):接着答案分离往下补使用者侧的缺口。此前交付物里读者能直接用的入口一个也没有——打开目录看到十几个.md,得自己猜这本书是不是写给我的、先读哪个文件、答案去哪找。纸质教材靠封面前言目录解决这三件事,Markdown 教材没人替它们操心。生成放在阶段 5 而不是阶段 3:目录要带章文件的真实路径与真实标题,而章标题在写作途中仍可能被修订,早写的目录会指向不存在的文件——一个点不开的链接比没有目录更糟;相应地阶段 5 走查要求逐条点开核对,失效链接由主 skill 当场修掉,不作为"待作者处理"的不通过项放过(这一项它自己能修,报给作者没有意义)。前页与00-教材设计.md的分工是读者向 / 作者向,同99-表现性任务.md的既有口径:设计文档不交给读者读,因此目录里也不列它 -
章首学生版学习目标 + 章末自检(章模板 3.0 与 3.5 节):这是路线图里成本最高的一条,因为它要动契约——章节树条目新增
承载的学习目标编号[]。做它的理由是一处内核断链:UbD 全套逆向设计从五件套一路推到章节树、例题梯度、表现性任务,唯独学习目标从头到尾只活在00-教材设计.md里,学生一次也看不到。看不到目标的读者只能边读边猜这章重点,读完也无从判断自己学会了没有。现在章首把该章承载的目标摊开成学生版(第二人称、去编号、去 Bloom 标注、保留可判断的动词),章末自检把同几条原句搬下来写成- [ ]复选项,每条给「回看 N.x」与「自测:习题 N-y」两个出口——目标 → 自问 → 回看 → 自测,读者自己就能闭环。上下文隔离不放松:大纲切片只带该章那几条目标的原文,不带全书清单;逼章 skill 回头查00-教材设计.md等于放开读全书设计文档的口子,所以原文由主 skill 提取后随切片下传 -
五件套编号约定(ubd-framework.md 第 2 节):顺带补上一个从未定义过的隐性约定。契约从 v0.1.0 起就在用
承载的持久理解编号[],但「编号怎么编」全流程一个字都没写,靠模型每次自发编——再加一组学习目标编号,两串数字并列就会混。现定为前缀制(大概念B、持久理解U、核心问题Q、迁移目标T、学习目标O),并写死两条纪律:编号一经确认不重排(中途删条则空号作废——章节树和各章都已引用它们,重排一次全书引用集体错位);编号只在作者向文档出现,读者向产物(章首目标、00-前言.md、99-表现性任务.md)一律不带,学生读到"O3"只会困惑 -
符号表:术语表新增
## 符号约定节 + 回报字段新增符号[]:这一项修的是一条悬空的纪律。stem与economics档案都写着"同一个量全书用同一符号,符号选择记下来全书据此对齐",但契约里没有任何字段承载符号、主 skill 也没有写符号的动作——这句话此前只是一句期望,没有落点。各章在不同会话里独立写成,没有登记表,第 2 章的列向量写$\mathbf{x}$ 、第 7 章写$\vec{x}$ ,读者会以为是两个东西。现在符号与术语同文件、同追加机制(列为符号 / 读法 / 含义与约定 / 首次出现章节——「读法」列是给读者的,符号表最常被翻开的时刻正是遇见一个不知道怎么念的记号),主 skill 追加前先比对已登记条目:同一含义已用别的符号登记过就退回该章统一符号,这正是符号表要存在的理由。不用形式符号的学科(humanities)保留节标题、正文写一行「本书不使用形式符号」——节不删,是为了让阶段 5 能区分"这门学科没有符号"与"符号漏登记了" -
evals 断言随成书要件更新(用例数仍 10 个,断言 71 → 77 条):3 改三条并补一条(章首目标为学生版、章内搜不到
O1与「(Bloom:」、自检指向的题号真实存在);4 补一条跨阶段编号传递的对账(每章章首目标条数 =00-教材设计.md该章承载的学习目标编号[]条数,验证编号一路传下来没丢条没加码);5 补两条(00-前言.md三节齐全且目录零失效链接、术语表两节且符号节非空)并把七项自检改为八项、覆盖矩阵改为三列对账;1、7、9 的章节树断言扩为两组编号各自双向对齐;6 的「未创建任何流水线文件」清单补00-前言.md;8、10 补章首与章末件断言,8 另查 humanities 的符号节写着「本书不使用形式符号」而非留空表
Changed
-
章内自查清单第 3 条由「题目数必须等于验证行数」改为分类清点 + 题号对账(chapter-template.md 第 5 节),阶段 5 自检第 4 项同步由一条拆成三条(验证残留 / 分处清点 / 落位泄底检查):答案分居两个文件后,一把总数对不上账,而题号成了唯一的对账凭据——多出的这层对账能抓住「搬丢一道」「搬错章」这类新错误,检查是被加强而不是削弱。自查清单另加第 7 条:在章文件里动手搜
参考答案、解题路径、参考要点,N.4 段内一处都不该有 -
红线未松动:「每题必附参考答案或解题路径」「每题必经验证」原样保留,改的只是答案落在哪个文件;相应地 exercise-design.md 第 3 节的「就地复核」纪律补写了新的「就地」口径——独立习题的就地指
98-参考答案.md里题号对应处,三件同处 -
stem与humanities两份档案第 1 节的分流规则改为指向economics:此前它们各写了一句「经济学怎么办」,索引里多出第三份档案后,旧分流规则会让阶段 1 读到两套互相矛盾的判定口径。校验脚本查不出这种矛盾(它只查四节结构、验证手段非空、索引与文件对应),因此在 CONTRIBUTING.md 的「新增学科档案清单」里把「回头改相邻档案第 1 节的分流规则」补成独立一步。规格第 5 节的分界句同步从二分改写为三分(全都能复算走stem、全都不能走humanities、一半能一半不能走economics) -
本轮对既有两份档案的项目是纯增量:内核与 stem/humanities 的题型集、段式、验证纪律一字未动,eval 1–8 的既有结论不受影响
-
本章小结由固定三件改为固定四件(新增「自检」,插在持久理解呼应之后、下一章预告之前):原三件全是作者向与机制向的——给下一章作者的核心结论、给阶段 5 走查的持久理解呼应、给章间钩子的预告,学生读完一章最想知道的「我学会了没有」没人回答。这条正是使用者视角下最刺眼的一处:连模板原文都写着核心结论"写的时候面向下一章的作者"。四件里第 3 件是唯一面向学生的
-
章首与章末两件的标题不随学科档案变(
## 本章学习目标/## 本章小结任何档案下逐字固定):四段的标题文案由档案第 4 节定(stem与economics、humanities各不同),但首尾件是读者向的——学生翻开任何一章都该在同一位置找到"这章要我学什么"和"我学会了没有"。相应地档案的四个可变点未增加,第 4 节仍只管四段标题与教学动作 -
阶段 5 自检由 7 项增至 8 项,另有两项内部扩展:第 3 项「术语一致性」扩为「术语与符号一致性」(新查两件:各章出现的符号是否都已登记、同一含义是否全书只用一个符号);第 6 项「学习目标覆盖矩阵」由单列改为三列对账——设计侧(有章节树条目认领)、读者侧(认领章的章首与章末自检真写了)、检验侧(至少一道题检验)。加两列的理由是同一条目标可以在三个环节各自掉队:设计文档里有、章节树没认领;认领了、章首没写;章首写了、没有题检验——只查最后一环,前两种漏法会一路漏到读者手上。新增的第 8 项是成书前页生成与走查
-
章节树条目与 UbD 一致性检查同步扩展:章节树每项由
{章号, 章标题, 一句话定位, 承载的持久理解编号[]}扩为再加承载的学习目标编号[];阶段 3 的双向对齐检查由一组变两组(一条学习目标都不承载的章"章首写不出读完你能做什么",要改造或并入相邻章;没有章承载的学习目标要分配进某章或与作者商定删除);ubd-framework.md 第 3 节一致性检查表加一行「学习目标 → 承载章」(留待阶段 3 校验,同「迁移目标 → 表现性任务」的既有模式),第 5 节自查清单由六问增至七问(新增编号齐备一问) -
术语表结构由「一张四列表」改为「固定两节」(
## 术语+## 符号约定,两节的列定义任何档案都不得改动):三份档案第 4 节的术语表扩展表述随之与内核对齐——stem与economics从"符号约定作为附注行记入"改为"## 符号约定节必须写满",humanities明确该节写「本书不使用形式符号」而非删节;档案各自的附加台账(humanities 引文台账、economics 数据来源台账)改为附在两节之后。档案与内核的口径必须一句话都不矛盾:档案里留着"记在附注行"、内核已改成两节,阶段 4 就会读到两套写法(这类矛盾校验脚本查不出来,和 0.4.0 那次相邻档案分流规则漂移是同一类坑) -
落盘布局新增
00-前言.md后,workspace-layout.md的两处同步更新(目录树 + README 工作说明模板的文件表,并点明"读者从这里进入"、00-教材设计.md是作者向不必给读者);两份 README 的交付物清单、五阶段表阶段 5 产出列、「第一次运行会发生什么」、ASCII 流程图第 6 步同步,坑一的解法段补一段"这套设计还要对读者可见才算兑现" -
对外文案随多学科口径重写(纯文档,不触碰 skill 行为):GitHub 仓库 About 从"面向数学/物理/计算机等 STEM 学科"改为"学科无关内核 + 可插拔学科档案,理科真算复核、人文社科逐字核对引文出处",并补上漏写的第三宿主 WorkBuddy;标签新增
humanities、instructional-design、curriculum-design、backward-design、agent-skills、workbuddy六个(原标签只有stem,找人文社科用途的人搜不到);homepage指向 README -
两份 README 补齐多学科口径:新增
subject profiles: stem | humanitiesbadge,多学科提到开篇第一段(此前藏在第二段),学科档案段落改写为"四个可变点 + 两份档案共用同一套验证纪律";「怎么开口说」表后新增「换个学科,说法不用变」一段,讲明阶段 1 判定一次 → 逐章透传 → 中途不重判这条用户可感知的行为 -
清掉两份 README 里的 STEM 单口径残留:英文版「Why you can trust it」首条 "Every answer was actually computed" 与中文版早已改为按档案手段验证的表述不一致(改为 "Every answer was actually checked"),ASCII 流程图第 5 步的「每题真算复核」/"each answer recomputed" 同步改为按档案手段核过并补上学科档案 id 这件输入,
textbook-exercises一行的产出改为「理科附逐题可运行的复算代码,文科附出处与核验记录」 -
补写 0.4.0 遗留的待改项 5(成本预期):两份 README 的坑二一节写明无史料输入时预期约三分之一的题需作者事后核定(eval 8 实测 3/9),并说明这是
humanities档案"宁可标注也不逐字引用核不实的话"的必然结果,以及如何在阶段 1 把比例压下去;英文版另补上中文版已有、英文版缺失的 evals 欠账说明(eval 1/3/4 待跑、eval 2 待复验) -
三份
plugin.json的keywords补humanities与instructional-design;Codex 侧longDescription的纪律表述从"计算类例题答案必须真算复核"改为"按所用学科档案定义的手段实际核过",与内核口径一致