@liuhaolong16/dsh-paper-studio avatar

@liuhaolong16/dsh-paper-studio

论文方案(编排层)+ DSH 论文插件 V3:真源唯一 · 双模式(用户模式默认封闭)· 五种写作模式(行为差异化)· 确定性意图判据 · 可复跑自检(插件 20/20 · 出厂审查 6/6 · 编排层 53/53)。

PluginContentCreator & socialOffice automationCode review
Verification
L4 · Install tested
Failed
Risk
LowRisk
Health
Active
Trust
Silver

Install verification: sandbox install ok, web smoke failed (L5) · tested on dsh 0.2.1-rc.2 · last checked Install verification details →

What it doesAI

DSH paper-writing plugin plus orchestration layer with dual modes, five behaviour-differentiated writing modes, deterministic intent rules and re-runnable self-checks.

  • Paper scheme orchestration layer with a single source of truth
  • Dual modes (user mode closed by default) and five writing modes
  • Deterministic intent criteria plus re-runnable self-checks
contentAIcreatorAIofficeAI

Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.

Installation

dsh plugin --profile web add dsh-paper-studio
verified 3.2.81

Install method: npm · sandbox install ok, web smoke failed (L5)

Verification & Compatibility

Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.

External credentials (plugin-level): none detected

Declared DSH compatibilityfrom package.json · peerDependencies
author declared no dsh version requirement

○ The author declares no dsh version requirement — install is not blocked by version.

Install compatibility matrix (rows = plugin versions〔latest 5〕, columns = dsh versions〔latest 5〕)
At-a-glance → evidence in the cards below
plugin \ dshdsh 0.2.1-rc.2
current
dsh 0.2.1-alpha.4
3.50.1··
3.2.81✗·
Install compatibility (by plugin version, dsh versions within)
Legend:✓ L5 runtime verified○ ecosystem plugin◼ ecosystem app✗ failed
3.50.1npm2026-10-21

dsh-paper-studio

No runtime install test for this version (static scan only) — compatibility unknown, never assumed.

3.2.81npm1 failed2026-10-19

dsh-paper-studio

✗dsh 0.2.1-rc.2current2026-10-19L5 · failed
Environment & artifact
  • • Node.js: v24.14.0
  • • DSH: 0.2.1-rc.2
  • • Plugin artifact: npm · dsh-paper-studio@3.2.81
Levels (L1–L3 plugin-level static archive · L4/L5 newest real verdicts for this combination)
L1 static
Passed
L2 static
Passed
L3 static
Passed
L4 sandbox
Passed
L5 runtime
Failed
Sandbox install failed
L5 · failed

ID: dsh-paper-studio@3.2.81@dsh0.2.1-rc.2 · profile: l4-sandbox

Issued: 2026-10-19 · expires: 2026-10-26

View checks & evidence
L1 · Found✓ Passed

↳ carried from earlier record dsh-paper-studio@3.50.1@dsh0.2.1-rc.2 (l3-fullscan)

Defaulted from L3✓ Passed
defaulted to passed — L3 install spec passed (full-registry L3 sweep policy)
L2 · Structured✓ Passed

↳ carried from earlier record dsh-paper-studio@3.50.1@dsh0.2.1-rc.2 (l3-fullscan)

Defaulted from L3✓ Passed
defaulted to passed — L3 install spec passed (full-registry L3 sweep policy)
L3 · Install spec✓ Passed

↳ carried from earlier record dsh-paper-studio@3.50.1@dsh0.2.1-rc.2 (l3-fullscan)

Install command parsed✓ Passed
Source: registry verification · Method: install spec parse · Captured 2026-10-21
DSH version declared✓ Passed
Source: registry verification · Method: DSH version declaration · Captured 2026-10-21
L4 · Install tested✓ Passed
Install executed in confined sandbox✓ Passed
Source: Windows ACL sandbox · Method: sandbox install run · Captured 2026-10-19
spec dsh-paper-studio · channel npm package · outcome ran · exit 0
check took: 3.1s
Install succeeded✓ Passed
Source: Windows ACL sandbox · Method: sandbox install run · Captured 2026-10-19
spec dsh-paper-studio · channel npm package · outcome ran · exit 0
check took: 3.1s
Installed artifact confirmed✓ Passed
Source: Windows ACL sandbox · Method: sandbox install run · Captured 2026-10-19
spec dsh-paper-studio · channel npm package · outcome ran · exit 0
check took: 3.1s
L5 · Run tested✕ Failed
Sandbox install passed✓ Passed
Source: Windows ACL sandbox · Method: sandbox install run · Captured 2026-10-19
spec dsh-paper-studio · install mode reused L4 scratch
check took: 0ms
Web boot ready✕ Failed
plugin tree failed to load
HTTP endpoint served✕ Failed

