Atlas / Skills / wubing2023 / PaperSpine5

PaperSpine5BLOCK

skills/wubing2023/paper-spine-audit

PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/

Verdict
BLOCK
Grade
F
Trust score
35 /100
Version
—
Hosts
4 documented
License
MIT
Stars
6,032
01

Overview

From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.

中文 · English · 日本語 · 한국어 · Español · Français · Deutsch · Русский · Português

产品页 · GitHub Release

PaperSpine5:从零开始,快速完成一篇图文完整的论文。

PaperSpine5 是一个覆盖论文全流程的 AI Skill。你提供研究方向、已有资料或实验数据,它帮你查文献、梳理论点、搭建大纲、撰写全文、生成科研配图,并完成引用核验、审阅修改和排版,最终交付可编辑的 Word / LaTeX 源文件和 PDF。

从正文到数据图、机制示意图和方法框架图,在同一个任务中完成。通过 paper-spine 启动,在网页中选择方案、预览图文、提出修改意见并下载成果。研究材料优先保存在本地,论点、引用和图表均以真实资料与证据为依据。

社区星图

上图是公开 GitHub Stargazer 自报地理位置与机构信息的预览快照。它反映公开社区分布,不代表安装量、活跃用户、论文数量、产品能力或机构采用。点击图片可打开每日刷新的可交互社区星图。

下载

  • Windows x64 套件:约 26.5 MB。
  • Linux glibc x86_64 套件:约 56.2 MB。
  • macOS Apple Silicon 套件:约 40.6 MB。
  • macOS Intel x86_64 套件:约 40.5 MB。

所有下载都列在公开发布清单中,并用 SHA-256 校验。完整版本号为 v0.4.0-alpha.3 预发布。

高级 / 手动安装

当前发布仅提供四个平台的完整套件。历史约 0.70 MB 的 Skill-only ZIP 不含 Web 核心与运行时,不能用于首次安装或修复缺失套件指针。高级用户可从已验证的完整套件管理 Skill。

安装与旧版本迁移

Windows x64:

powershell -ExecutionPolicy Bypass -File .\install.ps1 -Target codex -CleanLegacy

macOS / Linux:

sh ./install.sh --target codex --clean-legacy

-CleanLegacy 先只读预览,仅在发现旧版冲突时写归档;不删除论文任务数据、宿主设置或未知文件。两个平台安装器都会校验字节数、SHA-256、套件内部完整性和首次启动自

Read from source at commit b426959e3a4bOBSERVED · 2026-10-21
Advertisement
02

Host compatibility

What the documentation claims. We have not run a compatibility test.

HostStatusNotes
claude-codementioned
codexmentioned
cursormentioned
openclawmentioned
03

What it tells the agent

The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.

---
name: paper-spine
description: Research, write, review and deliver evidence-bound papers in one task, with user choices, real files, editable outputs and same-task revision.
# Suite Update Authority; Blocks unsupported readiness claims.
---

# PaperSpine Orchestrator

Before paper production or resume, read [paper-spine-production-protocol.md](references/paper-spine-production-protocol.md). It is the operational 17-step handoff for the methods below.

The current host Agent performs research, citation checking, interpretation,
writing, figures and revision, and arranges independent review. Web, local files
and small scripts support interaction, persistence, rendering and delivery.

When configuration is missing, launch the intake UI automatically before inspecting
materials; do not hand-write configuration or silently choose a paper root.
For a visible launcher action, use `require_escalated` as required by the host.
After the update preflight below, launch is the first paper-production action when configuration is missing.

**Product outcome:** an evidence-bound, coherent paper with informative figures,
applicable venue format and editable sources. Learn from strong same-field and
venue papers. Let users configure, choose contribution/figures, preview,
download and revise the same task.

Tool success, hashes and task status do not establish scientific, editorial,
visual or submission readiness; assess the actual paper.

## Authority and boundaries

