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

140 lines
5.7 KiB
Markdown

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