DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

PerryLink /

PerryLink/dsh-source-cnki

Verified

Chinese-literature tooling for DeepSeek Harness without scraping: import RIS/EndNote-style or labeled (题名:/作者:/来源:) exports into stable records, format GB/T 7714-2015 (顺序编码制) or APA 7 citations (no invented fields), and run structural metadata validation (missing fields, implausible year, malformed DOI, duplicates). No CNKI login, no scraping, no C

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHubProject homepage
READMESource: main@c3ad9ec5

dsh-source-cnki

Chinese-literature records: import your export, cite it in GB/T 7714, check the metadata — without scraping CNKI.

No login, no scraping, no CNKI API (none is public for this purpose). The plugin reads RIS/EndNote-style or labeled text exports, assigns stable record ids, formats GB/T 7714-2015 (顺序编码制) or APA 7, and runs structural validation.

License Node

English · 简体中文


Scope decision (read first)

CNKI has no public API for this purpose. This plugin therefore does not log in, scrape, or bypass any access control. You export the records yourself (RIS/EndNote-style tagged text, or labeled text with 题名:/作者:/来源:), and the plugin works on that export. If your export lacks a field, the plugin says "missing" — it never invents a journal, year, volume, page range or DOI.

What it does

  • cnki_import — parses RIS/EndNote-style and labeled text exports, assigns a stable recordId (DOI-based when present, otherwise title+year), detects language, and validates structure. The export becomes REP evidence when persist is on.
  • cnki_cite — GB/T 7714-2015 顺序编码制 ([1] 作者. 题名[J]. 刊名, 年, 卷(期): 页码.), the same without numbering, or APA 7. Author rules: GB/T ≤3 all, otherwise first 3 + 等/et al; Western names become SURNAME I; APA becomes Surname, I..
  • cnki_check — structural validation: missing title/journal/year/authors, implausible year, malformed DOI, non-numeric pages, duplicates, journal without volume or issue.

What it does not do

  • No CNKI access. No login, no cookies, no scraping, no unofficial endpoints.
  • No content verification. It does not check that the record matches the real paper; use dsh-cite-verify for DOIs.
  • No semantic fields. No cited-by counts, impact factors or fund numbers.
  • No DOCX/PDF. Export as RIS/labeled text (PDF text extraction: dsh-doc-anchor).
  • No claim of GB/T completeness. Variants exist (著者-出版年制, [EB/OL] carriers, [J/OL] with URLs); v0.1 implements the common journal/thesis/conference/book cases and says so.

Formats

Format Recognized
RIS/EndNote TY, AU, TI, JO, PY, VL, IS, SP, EP, DO, KW, AB, ER (first tag wins per field, authors accumulate)
Labeled text 题名/标题/篇名, 作者, 来源/刊名, 年/发表时间, 卷, 期, 页码, DOI, 关键词, 摘要, 类型; blank line separates records

Unknown tags are ignored, not guessed.

Tools

cnki_import

{ text? | path?, format?, persist? } → { ok, records, validation, evidenceId?, recordPath? }.

cnki_cite

{ records, style?, startIndex? } → { ok, citations, text }.

cnki_check

{ records } → { ok, validation }.

Error codes

INVALID_INPUT · NOT_FOUND · PATH_ESCAPE · NOT_A_FILE · TOO_LARGE · UNSUPPORTED_FILE · NO_RECORDS · STORE_ERROR

Compatibility & install

DeepSeek Harness dsh-v0.2.1-rc.5 (verified 2026-11-08); peer >=0.2.1-0 <0.3.0 || >=0.2.2-0 <0.3.0
Node ^22.19.0 || >=24.9.0 (tested 24.22.1), ESM only
Peers @perrylink/dsh-research-core ^0.1.0, @deepseek-ai/cordis ^4.0.5-alpha.1, @deepseek-ai/dsh-tools, @deepseek-ai/schemastery ^3.18.5-alpha.1
Runtime dependencies zero
dsh plugin --profile <name> add @perrylink/dsh-research-core dsh-source-cnki
dsh --profile <name> --dump-config | grep dsh-source-cnki

Configuration

Key Default Meaning
enabled true false mounts nothing
root .source-cnki store/record root
workspaceRoot process.cwd() paths must resolve inside it
maxChars 2000000 export cap (fails, never truncates)
persist true store the export as REP evidence + record
style gbt7714-numeric default citation style

Security boundaries

  • No network at all: no CNKI, no DOI resolution, no telemetry.
  • Read-only on the export; writes only under root.
  • realpath containment; DOCX/PDF rejected with a conversion hint.
  • The export is data. Instruction-like text inside a title or abstract is never executed (there is no executor).

Evaluation

23 tests: RIS and labeled parsing (Chinese and English records, CRLF/BOM exports, DOI-based ids, language detection), auto-detection and empty/unrecognized rejection, GB/T journal citation with en-dash pages, ≤3 vs >3 author rules (等 / et al), missing-journal marker, thesis marker, sequential numbering, APA author/year/journal/volume/DOI, validation codes (missing title/journal, implausible year including far-future dates, malformed DOI, odd pages, duplicates), runtime (valid REP record, cite/check, traversal/symlink/DOCX/oversize rejection, malformed records and null text rejected), tool schemas, import→cite→check end to end, failure branches, plugin contract, package contract.

No benchmark is claimed: the ground truth is your export; correctness of the formatter is checked against the GB/T rules above with fixtures.

Known limitations (v0.1)

  • GB/T 7714 著者-出版年制, [J/OL]/[EB/OL] carriers and English journal abbreviation rules are not implemented.
  • Conference and book records reuse the journal field for proceedings/publisher (the export formats rarely carry separate fields).
  • Parsing is line-oriented; deeply wrapped multi-line abstracts in labeled exports may merge into the previous field.
  • No CNKI record id (CNKI:/DBID) retention beyond what the export contains.

License

Apache-2.0. No third-party runtime code.

—/ 5

No ratings yet

Verified DSH bundle

Commit c3ad9ec59a5e

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout