DeepPaperNote
Use this skill when the user wants one outcome:
- read one paper carefully
- generate a high-quality Markdown note
- save the note into an Obsidian-style vault when configured, or into the current workspace when no vault is configured
Chinese trigger examples:
给这篇论文生成深度笔记写一篇高质量论文精读笔记把这篇文章整理成 obsidian 笔记读这篇论文并生成 md 笔记
This skill is intentionally narrow:
- it handles one paper at a time
- it does not update daily reading lists
- it does not treat a shallow abstract rewrite as a successful output
- it does not split the public entrypoint into separate setup, troubleshooting, or start commands
Core Standard
The finished note must be more than a summary. It should reconstruct the paper's argument:
- what problem it solves
- how the task is defined
- what data or materials it uses
- how the method or analysis actually works
- what results matter most
- what the paper does not prove
- why the paper is worth keeping
Default writer persona:
- a top-tier researcher or algorithm engineer
- writing a replication-oriented lab note
- not writing a popular-science explanation
- assuming the reader can follow Python, PyTorch, training loops, and evaluation logic
The note must adapt to the paper type. Use the same base structure, but shift emphasis for AI methods, benchmarks, clinical studies, and humanities or social-science papers.
Workflow
Follow this order:
- resolve the paper identity
- collect metadata
- acquire the best available PDF
- extract canonical raw source text:
*_raw_sections.jsonl,*_source_manifest.json, and optional derived*_full_text.md - extract structural indexes and PDF assets
- plan figure placement
- build the full figure/table decision table
- build the manifest synthesis bundle
- have the model read the bundle plus raw sections and plan the note
- run grounding lint on the note plan before drafting from it
- have the model write the note
- lint the final note — if the lint output contains
passes_style_gate: false, apply the Style Gate Enforcement rule before advancing to step 13, 14, or 15 - perform
final_quality_reviewafter lint passes - perform
final_readability_reviewafter the quality review passes - write into Obsidian
This is the required workflow for a normal single-paper note request, not a loose suggestion. Unless this skill explicitly marks a stage as optional, required stages must not be silently skipped, reordered into a shortcut, or treated as complete just because a partial artifact already exists.
Global no-short-circuit rule:
- do not stop after only the early stages and present the workflow as finished
- do not treat slowness, inconvenience, or temporary uncertainty as permission to bypass a required stage
- do not replace the declared workflow with an improvised shortcut
- if a required stage fails, only do one of three things:
- retry that stage
- enter a fallback that is explicitly allowed by this skill
- stop and report which stage is blocked and which downstream required stages remain incomplete
- do not describe the whole task as complete while required downstream stages are still pending
Completion-language rule:
- say
笔记已完成only when the required workflow is actually complete - say
已生成草稿when drafting is done but lint, final readability review, or save is still pending - say
已通过校验only when lint has actually been run and passed - say
已保存到 Obsidianonly when the write step has actually succeeded - do not treat
lint 已通过as equivalent to整篇笔记已经润色完成 - if final readability review is still pending, explicitly say the draft passed script lint but has not finished final language review
- if the workflow stopped early, name the current stage and the still-missing required stages instead of using completion language
- lint is a floor, not the writing objective
Core Execution Contract
SKILL.md plus the generated synthesis_bundle.json must be enough to complete a normal note-generation run.
Files under references/ are optional stage-specific deep dives, not a default reading checklist.
Non-negotiable rules:
- evidence-first: draft from the synthesis bundle,
source_manifest, raw sections, coverage metadata, explicitnote_plan, and inspected paper evidence; never finish from title/abstract/headings alone - raw-source authority: for ordinary PDFs,
*_raw_sections.jsonland*_source_manifest.jsonare the canonical reading material; old top-N evidence buckets, truncatedsection_texts, andcandidate_chunksare not model-facing writing inputs - fail-closed: if a usable PDF or sufficient evidence cannot be obtained after supported acquisition paths, stop and ask for better source material rather than producing a finished degraded note
- model-first: scripts structure evidence, but the model must decide emphasis, contribution, mechanism, limitations, and final Chinese prose
- explicit planning: before drafting, save a compact JSON
note_plansuch as<note>.plan.jsonor*_note_plan.json; pass it toscripts/lint_note.py --plan-file ... - grounding gate: after the JSON
note_planexists, runscripts/lint_grounding.py --note-plan ... --source-manifest ... --bundle-json ... --figure-decisions ...; each substantive section must cite validsection_idvalues or valid page ranges - required structure: include the canonical required sections, with
原文摘要翻译before一句话总结and a dedicated创新点section immediately after原文摘要翻译 - abstract translation: when abstract metadata exists,
原文摘要翻译is a faithful Chinese translation of the original abstract, not a bilingual block and not the model's own summary - mechanism depth: method, framework, and system papers should include
### 机制流程under方法主线, normally as a 3 to 4 step numbered flow with input, operation, and output destination - placeholder-first figures: plan major figure/table placeholders first; replace one only when identity match and visual usability are both strong; otherwise keep the placeholder
- final quality gates: lint is a floor; after lint passes, first run
final_quality_reviewfor analytical depth, then runfinal_readability_reviewfor language polish, and rerun lint if either review edits the note - Obsidian-first save: if a vault is configured, treat it as the required target, create the paper-local
images/directory, and never present a fallback/workspace write as a successful vault save
Reference usage policy:
- do not load every reference file by default
- consult
references/workflow.mdonly for detailed data contracts or pipeline debugging - consult
references/evidence-first.md,references/deep-analysis.md, orreferences/final-writing.mdonly when the paper is complex or the draft is too shallow - consult
references/figure-placement.mdonly for ambiguous figure/table placement or image replacement decisions - consult
references/obsidian-format.mdonly for Markdown, vault, frontmatter, or reference-link formatting details - consult
references/note-quality.mdorreferences/paper-types.mdonly for final review or domain adaptation - consult
references/metadata-sources.mdonly when metadata is incomplete, andreferences/architecture.mdonly for repository maintenance decisions
Tool and Source Priority
Prefer the strongest available source in this order:
- local PDF path given by the user
- local Zotero item and local Zotero attachment if available
- DOI and publisher metadata
- arXiv or open-access PDF sources
- Semantic Scholar or OpenAlex for metadata backfill
Before resolving the paper, actively check Zotero integration: attempt to call the Zotero MCP tool (for example, search for the paper title or list libraries). If the tool responds without error, Zotero is available and the local-library-first rule below applies. If the call fails or the tool is not present, record "Zotero not available" and proceed without it. Do not skip this check — the check itself determines whether local-library-first a