Produce ONE extremely-high-quality long-form 乐评 (10,000–15,000 中文字符) from a
primary credit + album name. Deep multi-pass research grounds every
discographic fact; strong reasoning forms the critical thesis; a deterministic
validator gates length, section coverage, and claim→evidence traceability before
anything ships. Speed is not a concern — quality and honesty are the only bars.
Locked decisions (do not re-litigate):
[一-鿿]). Latin/digits/punctuation do NOTcount toward the 10,000–15,000 window, so padding cannot game the floor.
claims[] + evidence[]) alongside the prose, so the traceability gate is machine-checkable. A fact-class claim whose source_id is
absent from evidence[] FAILs the gate.
fan-out when available; degrade honestly to caller-supplied material when offline
(set trace.research_mode). Never fabricate to fill a gap or hit the floor.
input is gear, lyric-translation, or buying advice, do NOT produce a review —
route per the description's Do-NOT line. The classifier in
scripts/check_review.py:classify_route mirrors this.
era, role-of-credit, work-vs-performance (classical), and release form
(single / EP / LP / box / live). Set the unit of analysis (逐曲 vs 逐乐章 vs 逐碟).
Pick the critical lens from the descriptors — never force a pop template onto a
symphony or vice versa. Load rules/genre-lenses.md.
[artist/genesis, recording/production, the music itself, reception/criticism,
comparisons, cultural-historical context], then depth-deepen thin angles. Clean,
grade, triangulate. Map every discographic fact to a source_id. For thin
(obscure) albums, degrade honestly with explicit 资料不足/公开资料有限 — never
invent track/personnel/date specifics. Load rules/research-protocol.md and
references/source-roster.md.
each statement grounded-fact vs interpretation.
assets/review-template.md),10,000–15,000 中文字符, classical separating WORK from PERFORMANCE and carrying a
参考录音/版本比较 section. Emit the backing JSON (assets/backing.example.json,
contract schemas/backing.schema.json).
backing; fix and re-run until exit 0:
```bash
python3 scripts/check_review.py
--backing
```
scripts/check_review.py (CJK-字 window, genre-adapted section linter) + scripts/validate_backing.py
(every fact-class claim's source_id must exist in evidence[]). Ship is
blocked on any non-zero exit.
specifics).
See rules/metric-plan.md: length-window conformance rate (target ≥0.9),
ungrounded-claim rate (target 0), section-coverage pass rate, and activation
precision vs adjacent skills (album-review vs hifi-review vs lyric-translation).
| File | When to load |
|---|---|
| ------ | -------------- |
rules/research-protocol.md | Step 3 — source roster classes, breadth/depth fan-out, grading, triangulation, honest-degradation. |
rules/genre-lenses.md | Step 2 — per-idiom descriptors and which critical dimensions to foreground. |
rules/output-template.md | Step 5 — required long-form section skeleton + genre-adaptive substitutions. |
rules/metric-plan.md | Metrics — definitions and targets. |
references/source-roster.md | Step 3 — concrete music source classes with type/orientation/reliability. |
| File | Usage | |
|---|---|---|
| ------ | ------- | |
scripts/check_review.py | `python3 scripts/check_review.py | classical] [--min 10000 --max 15000] [--backing |
scripts/validate_backing.py | python3 scripts/validate_backing.py — schema + claim→evidence traceability. Exit 1 on any untraced/fabricated fact. |
| File | Usage |
|---|---|
| ------ | ------- |
assets/review-template.md | Fillable 长文骨架 the writer renders into. |
assets/backing.example.json | A conforming backing JSON to copy from. |
schemas/backing.schema.json | JSON contract for the backing (claims + evidence). |
Version 0.1.0; see CHANGELOG.md. Release gate: ship only when
python3 evals/run_all.py is GREEN (length + section + traceability + routing).
Roster/template changes require a re-run of the eval fixtures. Rollback = revert
to the prior SKILL.md + scripts/.
共 1 个版本