QQsci-skill/references/zotero-obsidian-subskill.md

5.7 KiB

QQnote Subskill Boundary

Use this file when the user asks QQsci to use QQnote, the Zotero/Obsidian workflow, newly imported papers, batch DeepSeek note generation, paper summary tables, missing-note audits, Obsidian literature notes, or Dataview dashboards.

The installed QQnote-skill is the source of truth for note generation and Obsidian maintenance. QQsci consumes the resulting notes and tables for materials-manuscript writing, strong/weak related-paper screening, submission-package audit, and DOI-only Word citation comments.

If QQnote-skill changes, follow QQnote-skill rather than this file for script arguments and operational details.

Core order

  1. QQnote first: identify Zotero items and generate/update Zotero child notes through QQnote-skill.
  2. Optional QQnote table: summarize selected papers into a Markdown comparison table when QQsci needs compact strong-paper comparison axes.
  3. Obsidian second: link Zotero notes into the vault through Zotero Integration and Dataview.
  4. QQsci third: use screened notes/tables to rewrite positioning, introduction, comparison, discussion, and citation placement.

Do not default to creating standalone Obsidian markdown notes when the user says 文献笔记; the default target is Zotero child notes generated by QQnote.

QQnote-skill entrypoints

Use these installed scripts through QQnote-skill, not reimplemented QQsci logic:

py "$env:USERPROFILE\.codex\skills\QQnote-skill\scripts\generate_zotero_ai_note.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --item-key SXAIQUJT --skip-existing
py "$env:USERPROFILE\.codex\skills\QQnote-skill\scripts\audit_zotero_ai_notes.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --keys-only
py "$env:USERPROFILE\.codex\skills\QQnote-skill\scripts\summarize_zotero_table.py" --vault "C:\Users\qyh15\Documents\Obsidian Vault" --item-keys "SXAIQUJT X7GJZ627" --batch-size 3 --out "C:\Users\qyh15\Documents\Obsidian Vault\99 misc\literature-comparison-table.md"

Use generate_zotero_ai_note.py when new or selected papers need Zotero child notes.

Use audit_zotero_ai_notes.py when QQsci needs to know which papers lack generated notes before manuscript screening.

Use summarize_zotero_table.py when QQsci needs a compact comparison table for strongly related papers, benchmark comparison, figure/storyline audit, or target-journal positioning.

Safety and config

  • Do not ask the user to paste API keys into chat.
  • Follow QQnote-skill's current config rules. It loads Zotero/LLM credentials from environment variables, private local config, or AwesomeGPT preferences.
  • Keep private config ignored and local-only.
  • Do not print secret-bearing config or preference lines.
  • Treat Zotero local API at 127.0.0.1:23119 as read-oriented.
  • For child-note writes, require QQnote's configured write path. It may require ZOTERO_API_KEY for Zotero Web API writes.

Preflight

Before writing notes:

  1. Check Zotero is running and the local/connector route is available.
  2. Confirm the target collection, selected items, tags, or explicit item keys.
  3. Check whether notes already exist and skip or update according to the user's instruction.
  4. Prefer QQnote dry-run or audit mode for first-time validation.
  5. Confirm the write route for Zotero child notes.
  6. Confirm the DeepSeek/AwesomeGPT config is available without exposing secrets.

Batch behavior

Batch work must be resumable:

  • use QQnote's existing duplicate detection and note audit behavior
  • skip items with successful existing notes unless the user asks to regenerate
  • for deep regeneration, follow QQnote's replace/update behavior instead of creating duplicate child notes
  • process long runs in 20-30 item batches
  • preserve UTF-8 output for Chinese templates and notes

New paper flow

When the user says they introduced new papers:

  1. Identify new Zotero items by collection, tag, selected items, import time, or explicit keys.
  2. Use QQnote-skill to gather metadata, abstract, attachment text if available, and existing child notes.
  3. Use QQnote-skill to send the note-generation prompt to DeepSeek/AwesomeGPT using the user's template.
  4. Create or update the Zotero child note through QQnote-skill.
  5. Refresh or instruct Obsidian Zotero Integration linking only after Zotero notes are created.
  6. Report successes, skips, and failures using QQnote's audit output.

Paper comparison table flow

When QQsci needs to compare strong related papers before revising or auditing a manuscript:

  1. Use literature-routing.md to choose candidate strong papers.
  2. Ask QQnote-skill to summarize those Zotero items into a Markdown table.
  3. Use columns relevant to materials manuscripts: title, year, journal, DOI, material system, device/application, mechanism, key performance, controls, figure logic, and useful comparison point.
  4. Use the table as the comparison basis for comparative-review-audit.md and submission-package-audit.md.

Manuscript integration flow

After notes exist:

  1. Extract manuscript keyword pack.
  2. Use literature-routing.md to classify strong and weak papers.
  3. Use QQnote notes or QQnote-generated comparison tables to build a source map linking paper -> useful claim -> manuscript section.
  4. For Word citation help, add native Word comments containing DOI strings only, one DOI per line.
  5. Rewrite the manuscript section with citation placeholders only if the user is not using the DOI-comment workflow.
  6. Flag missing evidence, missing citations, and overclaim risks.

Output template

QQnote preflight:

Processed Zotero items:

Generated or updated child notes:

QQnote comparison table:

Skipped existing notes:

Failed items and reason:

Next QQsci manuscript-use step: