# 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: ```powershell 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:`