1. The host Agent owns scholarly judgment and the current paper files.
2. The user's materials/results are authoritative for claims about this study.
   Never invent data, metrics, p-values, citations, figures, methods, authors,
   ethics, funding, permissions or review conclusions.
3. Use one task ID, one material/workspace binding and one continuous revision
   history. Never create a second task because a launcher, profile or transport
   failed. Never silently switch to another directory, profile, task or paper.
4. Web is the supported path for configuration, user choices, previews, downloads
   and feedback. It supports the configuration and choice boundaries below; existing confirmed
   scope permits independent local corrections during a Web outage.
5. Task status never authorizes uploads, publication, submission, payment,
   licensing, telemetry or external contact; obtain explicit authorization.
6. Private materials stay local unless explicitly authorized for sharing. Apply
   the saved research mode as described below; public literature reading is normal.

## Update once on invocation, then continue the paper

Before starting or resuming paper production, run the installed Skill's
`scripts/paperspine_update.py --preflight --yes` with its verified Python.
This checks the official channel on every invocation: if current, continue;
if newer, transactionally update the Skill, Web/runtime and updater together.
Honor an explicit auto-update opt-out. An offline check may continue with the
existing installation and a clear notice; a failed install must retain the old
installation and report the actual error. Never repeatedly reinstall to repair
paper state. After a successful update, reread this installed SKILL and the
current public tool schemas, preserving the same task, profile and user files.
See [product-v1-workflow.md](references/product-v1-workflow.md) for entry details.

## Start, configure and continue the current paper

A read-only explanation, audit or plan ends with the requested result. Launch
and configuration below apply to paper production, not Skill inspection or plans.

Read [product-v1-workflow.md](references/product-v1-workflow.md) for the actual
public tool shapes and [intent-configuration.md](references/intent-configuration.md)
for first-message prefilling. The current Agent is the scientific host; launching
Web does not launch another writer. Follow this sequence:

1. Resolve the user's named material folder. “This/current folder” explicitly
   selects the conversation working directory. Without such an instruction, do
   not assume an unrelated shell directory is the paper. Initially list names
   and identify candidate inputs; defer substantive analysis until configuration
   and the material choice are saved. Preserve original materials.
2. Start the installed launcher with `launch --no-open`; it returns a service URL,
   not a paper or running AI. Open only the bound task URL once. In Codex prefer
   its available in-app browser unless the user chose another; never also open
   the external browser. Reuse that tab and the same profile for later choices.
3. Read public schemas with `host tools`. Resume the explicitly linked task only
   after checking its material roots against this paper. A remembered profile is
   a shared server preference, not the current paper ID. A recent/open browser
   tab is not task-selection authority. Two different papers have separate task
   IDs even in one profile. If this paper has no task, the current Agent calls
   `paperspine_open_task`; it must not wait for another host to create one.
4. For a new task supply a concise `title` and one-sentence `description` in the
   open-task payload, derived from the user's actual topic, inputs and requested
   output. Include the target venue when known; do not invent findings or expose
   absolute private paths. Preserve identity on resume. The task's workspace is
   for generated files; authorized material roots may correctly be elsewhere.
5. Prefill settings supported by the user's request as an AI proposal, including
   workflow, target, language, research mode, reading depth and delivery formats.
   Default to 3+3 papers or 6+6 for deeper literature learning; explicit counts
   prevail. Public-paper retrieval needs no permission toggle; private inputs
   stay local. Open the returned `skill_bridge.web_path` on the launched origin;
   verify the task title/ID and configuration/material cards. A homepage, stale
   task, blank page or p
04

Trust audit

BLOCKgrade F · trust 35/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.

LayerWhat it checksResult
L0Provenance & inventoryPASS
L1Static analysis of the codeFAIL
L2Instruction surface (what it tells the agent)FAIL
L3Class-specific surfacePASS
L4Behavioural (sandbox)SKIPPED

