diff --git a/SKILL.md b/SKILL.md index 908b7f5..52a7538 100644 --- a/SKILL.md +++ b/SKILL.md @@ -46,7 +46,7 @@ introduction logic, comparison, novelty framing, and citations. | [references/submission-package-audit.md](references/submission-package-audit.md) | User provides or mentions a submission package with manuscript, Supporting Information, highlights, cover letter, figures, SI figures, TOC, graphical abstract, or related Word/PPT files | | [references/literature-routing.md](references/literature-routing.md) | User wants Zotero/Obsidian/DeepSeek note search, strong/weak related-paper screening, keyword extraction, or literature-grounded rewriting | | [references/word-citation-comments.md](references/word-citation-comments.md) | User wants citation insertion guidance in Word, reference placement, DOI-only comments, or annotated `.docx` citation suggestions | -| [references/zotero-obsidian-subskill.md](references/zotero-obsidian-subskill.md) | User asks to generate new Zotero notes, batch process newly imported papers, link Zotero notes into Obsidian, or operate the prior Zotero-Obsidian workflow | +| [references/zotero-obsidian-subskill.md](references/zotero-obsidian-subskill.md) | User asks to generate new Zotero notes, batch process newly imported papers, summarize papers as comparison tables, link Zotero notes into Obsidian, or operate QQnote/QQnote-skill | | [references/journal-positioning.md](references/journal-positioning.md) | Target journal is missing, uncertain, or needs recommendation and writing-position adjustment | ## Intake @@ -180,11 +180,15 @@ Rules: ## Zotero/Obsidian child-note subskill -When the user imports new papers and asks to generate notes, use +When the user imports new papers and asks to generate notes, summarize selected +papers, audit missing notes, or operate QQnote, use `references/zotero-obsidian-subskill.md`. Important defaults: +- Prefer the installed `QQnote-skill` as the source of truth for Zotero child + note generation, note audits, paper-to-table summarization, Obsidian cleanup, + and Dataview dashboards. - Generate or update Zotero child notes first. - Obsidian comes second through Zotero Integration links and Dataview. - Keep API keys in local private config, not in chat. diff --git a/references/zotero-obsidian-subskill.md b/references/zotero-obsidian-subskill.md index cfac03d..8a132fa 100644 --- a/references/zotero-obsidian-subskill.md +++ b/references/zotero-obsidian-subskill.md @@ -1,30 +1,61 @@ -# Zotero-Obsidian Literature Note Subskill +# QQnote Subskill Boundary -Use this file when the user asks to use the previous Zotero/Obsidian workflow, -generate notes for newly imported papers, batch-process papers with DeepSeek, or -link generated notes into Obsidian. +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. Zotero first: identify target items and generate/update Zotero child notes. -2. Obsidian second: link Zotero notes into the vault through Zotero Integration +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. -3. Manuscript third: use screened notes to rewrite positioning, introduction, - comparison, discussion, and citation placement. +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. +`文献笔记`; 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. -- Load secrets from environment variables, then `config/config.local.json`, then - the local AwesomeGPT/Zotero profile if available. -- Keep `config/config.local.json` ignored and local-only. +- 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 a configured write path: Zotero Web API, - connector helper, or an existing local helper script. +- For child-note writes, require QQnote's configured write path. It may require + `ZOTERO_API_KEY` for Zotero Web API writes. ## Preflight @@ -34,17 +65,19 @@ Before writing notes: 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. Confirm the write route for Zotero child notes. -5. Confirm the DeepSeek/AwesomeGPT config is available without exposing secrets. +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: -- write a manifest with Zotero item key, title, DOI, note status, timestamp, - and error +- use QQnote's existing duplicate detection and note audit behavior - skip items with successful existing notes unless the user asks to regenerate -- process in batches, not one broad unbounded run +- 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 @@ -53,14 +86,27 @@ When the user says they introduced new papers: 1. Identify new Zotero items by collection, tag, selected items, import time, or explicit keys. -2. For each item, gather metadata, abstract, attachment text if available, and - existing child notes. -3. Send the note-generation prompt to DeepSeek/AwesomeGPT using the user's - template. -4. Create or update the Zotero child note. +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. Update the manifest and report successes, skips, and failures. +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 @@ -68,7 +114,8 @@ After notes exist: 1. Extract manuscript keyword pack. 2. Use `literature-routing.md` to classify strong and weak papers. -3. Build a source map linking paper -> useful claim -> manuscript section. +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 @@ -77,14 +124,16 @@ After notes exist: ## Output template -`Preflight:` +`QQnote preflight:` `Processed Zotero items:` `Generated or updated child notes:` +`QQnote comparison table:` + `Skipped existing notes:` `Failed items and reason:` -`Next manuscript-use step:` +`Next QQsci manuscript-use step:`