Borrowing it
Nothing to install: this file belongs to tobyilee/course-builder. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/tobyilee/course-builder/main/.claude/skills/coherence-review/SKILL.mdgit clone --depth 1 https://github.com/tobyilee/course-builderWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/tobyilee/course-builder/coherence-review)<a href="https://agentmods.dev/skills/tobyilee/course-builder/coherence-review"><img src="https://agentmods.dev/badge/skills/tobyilee/course-builder/coherence-review/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/tobyilee/course-builder/coherence-review"><img src="https://agentmods.dev/badge/skills/tobyilee/course-builder/coherence-review.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00062 | $0.01857 |
| Opus 5.5 | $0.00025 | $0.00743 |
| Sonnet 5.5 | $0.00012 | $0.00371 |
| Haiku 4.5 | $0.00006 | $0.00186 |
Grade A, and why
coherence-review scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Coherence Review — Cross-Boundary QA
개별 자산 검증이 아니라 자산 간 경계면 검증이 핵심. "slide가 있는가" 보다 "slide와 transcript가 같은 이야기를 하는가"가 훨씬 중요하다.
검사 순서 (fail-fast)
중요도·실행비용 순으로 정렬. 상위 단계 실패 시 하위는 수행하되 리포트에 "의존 실패" 표시.
1. Structural presence
모든 예상 파일 존재 확인.
course/manifest.json OR _workspace/01_*
course/meta/learning_objectives.json
course/sections/<sec>/section.json
course/sections/<sec>/classes/<cls>/{slide.source.md,slide.html,note.md,transcript.txt}
course/sections/<sec>/quiz.json
2. LO Coverage (critical)
모든 LO는 다음 3개소에 ≥1 등장:
- slide.source.md (footer or body)
- note.md (blockquote 헤더 or 본문 언급)
- quiz.json (lo_ids 필드)
측정: LO registry를 grep으로 전수 검사.
3. Bloom Balance
- 섹션당 Bloom 레벨 ≥3
- Course 전체 ≥4
- Apply+Analyze quiz 합 ≥2 / 섹션
4. Slide ↔ Script 정합
slide.source.md의---구분 슬라이드 수 Ntranscript.txt의[slide N]cue 최대값 M- N == M 필수
5. Note ↔ Slide 정합
- note.md의
[slide K]모든 K가 1~N 범위 - note가 slide에 없는 새 개념 도입 시 warning (가능하지만 위험)
6. Tone 일관성
- course_spec의
tone파라미터와 실제 자산 톤 비교 - 한 class 안에서 반말/존댓말 혼재 감지 (한국어)
- 문체 급변 감지 (정규 ML 불필요, 단순 휴리스틱으로 충분)
7. Quiz 사실 검증
- quiz 정답이 note/slide 내용과 모순되는지
- distractor가 실제로 오답인지 (가끔 AI가 정답을 distractor에 넣음)
8. Transcript Speakability
- raw code literal:
`(backtick) 포함 여부 - 긴 숫자:
\d{4,}정규식 — 단, 대괄호 디렉티브[pause:N],[slide N],[emph]...[/emph]내부 숫자는 제외 (TTS 후처리용 마커이지 발화 대상 아님). 구현: 먼저\[(pause|slide|emph|/emph)[^\]]*\]패턴을 공백으로 치환한 뒤 숫자 검사. - 생 URL:
https?://검출 - 문장 길이: 20 어절 초과 문장 비율
판정 로직
if (1) fails:
overall = "revise"; 중단
if (2) 어떤 LO가 0회 등장:
overall = "revise"
if (3) Bloom 부족:
overall = "revise"
if (4) cue 수 불일치:
overall = "revise"
if (5~8) any fail:
overall = "revise"
else:
overall = "pass"
리포트 포맷
원칙: atomic dual-write. JSON과 MD를 동일 라운드의 동일 verdict로 한 번에 기록. 중간 저장 후 한 쪽만 overwrite하면 machine gate(JSON)와 사람이 보는 리포트(MD)가 엇갈림 — 실제로 과거 run에서 JSON=pass / MD=REVISE 상태로 빌드가 "성공"한 사례 있음.
_workspace/99_coherence_report.json (machine contract)
{
"overall": "revise" | "pass",
"timestamp": "...",
"course_level": {
"lo_coverage_pct": 95,
"bloom_levels": 4,
"issues": [{"type":"bloom_gap","detail":"..."}]
},
"sections": [
{"section_id":"S1","verdict":"pass","issues":[]}
],
"classes": [
{"class_id":"S1.C1","verdict":"revise",
"issues":[
{"type":"slide_script_mismatch",
"detail":"slide has 5, script has [slide 6] cue",
"fix_hint":"Remove [slide 6] from transcript or add slide",
"route_to":"script-writer"}
]}
]
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 169 lines · 62 tokens per session scan A 3d8415d99baf
coherence-review is a skill published in the GitHub repository tobyilee/course-builder (27 stars, last pushed 6mo ago), licensed MIT. It adds 62 tokens to every session and 1,857 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
coherence-review compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| coherence-reviewtobyilee/course-builder | Skill | 27 | 6mo ago | MIT | A | 62 | Claude Code |
| hr-onboardingnexu-io/open-design | Skill | 106k | today | Apache-2.0 | A | 62 | Claude Code, Codex |
| book-mirrorgarrytan/gbrain | Skill | 32k | today | MIT | A | 138 | Claude Code |
| exam-forecastanthropics/claude-for-legal | Skill | 9.9k | today | Apache-2.0 | A | 73 | Claude Code |
| lean-formalizewanshuiyin/Auto-claude-code-research-in-sleep | Skill | 19k | yesterday | MIT | A | 81 | Claude Code |
| deck-course-modulenexu-io/html-anything | Skill | 9.4k | yesterday | Apache-2.0 | A | 25 | Claude Code, Codex |
| eli5companion-inc/feynman | Skill | 10k | 7d ago | MIT | A | 63 | Claude Code, Codex |