What the source does

Filesystem
declared (5 observation(s))
Network
declared (14 observation(s))
Shell
declared (8 observation(s))
Dependencies
not all pinned
Secrets in source
found

Findings (25)

HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
paperspine5/core/03_联合开发/src/paperspine_figure_integration/successor_authority.py:209
actual_code = marshal.load(stream)
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHCode injection · code.deserialize · CWE-78, CWE-94, CWE-95
paperspine5/core/06_插件化/release/user_update.py:901
actual_code = marshal.load(marshalled)
Why it matters. deserialises untrusted bytes into live objects
Fix. use json or yaml.safe_load
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
dist/claude/skills/paper-spine/references/product-v1-workflow.md:198
a new host session, so never tell the user to open another conversation first.
Why it matters. asks the agent to act without the user's knowledge
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
dist/codex/skills/paper-spine/references/product-v1-workflow.md:198
a new host session, so never tell the user to open another conversation first.
Why it matters. asks the agent to act without the user's knowledge
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
dist/hermes/skills/academic-writing/paper-spine/references/product-v1-workflow.md:198
a new host session, so never tell the user to open another conversation first.
Why it matters. asks the agent to act without the user's knowledge
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
dist/openclaw/skills/paper-spine/references/product-v1-workflow.md:198
a new host session, so never tell the user to open another conversation first.
Why it matters. asks the agent to act without the user's knowledge
HIGHPrompt injection · prompt.hide_from_user · CWE-94, CWE-1427
paperspine5/core/01_PaperSpine4/src/skill/references/product-v1-workflow.md:198
a new host session, so never tell the user to open another conversation first.
Why it matters. asks the agent to act without the user's knowledge
MEDIUMCode injection · code.dynamic_import · CWE-78, CWE-94, CWE-95
paperspine5/core/02_PaperFigure/02_paperFig_skill/assets/comparison_atlas_builder.py:42
return getattr(importlib.import_module(module_name), function_name)
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
dist/claude/skills/paper-spine/scripts/paperspine_public_client.py:228
with urlopen(f'http://127.0.0.1:{port}/api/v1/session', timeout=2) as response:
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
dist/claude/skills/paper-spine/scripts/paperspine_public_client.py:384
_write_json(Path(job['ready_file']), {'address': f'http://127.0.0.1:{server.server_port}/',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
dist/codex/skills/paper-spine/scripts/paperspine_public_client.py:228
with urlopen(f'http://127.0.0.1:{port}/api/v1/session', timeout=2) as response:
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
dist/codex/skills/paper-spine/scripts/paperspine_public_client.py:384
_write_json(Path(job['ready_file']), {'address': f'http://127.0.0.1:{server.server_port}/',
MEDIUMNetwork egress · net.raw_ip · CWE-200, CWE-319
dist/hermes/skills/academic-writing/paper-spine/scripts/paperspine_public_client.py:228
with urlopen(f'http://127.0.0.1:{port}/api/v1/session', timeout=2) as response:
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
dist/claude/skills/paper-spine/scripts/author_voice_check.py:47
r"(?:\s*(?:%|‰|pp|bp|bps|fold|x|×|mg|g|kg|μg|ug|ng|pg|mL|ml|L|l|"
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
dist/claude/skills/paper-spine/scripts/author_voice_check.py:48
r"μL|uL|nm|μm|um|mm|cm|m|km|s|ms|min|h|Hz|kHz|MHz|°C|K|Pa|kPa|"
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
dist/claude/skills/paper-spine/scripts/author_voice_check.py:49
r"mol|mmol|μmol|umol|nM|μM|uM|mM|M))?",
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
dist/codex/skills/paper-spine/scripts/author_voice_check.py:47
r"(?:\s*(?:%|‰|pp|bp|bps|fold|x|×|mg|g|kg|μg|ug|ng|pg|mL|ml|L|l|"
MEDIUMObfuscation / stealth · obf.homoglyph · CWE-506, CWE-94
dist/codex/skills/paper-spine/scripts/author_voice_check.py:48
r"μL|uL|nm|μm|um|mm|cm|m|km|s|ms|min|h|Hz|kHz|MHz|°C|K|Pa|kPa|"
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
atlas/data.js:1
window.ATLAS={"repo": "WUBING2023/PaperSpine", "generated": "2026-06-11", "totalStars": 2846, "located": 518, "withOrg": 443, "schoolCount": 209, "companyCount": 58, "countryCount": 28, "cities": [{"n
MEDIUMObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
install.ps1:1
param(
MEDIUMHard-coded secrets · secret.generic · CWE-798, CWE-321
paperspine5/core/06_插件化/dsh/paperspine5/configure_dsh.py:36
TOKEN = "__PAPERSPINE5_PACKAGE_ROOT__"
LOWInventory / provenance · inv.hidden_file · CWE-1104
website/assets/figure-showcase/.figure-showcase-root
.figure-showcase-root
Why it matters. hidden member outside the usual dotfiles
Fix. review its purpose
LOWObfuscation / stealth · obf.decode_call · CWE-506, CWE-94
paperspine5/core/02_PaperFigure/01_FigMirror引擎/src/figmirror/vectorization.py:85
output.write_bytes(base64.b64decode(encoded))
LOWObfuscation / stealth · obf.zero_width · CWE-506, CWE-94
website/community/data.js:1
window.ATLAS={"repo": "WUBING2023/PaperSpine", "generated": "2026-06-11", "totalStars": 2846, "located": 518, "withOrg": 443, "schoolCount": 209, "companyCount": 58, "countryCount": 28, "cities": [{"n
LOWSupply chain · supply.unpinned · CWE-829, CWE-1357
paperspine5/core/requirements.txt
numpy, Pillow, pandas, openpyxl, matplotlib, CairoSVG, requests
Why it matters. 7 requirement(s) not pinned with ==
Fix. pin exact versions

Gates applied: instruction_override, no_behavioural_pass.

Audited 2026-10-21 · audit v0.4.1 · source sha b426959e3a4bfull audit observations/trust-audit/skill/wubing2023__paper-spine-audit.json · Report an issue / request a re-scan
05

Audit history

Every audit this skill has had.

DateSourceVerdictGradeScoreChange
2026-10-21b426959e3a4bBLOCKF35first audit
06

Questions

What does the paper-spine-audit — wubing2023/paperspine skill do?

PaperSpine5 — local-first, evidence-bound paper research, writing, figures, review and delivery. Download: https://wubing2023.github.io/PaperSpine/v5/

Is paper-spine-audit — wubing2023/paperspine safe to install?

No — not without reading the findings first. The audit graded it F (35/100) and found 7 critical or high issues in the source. Each one is listed on this page with the file and line it is on.

What can paper-spine-audit — wubing2023/paperspine access on my machine?

The audit observed that it reaches the network, runs shell commands and reads or writes files. Each of those is consistent with what it says it does. Secrets in the source: found — see the findings.

Which assistants does paper-spine-audit — wubing2023/paperspine work with?

Its documentation mentions claude-code, codex, cursor and openclaw. That is what the text claims, not a compatibility test we ran.

How current is this page?

The grade is for one exact copy of the source (b426959e3a4b), read on 2026-10-21. The repository is watched, and a new audit runs when it changes — this is the first audit.

Add this badge to your README

Shows this page's audit result and links back to it. It updates when the audit does.

ModelsAtlas audit badge

Markdown
[![ModelsAtlas audit: PaperSpine5](https://modelsatlas.com/skills/wubing2023/paper-spine-audit/badge.svg)](https://modelsatlas.com/skills/wubing2023/paper-spine-audit/)

Not your listing, or something out of date? Claim or update your listing.

Advertisement