study-teach — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited study-teach (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Output language: ALL learner-facing content MUST be Simplified Chinese.
Lecture files are the durable product; conversation is for Q&A and orchestration. Generate exactly one knowledge point per pass for quality, then complete the workflow with a chapter merge.
Use the scripts. Do not hand-write lecture HTML.
<study-dir>/internal/lessons/chapter-XX/<point-id>-<name>.jsonbuild_lecture.py<study-dir>/internal/lessons/chapter-XX/assets/<study-dir>/open/chapters/chapter-XX.html, published by build_chapter_lecture.py --publish <study-dir><study-dir>/internal/reports/chapter-XX-audit.mdLegacy root lessons/ workspaces are acceptable, but new work should use internal/lessons/.
Ask once which lecture format to use and store it in progress.json as lecture_format:
obsidianhtmlbothAsk/confirm the teaching mode per section, then use that mode consistently for every point in the section. Default to progress.json.study_mode:
deep 深入讲解: source wording, intuition, formal derivation, symbols explained.speedrun 考试速通: exam conclusion, recognition cues, solving routine, traps.Long generations degrade. Each pass must produce one lecture JSON containing exactly one item in points, then render one point HTML/MD. Do not batch a whole section or chapter into one model generation.
internal/textbook/chapter-XX.md.internal/state/exam-style.md if present. python3 ~/.claude/skills/study-quiz/scripts/bank.py <study-dir> stats --point <id1> <id2> ...$...$ / $$...$$, with every symbol explained;figures[] with path, caption, source, and alt;examples[] with complete solution and source_ref.build_lecture.py. points must contain only the selected knowledge point, with the exact id/name from knowledge.json; keep the top-level section field for chapter grouping. python3 ~/.claude/skills/study-teach/scripts/build_lecture.py \
<study-dir>/internal/lessons/chapter-XX/<point>.json --format <lecture_format> python3 ~/.claude/skills/study-quiz/scripts/bank.py <study-dir> add-lecture <point>.jsonRequired top-level fields: textbook, chapter_id, chapter_title, section, mode, points.
Each point needs id, name, importance, and:
exam_focus, pitfalls, memory_hook, optional source_ref, figures, links;deep: textbook_excerpt, intuition, required formal;speedrun: key_point, required method.Examples are optional overall, but not optional when the source material has a worked example that is useful for understanding or exams. Allocate examples in this order:
Each example must include problem and solution; calculation/short-answer examples should include answer for auto-checking. Use source_ref for textbook/courseware/paper examples; use source_ref: "讲义原创" for original examples.
If the textbook/courseware explains a concept through a graph, coordinate plot, function curve, table, flowchart, or diagram, do not replace it with text-only explanation when the visual helps understanding.
study-img to produce a teaching-grade description before writing the lecture.plot_function.py or another reliable plotting tool and save it under assets/.Answer exactly what was asked, in Chinese. Point back to the lecture file so the notes stay the source of truth. If the question exposes a real gap, offer to patch the point JSON and rerender.
Re-teaching must use a different route: different analogy, example, drawing description, or step sequence. Do not merely repeat the lecture wording.
Immediately after the last knowledge point in a chapter has its lecture JSON/HTML, build the main chapter lecture:
python3 ~/.claude/skills/study-teach/scripts/build_chapter_lecture.py \
<study-dir>/internal/lessons/chapter-XX/ --format html --publish <study-dir>Then run:
python3 ~/.claude/skills/study-assistant/scripts/audit_chapter.py <study-dir> --chapter <N>The merger groups one-point JSON files by their top-level section and orders points by id. If the audit reports blockers, modify the relevant point JSON, rerender the point, rerun chapter aggregation, and rerun the audit. Only after the audit passes should the dashboard be refreshed and the chapter presented as complete.
The learner-facing final chapter file is open/chapters/chapter-XX.html. Individual point HTML files stay internal.
Lecture generation changes status; Q&A alone does not.
已讲解.progress.json and append the log entry.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.