L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.

Only the latest 3 published versions are shown; source-snapshot (commit hash) groups, unstated groups and older versions are omitted — the full archive stays in the data layer (snapshot/unstated groups appear only when a plugin has no published version).

Author badges

Embed the official badges in your README to showcase security & install-test status:

dsh.so risk
`[![dsh.so risk](https://www.dsh.so/badge/dsh-paper-studio.svg)](https://www.dsh.so/artifact/dsh-paper-studio/)`

Security Report

Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.

dsh-paper-studioAutomated review · daily

Static low, dynamic low — stricter wins → overall low.

static low→dynamic low→overall low
0 critical·0 high
lowoverall · low
1static scan · vet primaryvet AST static analysis (npm artifact or git source)
plugin versionv3.50.1dsh manifest
scanned version3.50.1npm2026-10-21
current version3.50.1same version
vet verdictclean · git

Vet is an AST static scan (npm artifact or git source).

show static findings (8)
  • warningchildProcess · code-execbin/corpus-regression.cjs:46

    const r = spawnSync(process.execPath, [path.join(BIN, gateFile), '--draft', draft, '--json'], { encoding: 'utf8' });

  • warningfsWrite · filesbin/corpus-regression.cjs:110

    fs.writeFileSync(baselinePath, JSON.stringify({ version: VERSION, corpus, at: new Date().toISOString(), snapshot: cur }, null, 1) + '\n', 'u

  • warningfsWrite · filesbin/corpus-regression.cjs:143

    const mk = (n, body) => fs.writeFileSync(path.join(corpus, n), body, 'utf8');

  • warningfsWrite · filesbin/disclose.cjs:119

    if (of) { fs.writeFileSync(of, out + '\n', 'utf8'); console.log('已写出:' + of); }

  • warningfsWrite · filesbin/sync-skill-table.cjs:61

    if (changed && !o.check) fs.writeFileSync(target, next, 'utf8');

  • warningfsWrite · filesbin/sync-skill-table.cjs:96

    fs.writeFileSync(tmp, '# 临时技能文档\n\n(故意没有总表)\n', 'utf8');

  • warningchildProcess · code-execgates/_gate-compliance.cjs:59

    const r = spawnSync(process.execPath, [found.studio, 'compliance', dir].concat(opts.json ? ['--json'] : []), { encoding: 'utf8', timeout: 30

  • warningchildProcess · code-execplugin/adapters/install-codex.cjs:31

    const run = (cmd, args) => spawnSync(cmd, args, { encoding: 'utf8', shell: process.platform === 'win32' })

2model reads redacted source context · never executes plugin code
highest gradelow
merged intooverall low
audited at2026-10-19
findings0 critical·0 high0 medium / 3 low hidden
show 3 audit findings
  • lowCodex installer builds the command line with shell:true on Windowsplugin/adapters/install-codex.cjs:31

    On win32 the command is assembled by string concatenation without quoting, so absolute paths passed later as arguments (process.execPath, the SERVER path built from __dirname) containing spaces or cmd metacharacters (&, ^, |) are mis-parsed or, if an install path is attacker-influenced, become injected commands run with the user's privileges (e.g. during 'codex mcp add paper-studio -- <node> <server>'). The script must be run manually by the user, so the precondition is substantial.

  • lowCompliance gate executes studio.cjs resolved from env var and a hard-coded absolute path without integrity checkgates/_gate-compliance.cjs:25

    findStudio() picks the first existing bin/studio.cjs among these roots and gates/_gate-compliance.cjs runs it with process.execPath under the reviewing user's full privileges (spawnSync(process.execPath, [found.studio, 'compliance', dir])). The fixed machine-specific root 'E:\\DeepSeek\\skills\\paper-studio' (and the env override) bypasses any integrity check, so anything able to write into such a path gets code execution each time a compliance gate runs. It is argv-based, so no shell injection is involved, and the path is chosen by the local user's own environment.

  • lowPublished package hard-codes a developer-local corpus directory pathbin/corpus-regression.cjs:34

    Minor information disclosure: the author's local workspace layout is published to the registry, and the tool silently defaults to reading outside the package (it only errors out when the directory is absent). No privilege or data exposure beyond the path string.

Local paper-writing CLI toolkit: child processes use fixed paths/argv without shell, no network calls; only low-severity hardening gaps found.

Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.

Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.

Activity

Last commit 2026-10-18 · activity: Active

• Repo created: 2026-10-14

• Stars: ★ 0 · Forks: 0

• Health: Active — committed within last 30 days

Source

GitHub: github.com/liuhaolong16/dsh-paper-studio

Was this page helpful?