From research-workspace
Audits and curates Zotero libraries: detects duplicate DOIs, orphan items without required tags, proposes collection rebinds and tag hygiene reports, generates preview-only cleanup plans.
npx claudepluginhub wenyuchiou/ai-research-skills --plugin research-workspaceThis skill uses the workspace's default tool permissions.
Sit one layer above the standalone `zotero-skills` skill. This skill
Performs full CRUD on Zotero libraries: search, add, update, delete items with notes, tags, collections, PDFs via dual local/web APIs. For managing references, citations, literature.
Performs full CRUD on Zotero libraries: search, add, update, delete items with notes, tags, collections, PDFs via dual local/web APIs. Auto-activates on Zotero, references, citations mentions.
Syncs Zotero libraries, adds citations by DOI/ISBN/PMID, lists items, fetches and manages PDFs via zotero.py CLI.
Share bugs, ideas, or general feedback.
Sit one layer above the standalone zotero-skills skill. This skill
reads the Zotero library, runs audit + hygiene checks, and emits
preview plans. It does NOT perform the changes itself.
For any actual create / update / delete operation, defer to:
zotero-skills skill (full CRUD, dual local/web API
routing); orresearch-hub zotero CLI (backfill --tags --notes [--apply],
etc., which is preview-first by default).Reading the Zotero library requires a connection. The skill works in two modes:
zotero-skills
(Zotero local API) or the research-hub zotero CLI to
inspect items.zotero-skills or
research-hub zotero ... --apply.Before running, verify at least one is present:
research-hub --version 2>/dev/null # if research-hub CLI installed
ls ~/.claude/skills/zotero-skills/SKILL.md 2>/dev/null # if zotero-skills skill installed
If neither is available, the user installed only the marketplace
plugin without the CLI and without the standalone zotero-skills
skill. Stop and tell them:
This skill audits a Zotero library, which needs Zotero connectivity via one of:
- The standalone
zotero-skillsskill (handles Zotero local API):git clone https://github.com/WenyuChiou/zotero-skills ~/.claude/skills/zotero-skills- Or the
research-hubCLI:pip install research-hub-pipelineEither path needs Zotero configured (local API on port 23119, or Zotero Web API key). Once one is set up, re-run your audit request.
Trigger phrases:
Not for:
zotero-skills skill.research-hub zotero backfill (already preview-first).research-hub clusters commands.zotero-skills
search, not the curator.In priority order:
.research_hub/clusters.yaml) —
to know which Zotero collections belong to which research clusters.zotero-skills READ Operations patterns directly; don't reinvent..research_hub/dedup_index.json) —
precomputed DOI/title hash table; far cheaper than a fresh scan.research-hub zotero backfill
(saved to .research_hub/backfill-*.md) — historical state of
prior cleanups.For each request, pick the relevant subset:
For each item in a research-hub cluster:
research-hub, cluster/<slug>,
optionally category/<arxiv-cat>, type/<doc-type>, src/<backend>.research-hub or cluster/<slug>.research-hub zotero backfill --tags.cluster/<slug> tag vs Zotero collection
membership.research-hub clusters rebind --emit then
--apply.agent-based-modelling vs
agent-based-modeling).zotero-skills batch update.Always emit a preview plan, never apply. Structure:
## Zotero curation report (read-only)
**Library**: <library_id> · **Items audited**: <N>
### Duplicate DOIs (<count>)
- 10.1234/abcd: 2 items (KEEP item ABC123, MERGE/TRASH XYZ456)
- ...
### Items missing required tags (<count>)
- KEY1: missing [research-hub, cluster/foo]
- ...
### Cluster/collection mismatches (<count>)
- KEY7: tagged cluster/foo but in collection bar
- ...
### Tag hygiene
- Near-duplicate tag candidates: agent-based-modeling (47) vs agent-based-modelling (3)
- Tags used once: ['hopf', 'sufficient', ...] (potential typos)
### Collection bloat
- "survey" collection has 237 items — consider splitting
- "benchmarking" has 8 items — consider merging
### Suggested follow-ups
1. Run `research-hub zotero backfill --tags --notes` to fix the 12 missing-tag items
2. Run `research-hub clusters rebind --emit` to review the 3 mismatches
3. Manually rename the 2 tag near-duplicates in Zotero desktop
4. Defer the bloat/sparsity questions to a human review session
If the report has 0 issues, emit a single OK line and stop.
.research_hub/curator-<timestamp>.md if the
user asks "save this report".--apply.zotero-skills batch update.research-hub zotero backfill --apply or manual delete.