weak-point-drill · git:20260901.401e1ec · 2026-09-01 · sha256 2019b36113dbfbe6

weak-point-drill git:20260901.401e1ecB

Immutable. This exact content is served forever at /api/v1/blob/2019b36113dbfbe6.

---
name: weak-point-drill
license: Apache-2.0 (adapted from anthropics/claude-for-legal, law-student/skills/bar-prep-questions; complete terms in LICENSE.txt)
description:
  针对薄弱知识点定向出题练习,而不是泛泛出一堆题——先定位哪些子主题反复出错,
  再加重这些子主题的出题权重,并追踪跨小节的错误规律。Use when 用户说
  "考我一下这个知识点""针对我不会的地方出题""我总是这几个概念搞混,帮我
  多练练""来一组针对性练习"。如果只是想泛泛出几道题不追踪薄弱点,直接出题
  即可,不需要加载这个技能。
metadata:
  origin: 薄弱子主题加权出题机制、错题归因与跨小节规律追踪、置信度纪律
    ("宁可少出题不编规则"),改编自 anthropics/claude-for-legal 的
    law-student/skills/bar-prep-questions(Apache-2.0);原技能一大半篇幅是
    美国司法考试(UBE/NextGen)的法域分歧规则,已整段删除,只保留出题-评分-
    归因-加权这条通用主干
---

# Skill: weak-point-drill

泛泛出题效率不高——如果用户在某几个子主题上反复出错,把出题权重往那几个
子主题倾斜,比平均分配到所有主题更有效。这个技能负责:定位薄弱子主题、
按权重出题、讲透每道题对错的原因、追踪跨小节的错误模式是不是真的"卡住了"。

## 置信度纪律

每道题都在陈述一个规则/事实。一个自信但错误的规则,比不出这道题更糟。

- **有把握:** 规则是学科里公认的基础知识,正常出题。
- **不确定:** 规则有争议、是小众说法、或者不确定自己记得对不对——用
  `[不确定:原因]` 标注在题目/解析里,提醒用户对照教材核实。
- **不知道:** 不编题目。直说"这块我没有可靠的把握,建议跳过或者查教材/
  权威来源确认"。不要为了凑数编一道基于错误规则的题。

## 加载上下文

如果存在 `~/.octo/learning-data/study-plan.yaml`,读取该学科的
`session_history`,看看之前哪些子主题错得多——出题权重往那些子主题倾斜。
没有这个文件也没关系,直接问用户"最近在哪几个知识点上容易出错"。

## 小节模式:`--session <n>`

用户说"来10道关于XX的题"或类似需求时用这个模式。

**流程:**

1. 确认学科、题目数N、题型(选择题/简答/论述,或混合)。
2. 生成N道题,按 `session_history` 里之前错过的子主题加权(如果有历史
   记录);没有历史记录就先泛出一轮,把这次的结果作为后续加权的起点。
3. 逐题呈现。每题作答后,展示正确答案+为什么对+为什么其他选项错(如果是
   选择题)。
4. 小节结束后,输出:

```markdown
## 小节:[学科],[N]题

**得分:** [X]/[N]([百分比])
**错题:** [列表——子主题+错在哪]
**薄弱子主题:** [错误集中的2-3个子主题]
**掌握较好的子主题:** [表现好的部分]

**和之前小节的对比:** [如果 session_history 里有这个学科的历史记录:
"XX子主题在最近4次小节里错了3次——这是真卡住了,建议换个方式重新理解
这块内容,光靠刷题可能不够。" 或者:"XX从40%提升到70%,YY这块还不太
稳。"]
```

5. 把结果追加到 `~/.octo/learning-data/study-plan.yaml` 的
   `session_history`(如果文件不存在,写到
   `~/.octo/learning-data/session-history.yaml`):

```yaml
session_history:
  - date: 2026-05-08
    subject: 有机化学
    type: weak-point-drill
    n_questions: 10
    score: 6
    weak_subtopics: [亲核取代反应机理, 立体化学命名]
```

## 出题原则

按学科实际考察的难度出题,不要故意拔高或降低。子主题分布按薄弱程度加权——
如果某个子主题历史上错得多,这次小节里它应该占更大比例(比如错得最多的
1-2个子主题占60%左右,其余泛化覆盖)。

**答题后的解析格式:**

```markdown
**正确答案:C**

**为什么是C:** [规则+应用]

**为什么不是A:** [这个选项对应什么误区,为什么在这里不对]
**为什么不是B:** [同上]
**为什么不是D:** [同上]

**记忆要点:** [一句话总结]
```

## 追踪跨小节规律

维护一个粗略的统计:哪些子主题、哪些具体错误类型反复出现。小节结束后如果
看到规律,直接说出来:"最近4次小节里有3次在[子主题]上出错,都是同一类
错误([具体描述])。这是卡住了,建议:(a) 换个角度重新学一遍这块内容,
而不是继续刷同类题;(b) 找相关的具体例子/图示重新理解一遍;(c) 如果是
概念本身没搞懂,用 `flashcards` 或直接问我,让我用费曼学习法给你讲一遍。"

## 边界

- **不替代系统学习。** 这是针对已经学过、但记不牢/理解不透的内容做定向
  强化,不是初次学习新概念的方式——初次学概念用费曼学习法讲解或
  `outline-builder` 搭框架。
- **不为了凑数编题。** 某个学科只有把握出5道靠谱的题,就给5道。硬凑一堆
  `[不确定]` 的猜测题比少几道题更糟。
- **不预测考试内容。** 出题练习针对的是用户自己的薄弱环节,不是猜考试会
  考什么——那是 `exam-forecast` 的事,两者可以配合:先用 `exam-forecast`
  定重点范围,再用这个技能在重点范围内做加权定向练习。
- **不代替用户判断学习进度。** 给出得分和规律,不代替用户决定"这块学够了
  没有"。