diff --git a/SKILL.md b/SKILL.md index 52a7538..d20b46e 100644 --- a/SKILL.md +++ b/SKILL.md @@ -13,10 +13,10 @@ English polish, but a materials-specific argument that connects composition, structure, properties, mechanism, device/application performance, and limits. It can also route through the user's Zotero/Obsidian literature-note workflow: -extract keywords from the manuscript topic or draft, use DeepSeek to screen -existing Zotero child notes or Obsidian-linked notes, separate strongly related -and weakly related papers, then use those papers to improve positioning, -introduction logic, comparison, novelty framing, and citations. +extract keywords from the manuscript topic or draft, use QQnote-generated +Zotero child notes or paper tables as literature inputs, separate strongly +related and weakly related papers inside QQsci, then use those papers to improve +positioning, introduction logic, comparison, novelty framing, and citations. ## Core stance @@ -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, summarize papers as comparison tables, link Zotero notes into Obsidian, or operate QQnote/QQnote-skill | +| [references/zotero-obsidian-subskill.md](references/zotero-obsidian-subskill.md) | User asks QQsci to obtain or refresh literature-note inputs through QQnote, including Zotero child-note summaries or paper comparison tables | | [references/journal-positioning.md](references/journal-positioning.md) | Target journal is missing, uncertain, or needs recommendation and writing-position adjustment | ## Intake @@ -96,15 +96,15 @@ placeholders. ## Literature-note routing workflow Use this when the user wants the manuscript optimized using previous -DeepSeek/AwesomeGPT Zotero notes. +DeepSeek/AwesomeGPT Zotero notes generated by QQnote or equivalent sources. 1. Extract manuscript keywords from the topic, draft, abstract, figures, or SI: material names, material family, device/application, mechanism, performance metrics, synthesis strategy, target journal, and competing concepts. 2. If the target journal is absent, ask the author for it. If they want advice, open `references/journal-positioning.md` and recommend several tiers. -3. Open `references/literature-routing.md` and prepare a DeepSeek screening - brief for existing notes. +3. Open `references/literature-routing.md` and perform QQsci's own relevance + screening against the existing notes or QQnote-generated comparison tables. 4. Screen notes into: - `strongly related`: same material, same material family plus same device, same mechanism, same target journal/neighbor journal, or direct benchmark. @@ -180,15 +180,16 @@ Rules: ## Zotero/Obsidian child-note subskill -When the user imports new papers and asks to generate notes, summarize selected -papers, audit missing notes, or operate QQnote, use +When the user imports new papers and asks to generate Zotero child-note +summaries or paper comparison tables with 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. +- QQnote is only the note/table generation tool. +- QQsci owns keyword extraction, strong/weak related-paper screening, target + journal positioning, comparative review, submission-package audit, and + DOI-only Word citation comments. - 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 8a132fa..b342daf 100644 --- a/references/zotero-obsidian-subskill.md +++ b/references/zotero-obsidian-subskill.md @@ -1,139 +1,94 @@ -# QQnote Subskill Boundary +# QQnote Input 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. +Use this file when QQsci needs literature-note inputs from QQnote. -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. +QQnote is only the tool for summarizing papers into Zotero child notes or +compact Markdown comparison tables. QQsci owns all manuscript-facing reasoning: +keyword extraction, strong/weak related-paper screening, target-journal +positioning, comparative review, submission-package audit, figure/format +checks, terminology checks, and DOI-only Word citation comments. -If QQnote-skill changes, follow QQnote-skill rather than this file for script -arguments and operational details. +Do not ask QQnote to decide whether a paper is strongly related, weakly related, +necessary for citation, or sufficient as reviewer evidence. QQnote supplies +structured paper information; QQsci makes the manuscript decision. ## 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. +1. QQsci identifies what literature input is needed from the manuscript topic, + draft, figures, target journal, or missing evidence. +2. QQnote generates or refreshes Zotero child-note summaries for selected papers + when the notes are missing or stale. +3. QQnote may summarize selected papers into a Markdown comparison table when + QQsci needs compact data for side-by-side comparison. +4. QQsci performs relevance classification, manuscript comparison, audit, + rewriting, and Word DOI-comment placement. Do not default to creating standalone Obsidian markdown notes when the user says -`文献笔记`; the default target is Zotero child notes generated by QQnote. +`文献笔记`; the default input source is Zotero child notes generated by QQnote. -## QQnote-skill entrypoints +## QQnote entrypoints -Use these installed scripts through QQnote-skill, not reimplemented QQsci logic: +Use the installed `QQnote-skill` scripts only for note/table generation: ```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. +papers it has already selected or is about to classify. + +Do not use QQnote's audit, cleanup, or Dataview workflows as QQsci decision +logic unless the user explicitly asks for QQnote maintenance. ## 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. +- Follow QQnote's current config rules for DeepSeek/AwesomeGPT and Zotero + credentials when generating notes or tables. - 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. +- For child-note writes, use QQnote's configured write path. -## Preflight +## When to call QQnote -Before writing notes: +Call QQnote when: -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. +- a candidate paper has no generated Zotero child note +- the user imports new papers and wants note generation +- QQsci needs a compact table for a selected set of papers +- the existing notes are too thin and the user asks for deeper notes -## Batch behavior +Do not call QQnote when: -Batch work must be resumable: +- the task is only to classify strong/weak related papers from existing notes +- the task is target-journal positioning +- the task is manuscript/package audit +- the task is Word DOI-only citation comments +- the task is figure, format, spelling, or terminology checking -- 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 +## QQsci-owned manuscript integration -## New paper flow +After QQnote outputs notes or a table: -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. +1. QQsci extracts the manuscript keyword pack. +2. QQsci uses `literature-routing.md` to classify strong and weak papers. +3. QQsci builds a source map linking paper -> useful claim -> manuscript + section. +4. QQsci uses `comparative-review-audit.md` and + `submission-package-audit.md` for missing-evidence and package checks. +5. QQsci adds Word native comments containing DOI strings only when requested. ## Output template -`QQnote preflight:` +`QQnote input used:` -`Processed Zotero items:` +`Generated or refreshed notes:` -`Generated or updated child notes:` +`QQnote table path:` -`QQnote comparison table:` - -`Skipped existing notes:` - -`Failed items and reason:` - -`Next QQsci manuscript-use step:` +`QQsci screening/audit next step:`