更新日志
This content is not available in your language yet.
本仓库的版本日志。格式参照 Keep a Changelog,版本号遵循 SemVer。
固定栏目「升级与存量影响」(ADR-0006,自本机制合入的首个版本起每版必答):四要素——①新文件/新契约;②老项目缺了会怎样(含静默降级点名);③怎么补(通常是 F13 升级流程或首用时自建);④是否破坏性。每版发版时在这一节固定回答「老项目缺什么、怎么补」。
[Unreleased]
Section titled “[Unreleased]”- F13 第 3 步补运行期文件保全(实测发现):真实项目带跑暴露的缺口——快照只含 git 跟踪面,kit 里的粘滞主题记录(
src/data/theme.json)与 AI 配置(.env)不在快照内,裸重拷会静默丢:前者丢了升级后首次裸 build 回落 dev-intro,后者丢了 LLM 配置。playbook 改为重拷前挪出 progress + theme.json + .env 三件、拷回后npm install(node_modules 不在快照)。升级与存量影响:无新文件新契约;老项目走 F13 不再丢粘滞主题/AI 配置;无需补动作;非破坏性。
[0.15.0] — 2026-09-14
Section titled “[0.15.0] — 2026-09-14”主题:存量项目升级兼容机制(ADR-0006 / spec #55)——kit 自报版本 + F13 升级流程 + 体检两探测项,兼容承诺从「不崩不丢」升到「全功能对齐:降级必告知、给补齐路径」;另修三个静默错误类审计 bug。
升级与存量影响
Section titled “升级与存量影响”- 新文件:
kit/kit-version.json(kit 快照版本标记,sync-plugin 打包写入,随插件/F1 拷贝自然进入用户项目)。新契约:skill 探测协议新增「版本」字段(用户项目与插件快照两处版本 diff);体检新增「版本漂移」「契约完整性」两探测项;F1 新增第 0 步探测分支。 - 老项目缺了会怎样:无 kit-version.json = 版本未知(按最老处理);kit 代码落后于插件快照 = 功能层静默降级(考点掌握度退化纯题维度、考点全景口头信号恒为零、推荐引不出错因),数据层不受影响(进度/闪卡/课已学完分毫不动);误被路由进 F1 时不再嵌套拷出
kit/kit(此前是未定义行为)。 - 怎么补:更新插件后敲
/ask-coach——快照会报版本差并引导 F13 升级(备份 progress → 重拷 kit → 补缺失文件模板 → 契约缺口逐项引导,只引导不代写内容);日常/study-doctor也能发现漂移与缺口。v0.14 新数据文件(oral-attempts.json / graph-map.json)无需补,首用时自建。 - 是否破坏性:否。progress 格式未变;主题包(kit 外)不被升级触碰;干净目录的 F1 从零初始化行为与从前一致。三个 bug 修复均为「静默错误改显式告知」:sync-study 裸跑现在跟随粘滞主题(此前静默把 dev-intro 课程站同步上去)、theme.json 损坏现在打 warn(此前静默切回 dev-intro)、远端 progress 旧快照缺 answers 现在显式 banner 告知「已忽略」(此前静默降级本地模式)。
- kit-version.json(kit 自报版本):
scripts/sync-plugin.mjs打包 kit 快照时从根 package.json 写入版本号;打包断言apps/quiz-app/scripts/lib/kit-version.test.mjs(node:test 带:产物必含该文件且版本一致——版本号与产物漂移即红,发版连带 sync:plugin 从纪律变测试)。 - F13 升级流程(ADR-0006 落地;ADR 定稿拟名 F12,同日 v0.14 已把 F12 给了知识图谱投影且随插件发出,编号顺延为 F13,附注在 ADR 内):存量项目一趟到全功能对齐——读两处版本报漂移 → 备份 progress(全程不解析不改写)→ 重拷 kit(保 progress 拷回,验无嵌套)→ 对照快照补缺失新文件模板(v0.14 新数据文件不补,首用自建)→ 契约缺口(排布表缺失 / 题缺 examPoint / 闪卡缺映射)逐项引导、只点名给补法绝不代写 → 体检收口(版本已对齐 + 无未告知缺口)。
- 探测协议「版本」字段(state.md §8):快照新增「版本」行——已对齐 / 落后 N 版 / 版本未知按最老 / 仓库本体;推荐算法第 2 条命中漂移即推荐 F13(功能层先对齐再谈学什么)。
- 体检两探测项(flows.md 体检节 /
/study-doctor):版本漂移(用户项目 kit 版本 vs 插件快照,三态报告)+ 契约完整性(排布表 / 题库 examPoint 标记率 / 闪卡映射率,缺什么怎么补);只读只报事实,修复顺序插在「校验门红」与「.env 缺项」之间。
- sync-study 裸跑不读粘滞主题(#52):裸跑
npm run sync:study此前固定EXAMPLE_THEME || 'dev-intro',把 dev-intro 课程站静默同步到别的主题的数据层上;现与 sync-examples 同口径(粘滞主题解析提为lib/theme-path.mjs的detectStickyTheme共享,env > theme.json 粘滞 > dev-intro),有单测。 - 远端 progress 旧快照静默降级本地模式(#53):服务器 progress.json 缺
answers时,前端as断言直接 merge 抛 TypeError 被吞 → 假「网络不可达」锁死本地模式,用户以为进度丢了。现在远端快照过与本地同构的形状校验,不合格 → 忽略这份快照 + 琥珀色 banner 显式告知「服务器数据格式旧,已忽略——下次保存自动修复」,不锁本地模式(后续 POST 照常,服务器 read-merge-write 自愈);SyncStatus新增'remote-invalid',i18n 四语同步。 - theme.json 损坏静默切回 dev-intro(#54):detectStickyTheme 的损坏分支此前无日志,现在打 warn(「theme.json 损坏,已回退 dev-intro——如非预期请检查该文件」),有单测断言 warn 必出。
[0.14.0] — 2026-09-14
Section titled “[0.14.0] — 2026-09-14”主题:知识图谱投影桥(ADR-0005 落地)——口头答题流水 / 口头掌握四态 / knowflow 图着色 / 前置关系推荐 / 全景连线,聊天新学的无题知识也有可信的掌握信号,知识结构连成图看见。
- 口头答题流水(
study/records/oral-attempts.json,唯一真源):聊天陪练的每次口头问答记一条明细(目标引用 / 对错布尔 / 真实Date.now()时间戳 / 来源三值 recall 抽背 · recite 复述 · case 案例评分点)。追加式 + 写前重读写回 + 消费端按时间戳取信去重,多会话并发安全;契约二「口头题计数」节 v0.14 起停写(总数从流水派生,解析器兼容旧记录照读合并,历史不丢);全景「练过/口头」信号切到流水。lib/oral.mjs纯函数(宽容解析 / 四元组去重合并 / 目标解析三级优先 EP 前缀→映射反查→图节点直引→裸考点名,聚合 EP 优先单主桶两视图不重复计)。 - 口头掌握四态(无题知识点也可判掌握):近期加权正确率(近 5 次权重 0.5/0.7/0.85/0.95/1.0 按权重和归一)+ 置信度封顶(1 次封 0.5、2 次封 0.8,防一次蒙对);四态与既有词汇对齐(空流水=未开始 / 最近判错或加权 <0.5=弱 / 加权 ≥0.85=掌握 / 其余进行中)。
mastery-report --json增oral字段:排布表全部考点 ∪ 流水裸知识点的四态与「问 N 对 M」统计 +oral.weakRanked口头弱项点名;既有考点四态判据 v1.1 一字不动,两通道合流负面证据优先(任一弱即弱;题没刷过口头最多推到进行中——验效果靠做题)。 - 考点节点映射 + 投影文件(唯一跨仓契约):
study/records/graph-map.json(knowflow 节点 ↔ EP 的个人映射,agent 提议、学习者逐条确认,守 ADR-0002 不上站不提交);lib/graph-bridge.mjs装载图与映射、构建只读投影({version:1, generatedAt, source, nodes:[{id, mastery, oral}]});mastery-report --graph <path> --write-projection产出投影到 graph.json 同目录(位置参数 /KNOWFLOW_GRAPH_JSON环境变量,同进度文件模式),无图无映射静默降级绝不报错。跨仓契约基物lib/fixtures/mastery-projection.fixture.json入库且测试断言可由判据原样重建(防漂移),knowflow 仓直接消费双向验证。skill 新增 F12 图谱投影流程(找图→映射提议确认→产出投影,绝不回写知识页)。 - knowflow 图着色(跨仓,knowflow 0.6.0):
knowflow graph检测投影文件(graph.json 同目录或KNOWFLOW_MASTERY_PROJECTION)后按掌握四态给节点着色(绿=掌握 / 琥珀=进行中 / 红=弱 / 灰=未开始)+ 注入「🎯 Mastery」图例——叠加只改 graph.html 渲染数据,graph.json 逐字节不变(其他消费方零感知)、知识页零回写;无投影 / version 无法识别(中性色降级)= 现状行为。标签器补「前置」语境词(前置/先学/依赖 → relation「前置」)。 - 前置关系推荐:图边关系标签 → 学习语义映射(前置/依赖/来源/引用/依据/使用/属于/衍生 = 「to 要先学」;缺 relation 只算关联不排序);
graph.weakPrereqs给每个弱考点的前置链(含前置掌握状态)、graph.weakOrdered给尊重前置顺序的推荐序(稳定拓扑含传递,环安全)。推荐理由从「刷 EP-12」具体到「前置概念 EP-01 还弱,先补它」——依赖顺序优先于清单顺序(F10 开场纪律 + coach.md 讲前查前置链)。 - web 全景连线可视化:覆盖快照扩展
graph.edges(图边投成 EP 级连线,仍是派生布尔面隐私边界不变);首页全景面板自绘 SVG 叠加连线(零新依赖,沿 day 分组布局,实线箭头=前置、虚线=关联、近同列侧向弓弯防重叠)+ 节点掌握四态圆点;shouldRenderGraph可读阈值(无图/空边/超 200 边/超 80 考点回退现有分组清单)——没装 knowflow 的用户看不到任何变化。i18n 四语同步。
Changed
Section titled “Changed”- 文档同步(四语):
docs/ai-cli-guide四语补口头四态判据表、知识图投影与前置推荐章节、全景口径改口头流水;skill 三参考(flows.md 契约二停写条款 + F12、coach.md §3.4/§6.7、state.md 口头弱项与图信号);CONTEXT.md 考点全景词条补连线层;AGENTS.md 数据闭环与流程面(F1-F12)。 - 发版随带:plugin 双 manifest 与市集清单随版(sync:plugin,kit 快照字节契约复验)。
[0.13.1] — 2026-09-14
Section titled “[0.13.1] — 2026-09-14”主题:命令改名避撞——薄命令 /doctor、/recap 与 Claude Code 内置命令硬撞名(内置优先于插件 skill),加 study- 前缀成为 /study-doctor、/study-recap;命令面其余不动(/ask-coach /coach 经查无撞名)。
Changed
Section titled “Changed”- 薄命令改名:
skills/doctor→skills/study-doctor、skills/recap→skills/study-recap(git mv 保留历史)。撞名依据:Claude Code 官方命令表内置/doctor(安装/配置体检,带自动修复)与/recap(会话回顾,输出限 400 字符)——插件发行目标明确含 Claude Code,内置命令优先,同名插件 skill 会被遮蔽且语义混淆。study-前缀撞名面为零(内置无 /study-*、社区市集无同名)。当初选 doctor 的理由「npm/brew doctor 惯例」恰是 Claude Code 也用它命名的原因,理由反噬故弃。 - 全链路同步:主 skill 开篇菜单、coach 薄命令分流、flows.md 体检节标题、sync-plugin 注释与市集描述、安装脚本注释、README 四语命令清单、docs/ai-study-kit 四语命令表与安装示例、CONTEXT.md skill 词条、AGENTS.md——
/coach与/ask-coach未动(无内置撞名、无社区同名热门)。
[0.13.0] — 2026-09-14
Section titled “[0.13.0] — 2026-09-14”主题:聊天层优先——把主学习方式(跟 agent 聊天陪练)撑成一等公民:教练纪律 / 考点全景图(讲·练·掌三信号)/ 案例大题陪练 / 命令面收敛四件(/ask-coach + /coach /doctor /recap),外加 teach 抓参考正文与冲刺包打印版。
- 教练开场纪律三条(F10 第 0 步):①开场先跑全景报告浓缩版报「今天最该练 + 为什么」——建议基于数据不基于印象(推荐算法 10 条链不推翻,只把执行时机提前到陪练开场);②弱考点没清软坚持先清再讲新内容,不硬锁——用户执意跳过则在当站记录留痕「跳过未清:
(原因)——下一站开场再清」;③ srsDue > 0先口头抽背 2-3 张到期卡(答错记错点+排待办)。倒计时只消费 MISSION 声明的 deadline,不自设催办节奏。 - 考点全景图(讲 / 练 / 掌三信号):每考点讲过(契约二学习记录覆盖 ∪ 课已学完——全部课读完才点亮课程通道,部分读完不归因宁少报不虚报)、练过(有答题记录,口头题计数作弱信号)、掌握(四态判据不变),按 MISSION 排布表 day 列分学程块 + 组头汇总行(已讲 X/N · 已练 Y/N · 已掌握 Z/N)。数据层
lib/panorama.mjs(mastery-report --panorama [--json],聊天层永远现算);skill 加「报进度」意图入口 + 全景卡模板(state.md §3)。web 首页面板升级为全景(TS 移植src/lib/panorama.ts同口径,双实现纪律沿掌握度先例):「讲过/口头」信号走 build 时产出的内容无关覆盖快照src/data/coverage.json(sync-examples 产,只含考点 id/三信号布尔/计数——个人叙述不出本地,内容断言测试有金句/错点原文即红);面板新鲜度 = 上次 build,聊天层现算,两端口径一致。 - 契约二口头题计数:学习记录(
study/records/*.md)新增「## 口头题计数」节——每站按考点记「问 N 对 M」(考点名可带 EP 前缀,同名行改数字不堆历史行)。解析器lib/records.mjs的parseSessionRecord纯函数:frontmatter + 已过考点/错的点/待办/口头题计数四节,旧格式无计数节、无 frontmatter、frontmatter 残缺均不抛错字段缺省(沿「只报事实、不要求补格式」兼容原则)。 - 案例大题陪练(coach.md §6.7):对排布表里的案例型考点(DFD/ER/UML/算法/设计模式一类)出真题风格原创大题(品牌中性化与题库同规),按解题范式四步带练(读题拆问题 → 定方法 → 逐步作答 → 对照评分点),评分点全中才过(补答后全中也算),判定进契约二口头题计数;解题范式卡沉淀
study/notes/(随 build 上站)。案例题不进 questions.json、不扰动客观题库与四对齐校验。 - 体检(
/doctor+ skill 意图入口):一句话聚合串跑既有四门校验(品牌扫描/题库 QA/单测/四对齐)+ 环境探测(.env LLM 三项、TTS、:8787后端、EXAMPLE_THEME 解析、sync 产物新鲜度),输出过/红汇总报告 + 固定修复顺序(sync 不新鲜最前——先排除假信号)。零新校验逻辑,只做编排聚合;与 F8 分工:体检是诊断视图不跑 build。 - 命令面收敛为四件:主 skill 更名 ask-coach(
/ask-coach,SKILL 开篇哲学「命令名即菜单」;原命令名 /ai-study-kit,插件名 ai-study-kit 终身不变——市集名不可改);薄命令三件/coach(陪练直入 F10)//doctor(体检)//recap(错题串讲 F4,命名避开与已装生态撞名的 grill/teach/learn),各自十几行 SKILL.md、共享主入口 references/、先探测再进流程。基建:sync-plugin.mjs多 skill 化(循环 skills/ 目录打包)、安装脚本多 skill 安装/卸载(bash 3.2 兼容)。 - teach 抓参考正文进备课上下文:产课时把 RESOURCES.md 与 course-spec resources 的链接页面正文抓进 LLM 备课 prompt(「以参考材料建概念」从引用层落到内容层,备课第一依据)。
lib/resource-fetch.mjs的fetchResources:本地缓存按 URL 去重(node_modules/.cache/teach-resources/)重跑不重抓;单源失败降级回 URL 清单引用,产课不中断;prompt 构建抽teach-utils.buildLessonPrompt纯函数(dry-run 单测断言参考正文进 prompt)。 - 冲刺包打印版(F11 第 5 件):产包时附带单文件
study/sprint/print.html——四件套按「金句 → 警示 → 必背 → checklist」合并,自包含内联 CSS、无导航外链,@media print去背景 11-12pt 衬线字号、章节连续排版只防行内截断、checklist ☐ 勾选形态;浏览器 Ctrl/Cmd+P 即存 PDF 或打印,不引入 PDF 生成依赖。
Changed
Section titled “Changed”- 文档同步(四语):README 命令入口改
/ask-coach+ 四命令清单(「命令名即菜单」);docs/ai-study-kit四语更新安装路径(skills/ask-coach + 多 skill 安装)、命令面表、更名史、体检/打印版入流程表;docs/ai-cli-guide四语补 teach 参考正文抓取行为;CONTEXT.md skill 词条改四命令面 + 新增「考点全景」词条;AGENTS.md 结构树/约定/分发段同步。 - 修复:teach-generate 调用
wrapLessonHTML处sources未定义(ReferenceError,v0.12 引入的回归);dotenv 17 的 tip 横幅打进 stdout 污染三个 CLI 的--json约定(quiet: true)。 - 装载器去重:
mastery-report --panorama与 sync-examples 的覆盖快照共用lib/coverage.mjs的readSessionRecords/lessonsReadState(课已学完口径与 progress.ts isCourseRead 同构)。
[0.12.0] — 2026-09-13
Section titled “[0.12.0] — 2026-09-13”主题:掌握度补完——DeepTutor 对标遗留清单四项落地(课程出处回链 / 三 CLI --json / 闪卡 EP 映射 / 掌握度进 UI),数据闭环从命令行走进答题站。
- 闪卡 examPoint 映射 + 掌握度判据 v1.1(题 + 闪卡双通道):
flashcards.json的卡可带可选examPoint(EP-NN,与题库同一命名空间),types.ts的Flashcard同步扩字段。有映射的考点,mastered 判据还要求映射闪卡全部毕业(SRSphase = review,墓碑=已重置算未毕业)——只差闪卡时是「进行中」不是「弱」(不掩盖负面证据,也不虚报掌握)。无映射考点判据自然退回纯题维度,不硬凑。判据两侧实现(scripts/lib/mastery.mjs+ TS 移植src/lib/mastery.ts,复用 progress.ts 的 streakToPass)注释互指、必须同步改;单测两侧都有(node:test + vitest)。mastery-report 文本行带「闪卡未毕业 N(ids)」、--json的 points 带flashMapped/flashGraduated/flashOpenIds。 - 掌握度进 web app(首页「考点掌握度」面板):首页新增折叠面板——按考点列四态 chip + 对题进度 + 「闪卡未毕业 N」徽标;考点显示名由 sync-examples.mjs 从 MISSION 排布表解析产进
src/data/theme.json的examPoints(UI 不重复解析 markdown)。与 mastery-report / skill 探测同判据同口径,多主题读端过滤照旧。无考点标记的主题优雅降级为提示行。i18n 四语词典同步。 - 三 AI CLI 加
--json(agent 管道消费):teach / grill / podcast 全部支持机器可读输出——人读日志降级 stderr,stdout 只出一份结果 JSON(产物路径清单;grill 无错题等 noop 路径出status: "noop"),与 mastery-report--json同约定(DeepTutor CLI 的--format json同构先例)。 - teach 出处回链(「以参考材料建概念」的产物面):主题目录有
RESOURCES.md时解析其链接(**标题**(说明):URL与 markdown 链接两种形态,纯函数parseResourcesMd/mergeResources有单测),与 course-spec.resources 按 URL 去重合并——既进 LLM 备课参考,也进每课页尾「📚 出处」块(四语文案进 langs.mjsui.sources,.sources样式进共享 styles.css)。dev-intro 两课已手工注入同款块(与模板输出逐字节一致)。
Changed
Section titled “Changed”- 文档同步(docs/,四语):
ai-cli-guide.mdteach 输出结构补出处回链条目、三 CLI 用法补--json、mastery 判据表更新为双通道口径并注明 Web 面板同判据;en/es/ru 译本同步。 - 口径文档与 skill 源:CONTEXT.md「考点掌握度」词条改判据 v1.1(双实现互指);AGENTS.md 数据闭环条目与 AI CLI 条目(
--json约定、RESOURCES 合并)同步;skillstate.md§3 判据行更新、flashOpenIds进输出消费说明。skill 源已改,sync:plugin随发版重跑。
[0.11.0] — 2026-09-13
Section titled “[0.11.0] — 2026-09-13”主题:数据闭环——串讲与推荐之间补上机器层(借鉴 DeepTutor「tutoring as a data loop」论点:交互痕迹 → 学习者事实 → 反哺推荐),推荐理由从「错题多」具体到「EP-03 连错 2 次,错因:权限位组合不熟」。
- 学习者档案(
study/records/profile.json):grill-wrong 串讲顺产的机器可读错因档案——LLM 在聚类精讲之外多一次小调用,把考点级 wrongReasons / advice / 串讲次数落盘。合并语义:新旧考点有任意题 id 重叠即同一考点(簇名漂移不影响累积),timesGrilled 递增、错因去重合并、题 id 取并集(lib/grill-utils.mjs的mergeProfile,纯函数有单测)。学习者私有:随study/records/被 sync-study 排除不上站,新增 .gitignore 条目不提交。agent 直产路径(F4 主推)在 flows.md 档案契约里同语义手写。 - 考点掌握度(
lib/mastery.mjs+mastery-report.mjs,pnpm run mastery):确定性派生、零 LLM——考点(题examPointEP-NN)四态:掌握(题全答对且无未毕业错题)/ 弱 / 进行中 / 未开始;判据与 progress.ts 的 streakToPass 毕业口径一致,考点名从 MISSION 排布表解析。--json给 agent 消费,人类读表格;报告自动 join 学习者档案带出错因。刻意不含闪卡毕业(闪卡与考点无映射,硬凑是假判据,边界写进 CONTEXT 词条)。判据 13 个单测(node:test,随 pnpm test 跑)。 - skill 数据闭环消费(SKILL.md / state.md / flows.md):探测协议八字段扩为九——新增「弱考点」(mastery-report 派生 + 档案错因);快照模板加弱考点行;推荐算法第 6 条点名最弱考点并引用档案错因;意图路由新增「掌握度 / 弱考点 / 哪里最弱 / 考点报告」入口;F4 双路径都覆盖档案产出(CLI 自动顺产 + agent 直产照契约手写),串讲完下次探测自动衔接。AI 配置探测升级为分项就绪矩阵(teach=LLM;grill=LLM+后端;podcast=LLM+TTS 可选)。
- 文档:
docs/ai-cli-guide.md四语——grill 流程补档案产出条目 + 新增 mastery-report 章节(无 AI 伴生工具);CONTEXT.md 新增「考点掌握度」「学习者档案」词条。
Changed
Section titled “Changed”- 文档同步(docs/,四语):
ai-cli-guide.mdteach-generate 输出结构补「核心机制示意图(每课 ≥1 张内联 SVG,图大字少、只画机制)」条目——0.10.0 产课视觉条款的文档面;en/es/ru 译本同步。 - 各处 description 统一中文为主(默认语言收口):GitHub About、根
package.json、市集清单(marketplace.json+ 双 manifest)与 SKILL frontmatter 的 description 从英文/英文为主改为中文为主(英文降为尾缀一句,沿用 README tagline 的不对称先例;manifest 全文双语仍走description_i18n不变)——与 README/官网 root/docs 的中文基准对齐。源:scripts/sync-plugin.mjsDESCRIPTION 常量 +skills/ai-study-kit/SKILL.md,已重跑 sync:plugin。
[0.10.0] — 2026-09-06
Section titled “[0.10.0] — 2026-09-06”主题:图解降维重讲——教学链补上视觉通道(社区流行的 ELI5 skill「零基础假设 + 大图少字」纪律吸收进 coach.md,teach 产课加视觉条款)。
- 图解降维重讲(coach.md 新增 §3.10):讲解升级梯补上最后一格——§3.8 换说法两轮仍讲不通(变体仍错 / 复述反复丢同一属性 / 用户直说文字看不懂),或机制天然是图(流向/层次/包含/对比,如 git 三区、网络分层),换媒介不换措辞:零基础假设 + 一张大图 + 极少文字把机制画出来。一图一机制(图承八成信息,节点/箭头/相对位置即语义——把段落塞进方框是排版不是图解);终端对话 ASCII 图内嵌即时画,复杂机制产自包含 HTML 图解卡落
study/notes/随 build 上站(study/四分法说明同步);纪律不变——深度仍按排布表、自造图解标注「教练自造」、画懂不算过(回考/复述验证才算过)。词汇速览与 F10 第 3 步同步挂接。 - 意图路由新增图解入口(SKILL.md):「大白话讲 X / 画个图 / 文字看不懂」直达 F10 图解降维重讲——用户不必知道教学法词汇,说人话就触发。
- 产课视觉条款(teach-generate.mjs):system prompt 内容要求新增「核心机制示意图」——每课至少 1 张内联 SVG(viewBox + 宽 100% 自适应),节点+箭头表达流转/层次/对比,图大字少、只画机制不画装饰,图内文字跟随课程输出语言,禁止外链图片与 emoji 拼贴。此前课程产物纯文字(示例课唯一的图是手工渲染的 ASCII PNG),此后课程自带机制图。
Changed
Section titled “Changed”- 文档全面重写(docs/,v0.9.0 对齐):七篇中文文档重写——修正 v0.9.0 后的过时路径(错题精讲
wrong-questions/→study/wrong-questions/,示例表换新文件名);方法论补入教练线(F10 陪练教学 / F11 考前冲刺)与学习痕迹study/伞目录(含隐私边界表);theming.md 重构为字段表 + 最小示例的易读结构;移除 methodology / four-alignment 文首的英文摘要引用块 hack(四语全版取代)。 - 文档四语化(zh/en/es/ru):新增 21 篇译本
docs/<name>.en/.es/.ru.md(README 同构:顶部语言栏互链、交叉链接走同语言版本);AGENTS.md / README 四语的文档导航与「仓库文档是中文的」说明同步更新,译本 README 的文档链接改指各语言版本。 - 官网四语同步(sync-docs.mjs 升级):中文挂站根、
docs/<name>.<lang>.md译本自动挂/<lang>/对应路径(缺篇跳过、Starlight 回退中文 + 提示条);站内自动剥离 GitHub 语言栏、./xxx.<lang>.md与裸.md交叉链接均重写为同语言站内路径;en/es/ru的 method 手工译本层转正为 sync 产物(真源移至docs/,gitignore + 解除跟踪)。官网文档页从「中文 7 页 + 2 篇英西俄」扩为四语各 7 页。
[0.9.2] — 2026-09-05
Section titled “[0.9.2] — 2026-09-05”主题:讲解结构外显——全家福概览 + 拆解块可见标签,把「先总览后拆解」写进默认纪律。
- 讲解结构外显(coach.md §3.6 强化 + 新增 §3.9):①先地图后路程升级——成员多于一两个的考点(如存储体系),概览先给「全家福」(各是什么/什么关系/干什么用/量级对比),塔立住才拆零件;亲戚概念(如 SRAM/DRAM)不得「顺带」塞概念半路,进全家福或独立成块。②新增 §3.9 拆解块贴可见标签:是什么/为什么/怎么用(怎么考)写在段首——三段式是心里的骨架,标签是写在脸上的骨架,标签一丢体感就是「乱七八糟」。词汇速览与 F10 第 3 步同步挂接 §3.5-3.9;plugins/ 副本经
sync:plugin重生成。源于实战反馈:结构与格式纪律齐备、唯独全家福与标签丢失的一讲,仍被用户判「讲得乱七八糟、不是先概览后拆解」。
[0.9.1] — 2026-09-03
Section titled “[0.9.1] — 2026-09-03”主题:coach.md 讲解口吻与台阶纪律补章(§3.5-3.8)——管住三段式管不住的「腔调」与「颗粒度」。
- 讲解口吻与台阶纪律(coach.md §3.5-3.8,v0.9.1):三段式管结构,新增四节管腔调与颗粒度——§3.5 说话腔不是写作腔(短句口语直接称「你」、禁模板套话、先接话再推进、正文自然段列表只留给题与步骤);§3.6 先地图后路程(开讲先给两三句大白话全景、零件讲完拼回整图——治「每步都对、整体拼不起来」);§3.7 一次只上一个新东西(符号最后出场:具体例子 → 挂用户已懂的旧概念 → 才上符号公式;一句只装一件事——治台阶过大用户沉默跟丢);§3.8 停一拍与换说法(每讲完一小块停下确认、第二遍讲必须换角度换比方)。F10 第 3 步讲解纪律行挂接 §3.5-3.8,词汇速览新增「口吻与台阶」。源于实战反馈:格式纪律(选项分行、一次一题)齐备而用户仍报「AI 味浓、不像老师在跟我说话、没讲清楚」——结构全对、腔调是讲义腔,体感仍是讲义。
[0.9.0] — 2026-09-01
Section titled “[0.9.0] — 2026-09-01”主题:教学主线成体——F10 陪练教学重写(coach.md 教学法单一事实源 + 五模式考法)+ F11 考前冲刺新增 + study/ 学习痕迹伞目录 + 课已学完显式确认制。
- F10 陪练教学(coach flow 重写,v0.9.0):由 v0.8.0 的现场串讲升级为完整陪练教学流程。教学法收敛为单一事实源
references/coach.md——三段式讲透(是什么/为什么/什么时候用)、五模式考法(quick·deep·two-step·adaptive·custom)、每考点一锚点金句、定义零容忍、诊断纠偏表;COACH.md(主题侧教纲)与study/records/(学习者侧记录)双契约;逐考点增量落盘、跨天续站、旧目录 learning-records/ 兼容识别(迁移自愿);「我哪没懂」诊断纠偏入口;阶段笔记study/notes/主动生成并交棒 F3 刷对应题集。 - F11 考前冲刺(新增,v0.9.0):距 MISSION.md 的 deadline ≤ 7 天,或用户明说「冲刺/考前/突击」触发;deadline 是硬前置(缺失先引导补,绝不瞎猜倒计时)。冲刺包四件套——金句速记表 / 易错警示 / 必背清单 / 考前 checklist——产
study/sprint/;只收割不补课(收割 records 金句与错题档案),背熟交棒 F3 模考。 - 学习痕迹 study/ 伞目录(v0.9.0):主题包内学习产物四分法——records(进度档案,本地私有)/ notes(阶段笔记)/ wrong-questions(错题串讲)/ sprint(冲刺包)统一住
study/下;F4 生成脚本输出由wrong-questions/迁至study/wrong-questions/;sync-study 排除私有目录(study/records、learning-records、.mimosa 工具状态),学习者痕迹永不随静态站发布。 - 课已学完显式确认制(quiz-app,v0.9.0):课程页新增「✓ 学完了」按钮——点击记入、再点撤销、打开零写入(替代旧「iframe 加载即自动记已读」的失真口径);撤销墓碑 coursesReadTombstones 跨设备合并不复活;确认后按钮位变「去刷这课的题」直达题集(theme-config
lessonTopics映射,无配置走文件名同名约定,解析不出则不渲染);指标与文案「课程已读」全面更名「课已学完」(四语词典同步)。 - 探测与推荐升级(v0.9.0):快照新增第 8 行陪练(进行中站三形态判定 + 距考期倒计时,deadline 缺失亮 ⚠);推荐算法扩为 10 条(新增考前冲刺与续站档位,头部顺序「闪卡 → 冲刺 → 续站」,续站需用户点头才跑);菜单按教学/应试/内容/运维四条线分组;意图路由新增「继续学习/陪我练」→F10、「冲刺/考前」→F11。
- 测试与工具(v0.9.0):课已学完三断言(点击记入 / 再点撤销含合并后不复活 / 仅打开零变化)与「去刷这课的题」题集解析入
courseProgress.test.ts;LLM 配置用例密封性修复(缺失项显式传空串,开发机真实 .env 不再注入用例);sync-plugin 快照遇「已跟踪但删除未 staged」文件跳过并记名(此前 wrong-questions 迁移期间 ENOENT 会崩掉整个 sync)。
[0.8.0] — 2026-08-28
Section titled “[0.8.0] — 2026-08-28”主题:skill 教学流程补全——F10 现场串讲(对话式入门新主题)+ 外部主题包探测收尾。纯 skill 版本,答题站与 kit 快照无改动。
- skill 外部主题包收尾(v0.7.1):SKILL 硬红线与 flows 改内容纪律不再把内容源写死为
examples/<theme>/(外部主题包同受“只改源、不碰同步产物”约束,消除向套件仓库内误指路的歧义);state.md §3 进度探测脚本按 theme-path.mjs 口径解析主题目录与 coursesRead 的 basename key——原脚本硬编码examples/前缀,外部主题包形态下题/卡 id 集为空、进度被误报为 0。plugin 副本已重生成。
- F10 现场串讲(walkthrough)flow(v0.8.0):对话式入门新主题的教学流程——「知识点一块一块讲、题一道一道答」,区别于 F6 产课(持久 HTML)与 F4 错题串讲。事实核查走 kit 通用概念(MISSION 考点排布表定深度、questions.json 词频定考点、lessons/RESOURCES 做概念权威、/api/progress 看用户状态);教学纪律为实战提炼:每主题 6-12 考点、一考点一锚点金句、类比+助记标配、每考点 2-3 题一道一道提交、出题零提示、即时判定、变体验证、结束同回合主动固化(learning-records + wrong-questions 页 + 诚实定位覆盖缺口)。SKILL 意图路由与 docs 流程表同步。
[0.7.0] — 2026-08-28
Section titled “[0.7.0] — 2026-08-28”主题:插件=发行形态(零 clone 建站)+ 更名终名 ai-study-kit + GitHub 站内增长启动(wayfinder 图谱 #24:0★ → 30★;本版含 F1 dogfood 实测零修复走通)。
- 插件图标:marketplace 清单
icon字段(jsDelivr 绝对 URL → 仓库根assets/logo.png,zcode 官方源同款做法;raw.githubusercontent 直连会撞 429/墙)+ 插件包根icon.png实体文件(对照 cloudflare 插件带 logo.svg)。图标与 quiz-app/官网三端同源(256×256),生成逻辑入sync-plugin.mjs,重跑sync:plugin跟随。 - 插件/skill 更名 study-coach → ai-study-kit(v0.7.0,全位置一致):市集插件名发布后终身不可改,趁零用户窗口定终名(与仓库名一致、可搜索)。skills/ 与 plugins/ 目录、docs 文档页(原 docs/study-coach.md)、安装脚本、marketplace 清单、README 四语、官网侧栏与手写页全部同步;旧名仅存于本 CHANGELOG 历史条目。
- 插件=发行形态(装插件零 clone 建站):
plugins/ai-study-kit/kit/新增迷你仓库快照(apps/quiz-app + examples/dev-intro 的 git 跟踪面)——用户装 ai-study-kit 插件即得完整可构建答题站,skill F1 流从快照拷进用户目录(~/study-kit/),全程不碰 GitHub。学习项目与插件升级互不干扰(主题包住 kit 外、进度按题 id 存)。README 四语主入口反转为“装插件开始”,clone 降为开发者路线。版本 0.6.0。 - 外部主题包(主题目录可住仓库外,ADR 0004):
EXAMPLE_THEME/--theme支持路径形态(含分隔符即外部包,主题名取 basename)——sync-examples / sync-study / teach-generate / grill-wrong 四脚本统一走scripts/lib/theme-path.mjs解析;theme.json扩为{theme, dir?}(外部形态记源目录,detectTheme 粘滞回退靠它)。消费者可把学习内容放自己的项目目录,套件仓库只当工具。README 四语 make-it-yours 补外部包选项;skill 的状态探测/部署注记同步(plugin 副本已重生成)。 - 修复 sync-plugin.mjs 在受限 Windows 下静默半途而废:cpSync 目录递归被安全策略直接终止进程(rmSync 已执行 → plugin 目录被清空),改逐文件 copyTree(与 sync-study.mjs 同款修复)。
- 主题显示配置机制(theme-config.json):题站呈现层全面配置化——首页排序(
topicOrder)、主题显示名(topicLabels)、考点子主题展开(subtopics)、来源徽标(sourceLabels)、核心/拓展层(sourceLayers+layerTopics)、考点深度徽标(epDepth)、卡片配色与图标(topicStyles)全部住在examples/<theme>/theme-config.json(sync-examples 拷到src/data/,缺省写{}),换主题不再改任何应用代码。全字段可选、缺什么回退什么(原始 id / 字母序 / 不展开 / 无层=全计划内 / 默认样式)。字段表与示例见docs/theming.md;dev-intro 带最小示范配置。机制测试(回退语义/中文序号排序/层派生)+ settings LWW 合并测试入列,pnpm test170 项。 - 题目配图渲染:
Question.imageRef在答题卡渲染examples/<theme>/assets/的配图(sync:study 已同步到public/study/<theme>/assets/),BASE_URL 前缀拼根绝对路径防二级路由 404;alt 文案四语词典(q.imageAlt)。 - 层筛选 chips(拓展加练开着时):练习页全部/核心/拓展三档切换 + URL
&layer=直达(首页纯拓展块、上次答到拓展题的链接携带);开关关着时层概念整体不存在。层作用域由layerTopics配置,无配置无层。 - 计划内口径(主进度):
computeStats/readCount/首页计数/随机 20 沙盒统一为计划内题(isPlanned = source 层 ≠ 拓展,无层来源自动全算),拓展层答题不推主进度但错题照进错题本。
- skill 外部主题包收尾(v0.7.1):SKILL 硬红线与 flows 改内容纪律不再把内容源写死为
examples/<theme>/(外部主题包同受“只改源、不碰同步产物”约束,消除向套件仓库内误指路的歧义);state.md §3 进度探测脚本按 theme-path.mjs 口径解析主题目录与 coursesRead 的 basename key——原脚本硬编码examples/前缀,外部主题包形态下题/卡 id 集为空、进度被误报为 0。plugin 副本已重生成。
Changed
Section titled “Changed”- 设置面板措辞:三项偏好改为「默认值先行」表述(拓展加练:默认关…;答对自动跳题:默认开…;每日新卡配额与闪卡页同步),移除未使用的
settings.open词典键(四语同步)。 - 本地模式横幅关一次永久关:localStorage 记忆(此前每次刷新重现);同步 error 横幅保持会话级——出错每次都该看到能重试。
- 子主题前缀剥离通用化:
(BA|IA|指标|CN)·岁月正则退役,统一stripSubtopicPrefix(ASCII 标识符前缀 +·/:/-分隔)。
[0.5.0] — 2026-08-23
Section titled “[0.5.0] — 2026-08-23”主题:进度模型扩展(多主题隔离 + 课程已读)+ study-coach plugin 分发 + 认证内容包实战验证。(图谱周期 #16「v0.4」;因 v0.4.0 已于 2026-08-17 割出,按 SemVer 本版发 0.5.0。)
- 多主题进度隔离(#18,读端过滤):切主题后旧主题的到期卡/错题不再混入学习流——进度派生视图(统计/错题本/闪卡队列/nextDue/上次答到/study-coach 探测)一律先与激活主题的题/卡 id 集求交;
resetWrong/resetRead/resetSrs支持可选ids主题限定,不再误伤其他主题进度;存储与合并零变更、老 progress.json 零迁移。每日新卡配额有意保持跨主题全局。 - 课程已读记录(#19):
progress.coursesRead(key=<theme>/<lesson文件名>,per-key max LWW 合并);sync-examples.mjs产课程清单src/data/courses.json;课程页课程目录栏点击定位 + iframe 每次加载(含课站内部互链)自动标记已读,「课全读」完成边界在 UI/skill/CLI 三处统一可机读;study-coach 快照新增lessonsRead并驱动「先读课 vs 直接刷题」分流。 - study-coach plugin 分发(#22):仓库自带 marketplace(
.claude-plugin/marketplace.json)+plugins/study-coach/(scripts/sync-plugin.mjs从skills/study-coach/单一事实源生成,版本跟根 package.json);zcode / Claude Code 添加 marketplace 装 study-coach,更新随市集刷新免手动重装;pnpm run skill:install老路径保留(双路径)。 - 软件设计师认证内容包(#5):
examples/software-designer/300 题 + 60 卡 + 10 课,agent 直产全链验证(排布表契约 → 照表产题产卡 → 四对齐校验绿)。 - 首轮 agent 直产错题串讲 + 播客逐字稿(#7):真实学习闭环全流程跑通(300/300 全答、错题全毕业、3 簇串讲、播客稿),课程修复 9 节;产线编排实证 ≤5 并发分批 + 死 agent 捡产出 + 主会话兜底有效。
- 产题走 agent 直产 + 考点排布表契约化(#15):MISSION.md 新增「## 考点排布表」节(
考点id(EP-NN) | 考点 | 深度 | 题型×题量 | day | 闪卡数)作为机器可校验契约;bidirectional-check.py读表做三向校验——题→课覆盖、大纲→题对账(题量/题型/day/闪卡数,漏标 examPoint 只 △ 提醒)、闪卡覆盖(声明 0 卡 = 了解级跳过);无表主题回退高频词模式 + ⚠ 告警不报错,换主题不再改脚本。质量门硬化:✗ → exit 1(原先校验失败也退出 0)、△ 警告不拦截、目录不存在 exit 2。契约黑盒测试(CLI 边界 + 三套 fixture:带表对账 / 无表回退 / 对账不符拦截)挂进既有 node:test 层,pnpm test自动跑到。 - dev-intro 活示例:MISSION 补排布表(4 考点),10 题补
day/examPoint标注,四对齐复验契约模式全绿。 - study-coach F2 产题纪律化:新增「排考点」用户确认点(先对齐排布表再动笔);产题步骤升级为照表逐考点直产 + 出题纪律清单(id 稳定、examPoint/day 对齐表、选项等长不给线索、多选无半对歧义)+ 参考配比(single:multi:judge ≈ 5:3:2、难度 易:中:难 ≈ 3:5:2);产卡照表配卡。F8 去掉「手改 keywords」提醒;
docs/study-coach.md摘要同步;skill 已重新分发。 - README 四语 + 官网「让 AI agent 替你产题」:四语 README 教程加 agent 产题小节(手工路径为主,排布表是人机契约);官网 get-started 四语修「用 AI 生成」空许诺断链(给
/study-coach真实入口与流程指引),your-theme 页加产题流程节(en/es/ru 为中文 fallback 页,一处修改全语生效);README 致谢改具体——点名 teach skill 的工作区结构与选项等长纪律两处借用。 - CONTEXT.md 术语表收编「考点排布表」「skill(vs CLI)」「主题(theme)」三词条。
- site 官网四语:Starlight locales 加
es/ru(挂/es/、/ru/,未翻页走中文 fallback + 提示条,与 en 同分层策略);新增 8 页翻译(es/ru 各 index / get-started / methodology / four-alignment,术语对齐 quiz-app UI 词典);页头Header.astro的双语布尔判断改四语 label 表,「文档」链接按语言取路径前缀;README en/es/ru 的官网语言描述与文档导航链接同步(es/ru 读者直达本语言页,顶部快速上手链接此前指向中文根路径)。 - site 语言自适应:首访根路径按浏览器语言(
navigator.languages按序取首个命中 en/es/ru)跳对应语言站;localStorage ask-site-lang记用户最后浏览的语言,语言切换器的手动选择自然被记住(与 quiz-app 的ask-lang同思路);仅根路径跳转、深链不劫持。GitHub Pages 纯静态托管做不了服务端跳转,脚本内联在Header.astro同步执行。 - site 页头常驻入口:自定义 Starlight
Header.astro——页头右上角常驻「文档 / 在线试玩」两个入口(默认页头没有外链位);初版「文档」入口被 Starlight 内置样式永久隐藏,同批修复并重排右上角分组。 - README badge 扩容:两枚扩六枚居中——新增 deploy 状态 / 界面四语 / PRs welcome / last commit;brand-scan 放行 shields 动态 badge 的 owner URL;README 四语同步。
- ADR-0001 决策入库:产题走 agent 直产、不建第四个 CLI——调研归 agent、纪律与质量门归既有脚本,升级触发条件与备选方案见
docs/adr/0001-agent-authored-questions-not-cli.md;措辞对齐 issue #5 用「认证内容包」(初稿措辞撞个人词红线,deploy CI 曾被挂)。 - 中文 README tagline 补一行英文一句话简介:给国际读者的可发现性,默认语言不变;该行有意不对称、不参与四语同步(约定写入 AGENTS.md)。
Changed
Section titled “Changed”- study-coach F4/F6 双路径口径(#8 复盘拍板):错题串讲与产课默认走 agent 会话直产(主推),无 agent 环境配
.env走 CLI(podcast 音频合成仅 CLI 可干);skill 已重新分发。 docs/bidirectional-check.md重写为契约模式文档(退出码语义、方向 2 对账规则、0 卡声明、回退模式与告警)。- docs 六篇全量优化(官网 en/method 两篇译文同步):术语统一——teach/grill/podcast 一律称 CLI、skill 仅指 /study-coach;事实修正——删不存在的 moduleMap、题库分组按 topic(day 为可选日程标签)、teach 输入为 course-spec.json、configuration 音色默认 male/female;bidirectional-check.md 去掉与实际脚本漂移的内嵌源码、补
pnpm run check:alignment入口;ai-cli-guide 主推pnpm run ai:*短命令并补 teach skill 源流致谢;引言统一中文导语。
- 自托管后端根级静态文件裂图(e347235):logo.png/favicon.png 掉进 Hono SPA fallback 被当 index.html 返回(仅 pm2 部署可见,vite dev / Pages 正常),fallback 前加 serveStatic 兜底。
- 课程 URL 跟随激活主题(4612fe9):sync-examples 产
src/data/theme.json,Courses.tsx读之自动跟随,切主题收敛为只改EXAMPLE_THEME一处。 - README logo 直链三连修:相对路径在 GitHub 渲染依赖
/raw/重定向端点全站 404 → 换绝对 raw URL 又遇 CDN 429 / 墙内不可达 → 最终改 jsDelivr 外部域,浏览器只对话 GitHub camo 代理;四语 README 同步,brand-scan 白名单补 raw.githubusercontent 与 cdn.jsdelivr.net 资产 URL(直链含 owner 用户名,扫描门曾挂)。 - sync-docs 吞文:stripEn 正则
[^>]跨行吞正文(EN 行后接正文时吃掉 2/3 篇幅),改[^>\n]。 - site favicon 换真 logo:手绘 SVG 近似版与定稿 logo 不一致,favicon.png 同源拷贝 + Starlight favicon 配置指向;换文件名顺带绕开旧 svg 强缓存。
- site 首页 hero 收尾:右侧补 app 窗口视觉(经
hero.image.html入栏);hero 下两段灰字压成一行规格条(中点分隔三事实,去掉与 hero/CTA/方法论区块的重复内容),中英同步。 - site 两节对比表视觉居中:
fit-content收缩 + 能力矩阵格子居中。 - site dev 热更新:拦掉
src/content抢先 HMR(astro#17335),markdown 改动 1s 内生效(仅本地开发体验,不影响构建产物)。 - GSC 验证 token 纠偏:账号级 token 对 github.io 子路径无效,换 UI 下发的 property 级串。
[0.4.0] — 2026-08-17
Section titled “[0.4.0] — 2026-08-17”主题:多语言四语 + 一轮真实用户走查(浏览器全流程实测)修复三处体验/数据 bug。
- 多语言支持(中文 / English / Español / Русский):
- 前端 UI 多语言:
apps/quiz-app/src/i18n/——I18nProvider+useI18n()+ 四份词典(自建轻量实现,零新依赖)。顶栏新增LangToggle(选项用语言自称名显示,不随界面语言翻译);首次访问按浏览器语言探测;偏好存ask-lang并经progress.lang/langUpdatedAt跨设备同步(与 theme 同一套 LWW 仲裁)。<html lang>与document.title跟随切换。i18n.test.ts校验四语 key 完整性 + 占位符一致性(en/es/ru 另有Record<TKey, string>编译期锚定)。 - AI CLI 输出语言:teach / grill / podcast 三个 CLI 新增
--lang zh|en|es|ru(或STUDY_LANG环境变量)。scripts/lib/langs.mjs语言注册表统一承载<html lang>、LLM prompt 语言指令、wrap 模板固定文案(上一课/下一课、页脚、错题中心、逐字稿主播称呼)。只影响生成内容与生成 HTML 的固定文案;CLI 日志仍中文;题库原文不翻译。langs.test.mjs15 用例覆盖注册表/解析优先级/四语模板/prompt 指令。 README.md新增「🌍 多语言」章节;docs/ai-cli-guide.md新增「输出语言」章节;docs/configuration.md与.env.example补STUDY_LANG。
- 前端 UI 多语言:
- README 四语化:
README.md顶部语言切换栏 + 新增README.en.md/README.es.md/README.ru.md三份完整译本(结构与中文版同构;es/ru 术语对齐 UI 词典——tab 名/功能名与 locale 文件一致);README 顶部补官网 / 在线 demo / 快速上手三个在线入口(en 版文档导航直链官网已英译页);AGENTS.md补「README 四份同步改」约定。 - i18n 相关重构:Home 的「其他/未分类」桶从字符串比较改为
isOtherflag + 空串 topic——多语言下排序不再随语言漂移;ConfirmDialog 危险操作启发式 regex 扩到四语。 - site:官网首页新增
/study-coach小节(特色功能此前无首页入口);robots.txt声明 sitemap、head 注入 GSC 验证 token(发布前置)。
Changed
Section titled “Changed”Progress接口新增可选lang/langUpdatedAt(向后兼容老 progress.json);useProgress新增setLang(写 progress 走 dirty effect 同步服务器)。- 三个 CLI 的用法注释/参数帮助补
--lang。
- quiz-app:完成流死点击——Practice 头部「已答 n/n」把随机沙盒(fromRandom)记录算已答,而
canFinish用的computeStats排除它们:题集里混有沙盒答错记录时头部显示全答完、「完成答题」却点不出总结(gotoFirstUnanswered也找不到“未答”)。新增computeListStats(列表口径:非墓碑记录全计,含 fromRandom),Practice 的canFinish/完成总结/头部分子统一走它;首页主进度仍用computeStats(沙盒不污染,原口径不变)。附 2 个单测(列表口径计入沙盒、墓碑仍视为未答)。浏览器实测:同一进度从“点了没反应”变为正常弹出 71% 总结。 - quiz-app:「随机 20 题」按钮题数动态化——按
min(20, 全库题数)显示(四语词典改{n}占位符,i18n 完整性校验同步过)。小题库下不再“承诺 20 只给 10”。 - quiz-app:看题模式启动竞态丢已看标记——mount 时
markRead赶在loadProgress()的 GET 返回前触发,其乐观写入会被稍后writeLocal(merge(旧快照, remote))清掉,出现「UI 显示已看、本地/服务器却没记」。双保险修复:① markRead effect 门控loaded(权威进度没加载完不写);②loadProgress在 merge 时重读本地快照(GET 期间的乐观写入不再被旧快照回写覆盖,整类竞态一并堵住)。 - server:
POST /api/progress收到非法 JSON 时返回 400——原先c.req.json()在 try 块外,解析错误会以 500 泄出。已实测验证(非法体 500→400,合法写入不受影响)。 - examples(dev-intro):题库首次通过
npm run qa全部硬约束——GIT-001 选项重排使答案键分布均衡(B 42%→33%,单项阈值 ≤40%);GIT-003/GIT-004 加长干扰项,消除「正确答案即最长选项」的应试线索(最长即答案 40%→0%);GIT-007 缩短正确项与干扰项的长度差。题 id 均不变,不影响已有进度。
[0.3.0] — 2026-08-16
Section titled “[0.3.0] — 2026-08-16”主题:/study-coach 学习教练——一句话入口,不用记工具链。
/study-coach学习教练 skill(skills/study-coach/):路由式指令,对标“ask 型”教练。每次调用固定三步——①只读探测学习状态(主题、题/卡/课/串讲库存、答题进度、未毕业错题、到期闪卡、AI 配置、后端在线);②汇报快照 + 带理由的推荐 + 编号菜单;③按 playbook 带执行。推荐优先级是方法论的执行化:先复习 → 再建概念 → 后做题 → 深挖错题 → 被动巩固。references/state.md:状态探测协议,进度统计口径与progress.ts完全一致(墓碑过滤、随机沙盒不进主进度、错题毕业阈值、SRS 到期)。references/flows.md:九个流程 playbook(初始化项目 / 开新主题 / 每日学习 / 错题串讲 / 播客 / 产课 / 改内容 / 校验发布 / 部署)+ 诊断速查表(8 类常见症状)。
scripts/install-skill.sh安装器 +pnpm run skill:install/skill:uninstall:一键把 skill 装进~/.agents/skills/(支持--dest装给其他 AI CLI、--link符号链接版)。scripts/bidirectional-check.py落地:此前 README 引用但仓库缺失的四对齐校验脚本,按docs/bidirectional-check.md契约实现(题→课覆盖度、闪卡覆盖两个方向),dev-intro 示例全绿。新增pnpm run check:alignment。docs/study-coach.md:教练指令的安装、工作原理、推荐算法、扩展方式。CHANGELOG.md:本文件,并回溯补记两个历史版本。
Changed
Section titled “Changed”README.md新增「装/study-coach」章节(新手入口提到 5 分钟 demo 之后)与文档导航、开发命令更新。AGENTS.md更新项目结构、常用命令、agent 资料访问方式(新增「被问接下来学什么 → 读 study-coach」路由)。
[0.2.0] — 2026-07-22
Section titled “[0.2.0] — 2026-07-22”主题:内置 AI CLI——从「答题站」升级为「AI 辅助学习闭环」。
apps/quiz-app/scripts/lib/:LLM/TTS 抽象层(OpenAI 兼容协议 + 容错重试 + 配置校验),纯函数全部带 node:test 单测。teach-generate.mjs:从course-spec.json产多节自包含课程 HTML。grill-wrong.mjs:从/api/progress拉错题,LLM 按考点聚类,产错题深度精讲 HTML。podcast-generate.mjs:任一学习素材 → 男女双播播客(脚本 JSON + 逐字稿 MD + WAV 合成,支持--no-tts)。.env.example+docs/configuration.md:LLM/TTS provider 配置(OpenAI 兼容协议全覆盖)。docs/ai-cli-guide.md:三个 CLI 的完整用法、参数、FAQ。
[0.1.0] — 2026-07-21
Section titled “[0.1.0] — 2026-07-21”主题:首个可用版本——脚手架 + demo 主题。
- pnpm workspace 结构:
apps/quiz-app/(React + Vite + TS + Tailwind 前端,Hono 后端)+examples/。 - 答题站核心:单选/多选/判断判分(多选全对才算对)、错题本(按历史错次自适应毕业阈值)、看题模式、随机沙盒。
- 闪卡 SRS:SM-2 + Anki 学习步算法,again/hard/good/easy 四档评分,会话内循环调度。
- 跨设备进度同步:单用户服务器一份进度,按时间戳合并,无账号无同步码。
examples/dev-intro/:git + Linux 基础示例主题(10 题 / 4 卡 / 2 课 / 1 错题串讲)。- 方法论文档群:
methodology.md(大纲→材料→做题)、four-alignment.md(四对齐)、bidirectional-check.md(校验脚本说明)。 scripts/brand-scan.py零泄露扫描门 + 双语 README + MIT LICENSE。
