/narrative
Narrative discipline for research reports — article-type templates (empirical / feasibility / comparison / policy-zh) and the feedback revision protocol that keeps outline, prose, and figures coherent across many feedback rounds.
$ npx -y skills add Muuuun/luxas --skill narrative --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/narrative
Context preview
The summary Claude sees to decide when to auto-load this skill.
Narrative discipline for research reports — article-type templates (empirical / feasibility / comparison / policy-zh) and the feedback revision protocol that keeps outline, prose, and figures coherent across many feedback rounds.
SKILL.md
narrative.SKILL.mdname: narrative
description: Narrative discipline for research reports — article-type templates (empirical / feasibility / comparison / policy-zh) and the feedback revision protocol that keeps outline, prose, and figures coherent across many feedback rounds.
compatibility: Always available. No external dependencies.
allowed-tools: read
Narrative Skill
Two jobs, in order of importance:
1. **Revision protocol** — how to absorb PI/user feedback without the report degrading back into a patchwork (most narrative damage happens during feedback rounds, not first drafts). 2. **Article-type templates** — positive examples of section logic per article type, consumed at outline time.
This skill is the delta on top of brain.md's `<report_synthesis_protocol>` (outline-first, claims-as-titles, lab-book test, anti-stacking pass). It does not repeat those rules — it adds what they lack: per-type section logic, the figure-narrative binding, and what to do when feedback arrives.
First draft (thin — most rules live in brain.md)
1. Pick the article type and record it as the first line of `notes/report_outline.md`: `type: empirical | feasibility | comparison | policy-zh | survey`. Surveys: stop here and follow `skills/review/` + `skills/survey-methodology/` instead — never both pipelines. 2. Read `templates/<type>.md` BEFORE writing the outline. The template gives the section logic for that type; your outline instantiates it with this project's claims. The lab-book test catches structure that mirrors the experiment DAG; the template shows what to write instead. 3. Read `references/figure_narrative.md` before commissioning figures. The outline must name its **Figure 1 (schematic)** and its **hero figure** (the one figure that settles the central claim) — both are outline-level decisions, not afterthoughts.
Revision protocol (core)
Every feedback batch that touches the report gets classified BEFORE any edit. Mixed batches: tag every item first, edit second (tag-all-before- edit-any) — append-only `reviews/pi_feedback.md` means earlier instructions never vanish, so there is no need to rush.
Add the class tag to each checklist line in `notes/memory.md` (the existing pi_correction_protocol checklist — same boxes, one tag + one-line rationale extra):
- [ ] <instruction verbatim> [class: local-fix | section-rewrite | restructure — <one-line why>]
Class 1 — local-fix (a number, a wording, a citation)
The pi_correction_protocol order applies unchanged: ledger first, report second. Then:
- grep report.tex for OTHER occurrences of the corrected number (abstract,
captions, tables — printed values drift in packs, not alone).
- re-read the first sentence of the touched paragraph against its section's
outline thesis (10 seconds — does the paragraph still serve the claim?).
- the outline is NOT touched — **unless the corrected number appears in, or
defines, the central-claim sentence** (e.g. a threshold comparison like "99.987% < 99.99%"). Then this is not a local-fix; reclassify as restructure and follow that flow.
Class 2 — section-rewrite (a section's argument is wrong/weak)
Precondition: if the feedback strikes an L2 claim, the experiment re-spawn (ledger fix) comes FIRST; this class begins only after `notes/experiments.md` § L2.X reflects the new physics.
1. Edit that section's block in `notes/report_outline.md` first (thesis / evidence / synthesis move). 2. Rewrite the section from outline + ledger — single-section scope (`mv` the old text into the editor's view, don't patch sentence by sentence around a broken spine). 3. Check the transitions: the last paragraph of the previous section and the first of the next still hand over correctly.
Class 3 — restructure (the central claim changes)
**Default triggers — burden of proof is reversed.** Any of:
- feedback strikes a headline finding (an L2 claim quoted in the abstract),
- feedback contradicts a sentence of the abstract,
- experiments are added or removed after the report exists.
→ classify as restructure BY DEFAULT. Downgrading to a smaller class requires a one-line written justification on the checklist line.
Flow: 1. Re-derive the WHOLE outline (new central claim, possibly new type template consultation). Diff old vs new outline. 2. Walk report.tex section by section against the new outline — rewrite what the diff touches, keep what it doesn't. 3. **Figure re-audit**: does the hero figure still settle the NEW central claim? If not, commission a replacement — and the `illustrator_write` spawn task must quote the NEW claim text (spawn prompts are frozen snapshots; re-spawning with the old task resurrects the old framing). 4. **Re-verify every already-ticked checkbox** in `notes/memory.md` PI sections. Prose-level feedback ("stop calling it deterministic") lives only in report.tex — a rewrite can silently resurrect what an earlier round corrected. Each previously-ticked box gets re-checked against the new text; re-tick or re-fix.
Pre-finish reconciliation
Before `finish()` (and before the final PI review that the finish gate requires): one outline-vs-tex walkthrough — for each section, first paragraph vs outline thesis. Attach the outline verbatim to the final `request_pi_review` so PI reviews the argument, not just the prose.
Number provenance (interaction with correctness gates)
Rewrites must not orphan numbers. Every quantitative value in report.tex traces to a `results.json` `computed.*` field plus a stated transform (rounding, unit change). After a restructure, sweep the rewritten sections for numbers with no surviving source — flag, don't guess. Char-for-char identity is NOT required (rounding and Chinese prose legitimately reformat); traceability is.
Read more
name: narrative description: Narrative discipline for research reports — article-type templates (empirical / feasibility / comparison / policy-zh) and the feedback revision protocol that keeps outline, prose, and figures coherent across many feedback rounds. compatibility: Always available. No external dependencies. allowed-tools: read
Narrative Skill
Two jobs, in order of importance:
1. **Revision protocol** — how to absorb PI/user feedback without the report degrading back into a patchwork (most narrative damage happens during feedback rounds, not first drafts). 2. **Article-type templates** — positive examples of section logic per article type, consumed at outline time.
This skill is the delta on top of brain.md's `<report_synthesis_protocol>` (outline-first, claims-as-titles, lab-book test, anti-stacking pass). It does not repeat those rules — it adds what they lack: per-type section logic, the figure-narrative binding, and what to do when feedback arrives.
First draft (thin — most rules live in brain.md)
1. Pick the article type and record it as the first line of `notes/report_outline.md`: `type: empirical | feasibility | comparison | policy-zh | survey`. Surveys: stop here and follow `skills/review/` + `skills/survey-methodology/` instead — never both pipelines. 2. Read `templates/<type>.md` BEFORE writing the outline. The template gives the section logic for that type; your outline instantiates it with this project's claims. The lab-book test catches structure that mirrors the experiment DAG; the template shows what to write instead. 3. Read `references/figure_narrative.md` before commissioning figures. The outline must name its **Figure 1 (schematic)** and its **hero figure** (the one figure that settles the central claim) — both are outline-level decisions, not afterthoughts.
Revision protocol (core)
Every feedback batch that touches the report gets classified BEFORE any edit. Mixed batches: tag every item first, edit second (tag-all-before- edit-any) — append-only `reviews/pi_feedback.md` means earlier instructions never vanish, so there is no need to rush.
Add the class tag to each checklist line in `notes/memory.md` (the existing pi_correction_protocol checklist — same boxes, one tag + one-line rationale extra):
- [ ] <instruction verbatim> [class: local-fix | section-rewrite | restructure — <one-line why>]
Class 1 — local-fix (a number, a wording, a citation)
The pi_correction_protocol order applies unchanged: ledger first, report second. Then:
- grep report.tex for OTHER occurrences of the corrected number (abstract,
captions, tables — printed values drift in packs, not alone).
- re-read the first sentence of the touched paragraph against its section's
outline thesis (10 seconds — does the paragraph still serve the claim?).
- the outline is NOT touched — **unless the corrected number appears in, or
defines, the central-claim sentence** (e.g. a threshold comparison like "99.987% < 99.99%"). Then this is not a local-fix; reclassify as restructure and follow that flow.
Class 2 — section-rewrite (a section's argument is wrong/weak)
Precondition: if the feedback strikes an L2 claim, the experiment re-spawn (ledger fix) comes FIRST; this class begins only after `notes/experiments.md` § L2.X reflects the new physics.
1. Edit that section's block in `notes/report_outline.md` first (thesis / evidence / synthesis move). 2. Rewrite the section from outline + ledger — single-section scope (`mv` the old text into the editor's view, don't patch sentence by sentence around a broken spine). 3. Check the transitions: the last paragraph of the previous section and the first of the next still hand over correctly.
Class 3 — restructure (the central claim changes)
**Default triggers — burden of proof is reversed.** Any of:
- feedback strikes a headline finding (an L2 claim quoted in the abstract),
- feedback contradicts a sentence of the abstract,
- experiments are added or removed after the report exists.
→ classify as restructure BY DEFAULT. Downgrading to a smaller class requires a one-line written justification on the checklist line.
Flow: 1. Re-derive the WHOLE outline (new central claim, possibly new type template consultation). Diff old vs new outline. 2. Walk report.tex section by section against the new outline — rewrite what the diff touches, keep what it doesn't. 3. **Figure re-audit**: does the hero figure still settle the NEW central claim? If not, commission a replacement — and the `illustrator_write` spawn task must quote the NEW claim text (spawn prompts are frozen snapshots; re-spawning with the old task resurrects the old framing). 4. **Re-verify every already-ticked checkbox** in `notes/memory.md` PI sections. Prose-level feedback ("stop calling it deterministic") lives only in report.tex — a rewrite can silently resurrect what an earlier round corrected. Each previously-ticked box gets re-checked against the new text; re-tick or re-fix.
Pre-finish reconciliation
Before `finish()` (and before the final PI review that the finish gate requires): one outline-vs-tex walkthrough — for each section, first paragraph vs outline thesis. Attach the outline verbatim to the final `request_pi_review` so PI reviews the argument, not just the prose.
Number provenance (interaction with correctness gates)
Rewrites must not orphan numbers. Every quantitative value in report.tex traces to a `results.json` `computed.*` field plus a stated transform (rounding, unit change). After a restructure, sweep the rewritten sections for numbers with no surviving source — flag, don't guess. Char-for-char identity is NOT required (rounding and Chinese prose legitimately reformat); traceability is.
An autonomous research colleague — from a question to a compiled manuscript, while you sleep.
Repo: Muuuun/luxas
Other skills on luxas.
- /figure
Hybrid figure pipeline (Nano Banana raster + rembg background removal + TikZ vector assembly). Includes a TikZ template library covering quantum circuits (quantikz), Feynman diagrams (tikz-feynman), circuits (circuitikz), molecules (chemfig), 2D/3D plots (pgfplots), energy-level
Open skill - /matplotlib-figures
Publication-quality data plots via matplotlib with venue-specific styles. Use for generating your own figures (timelines, comparison charts, data summaries, heatmaps) that you add to the LaTeX report. Your brain prompt supplies the venue-specific style directory as
Open skill - /memory
Cross-project research memory. Deep-dive past projects' notes, record corrections, and save cross-project insights across all Luxas research projects.
Open skill - /paper-figures
Extract figures from downloaded papers and include them in survey/review reports. Use when the report covers other groups' work and benefits from their architecture diagrams, experimental plots, or system schematics. Your brain prompt supplies the absolute path to the
Open skill - /qec-construct
Verifier-in-the-loop CONSTRUCTION of quantum error-correcting codes with transversal non-Clifford gates (CCZ/T). Use when the task is to INVENT or improve a code/construction (not merely search a known family). Provides a sound, cheap algebraic verifier (qverify, "QEC's Lean")
Open skill - /review
Write domain-authentic review articles that synthesize rather than stack. Covers 10 scientific domains (physics, chemistry, biology, medicine, mathematics, computer_science, earth_environment, astronomy, economics, materials) with per-domain style guides mined from landmark
Open skill

