Use QQnote as QQsci note subskill

This commit is contained in:
qyh15 2026-05-23 14:25:05 +08:00
parent d42ad5b772
commit 8aaa4abe79
2 changed files with 83 additions and 30 deletions

View File

@ -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/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/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/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 | | [references/journal-positioning.md](references/journal-positioning.md) | Target journal is missing, uncertain, or needs recommendation and writing-position adjustment |
## Intake ## Intake
@ -180,11 +180,15 @@ Rules:
## Zotero/Obsidian child-note subskill ## 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`. `references/zotero-obsidian-subskill.md`.
Important defaults: 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. - Generate or update Zotero child notes first.
- Obsidian comes second through Zotero Integration links and Dataview. - Obsidian comes second through Zotero Integration links and Dataview.
- Keep API keys in local private config, not in chat. - Keep API keys in local private config, not in chat.

View File

@ -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, Use this file when the user asks QQsci to use QQnote, the Zotero/Obsidian
generate notes for newly imported papers, batch-process papers with DeepSeek, or workflow, newly imported papers, batch DeepSeek note generation, paper summary
link generated notes into Obsidian. 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 ## Core order
1. Zotero first: identify target items and generate/update Zotero child notes. 1. QQnote first: identify Zotero items and generate/update Zotero child notes
2. Obsidian second: link Zotero notes into the vault through Zotero Integration 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. and Dataview.
3. Manuscript third: use screened notes to rewrite positioning, introduction, 4. QQsci third: use screened notes/tables to rewrite positioning,
comparison, discussion, and citation placement. introduction, comparison, discussion, and citation placement.
Do not default to creating standalone Obsidian markdown notes when the user says 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 ## Safety and config
- Do not ask the user to paste API keys into chat. - Do not ask the user to paste API keys into chat.
- Load secrets from environment variables, then `config/config.local.json`, then - Follow QQnote-skill's current config rules. It loads Zotero/LLM credentials
the local AwesomeGPT/Zotero profile if available. from environment variables, private local config, or AwesomeGPT preferences.
- Keep `config/config.local.json` ignored and local-only. - Keep private config ignored and local-only.
- Do not print secret-bearing config or preference lines. - Do not print secret-bearing config or preference lines.
- Treat Zotero local API at `127.0.0.1:23119` as read-oriented. - 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, - For child-note writes, require QQnote's configured write path. It may require
connector helper, or an existing local helper script. `ZOTERO_API_KEY` for Zotero Web API writes.
## Preflight ## Preflight
@ -34,17 +65,19 @@ Before writing notes:
2. Confirm the target collection, selected items, tags, or explicit item keys. 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 3. Check whether notes already exist and skip or update according to the user's
instruction. instruction.
4. Confirm the write route for Zotero child notes. 4. Prefer QQnote dry-run or audit mode for first-time validation.
5. Confirm the DeepSeek/AwesomeGPT config is available without exposing secrets. 5. Confirm the write route for Zotero child notes.
6. Confirm the DeepSeek/AwesomeGPT config is available without exposing secrets.
## Batch behavior ## Batch behavior
Batch work must be resumable: Batch work must be resumable:
- write a manifest with Zotero item key, title, DOI, note status, timestamp, - use QQnote's existing duplicate detection and note audit behavior
and error
- skip items with successful existing notes unless the user asks to regenerate - 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 - preserve UTF-8 output for Chinese templates and notes
## New paper flow ## 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 1. Identify new Zotero items by collection, tag, selected items, import time, or
explicit keys. explicit keys.
2. For each item, gather metadata, abstract, attachment text if available, and 2. Use QQnote-skill to gather metadata, abstract, attachment text if available,
existing child notes. and existing child notes.
3. Send the note-generation prompt to DeepSeek/AwesomeGPT using the user's 3. Use QQnote-skill to send the note-generation prompt to DeepSeek/AwesomeGPT
template. using the user's template.
4. Create or update the Zotero child note. 4. Create or update the Zotero child note through QQnote-skill.
5. Refresh or instruct Obsidian Zotero Integration linking only after Zotero 5. Refresh or instruct Obsidian Zotero Integration linking only after Zotero
notes are created. 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 ## Manuscript integration flow
@ -68,7 +114,8 @@ After notes exist:
1. Extract manuscript keyword pack. 1. Extract manuscript keyword pack.
2. Use `literature-routing.md` to classify strong and weak papers. 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, 4. For Word citation help, add native Word comments containing DOI strings only,
one DOI per line. one DOI per line.
5. Rewrite the manuscript section with citation placeholders only if the user is 5. Rewrite the manuscript section with citation placeholders only if the user is
@ -77,14 +124,16 @@ After notes exist:
## Output template ## Output template
`Preflight:` `QQnote preflight:`
`Processed Zotero items:` `Processed Zotero items:`
`Generated or updated child notes:` `Generated or updated child notes:`
`QQnote comparison table:`
`Skipped existing notes:` `Skipped existing notes:`
`Failed items and reason:` `Failed items and reason:`
`Next manuscript-use step:` `Next QQsci manuscript-use step:`