关于 Sourceright
Sourceright 是面向学术写作者、编辑和研究诚信团队的 Rust 参考文献整理与核验系统。它将记录规范化为 CSL JSON、收集证据,并把不确定条目交由人工复核;目前属于技术预览版。
主要功能
- 01CSL JSON 规范化与清理
- 02提供方证据及核验 sidecar
- 03人工复核队列与冲突处理
- 04引文对照与完整性报告
- 05导出 XML、ENW、RIS、BibLaTeX 和 YAML
适用场景
- 01清理稿件中的参考文献
- 02通过人工或 Agent 工作流复核不确定引文
- 03审计引文完整性及其证据
- 04向文献管理工具导出核验后的参考文献
MCP 相关
CLI 提供基于同一 Rust 核心的 MCP 服务模式,MCP 客户端可通过该服务使用参考文献工作流。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm ghcr.io/edithatogo/sourceright-mcp:0.1.20本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/edithatogo/sourceright-mcp:0.1.20stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Sourceright
Sourceright 是一套以 Rust 为先的参考文献筛查与验证基础设施,面向学术写作、Agent 工作流以及未来的法律引文工作。目前,它处于技术预览阶段,适合开发者评估和试点交流。
适用对象
- 需要可审计参考文献清理的技术编辑和研究诚信团队。
- 希望采用确定性引文验证工作流的图书馆、知识库和出版商团队。
- 需要以 CSL 为核心的书目处理流程及旁路证据的开发者和 Agent 工作流。
- 评估独立法律引文处理路径的法律科技研究人员,且不将其与学术 CSL 混为一谈。
功能与非功能
Sourceright 从文档或文本中提取参考文献,生成规范的 CSL JSON,对记录进行标准化和清理,收集提供方证据,将不确定的记录转交人工审核,并导出可供 EndNote、Zotero 和 BibLaTeX 等工具使用的整洁参考文献文件。
它并不声称自己是可用于生产的机构级产品、法院文件合规系统,也不能替代审查员级别的最终验证。现在可以直接解析 DOCX 手稿以导入引文,但更广泛的 PDF 提取、实时核心提供方检查、更好的引文消歧、URL/存档完整性检查,以及低干扰的回写建议仍是需要强化的方向。
工作流
document/text
-> extracted references and in-text citations
-> references.csl.json
-> standardisation, cleaning, verification, enrichment
-> references.verification.json and review-queue.jsonl
-> conflict resolution, citation reconciliation, and reference integrity reports
-> XML, ENW, RIS, BibLaTeX, and YAML exports
路线图
- 学术参考文献提取与 CSL JSON 规范化。
- 首先通过 Crossref 进行提供方支持的验证,然后在适用时使用 DOI 解析、DataCite、OpenAlex、PubMed/NCBI 和 ORCID。
- 将文内引文与参考文献列表条目进行核对。
- 面向人工及 Agent/子 Agent 验证的人工审核队列。
- 面向编辑工作流的跨平台期刊筛选输出,并以 OJS 作为首个公开集成目标。
- 用于引文完整性审计和 AI 相关引文错误信号的参考文献报告。
- 基于同一 Rust 核心的 CLI 和 MCP 服务接口。
- 使用独立法律引文模型和公共提供方接口进行法律引文分析。
- 基于检测到的引文依据构建声明/来源/出处图谱,但不对声明的真实性作出断言。
- 面向审查员级别审计的强化工作,包括更广泛的 PDF 提取、实时提供方证据、机构作者匹配、URL/存档检查,以及明确的回写计划。
有关实施轨道图,请参阅 conductor/tracks.md。 规范要求和仓库约定见 docs/src/feature-contract-matrix.md,设计图见 docs/src/design.md。
当前的质量与安全约定记录在 docs/src/security-and-quality-gates.md。 提交更改前,请使用仓库提供的本地有界门禁运行器:
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/run-local-rust-gates.ps1
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/check-workflow-harness.ps1
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/check-release-parity.ps1
在 Linux 或 macOS 上,也可以使用 Rust 门禁运行器
./scripts/run-local-rust-gates.sh。它使用主机上的 stable 工具链和
临时目标目录;PowerShell 运行器遵循相同策略,并且仅在 GCC 可用时选择 Windows GNU 工具链。
当前状态
Rust 核心现已包含规范化 CSL 处理、验证附属文件、摄取分段、提供方证据规范化、清理、冲突解决、引文协调、人工审核队列、报告、导出、期刊筛查契约、法律引文记录,以及声明/来源溯源图。应将其视为结构化分流与审计工作流及技术预览;当前 Conductor 计划仍在加强提取、互操作性、出版试验和外部注册表验收。导入的参考工作流材料位于 legacy/humanizer-next/,在经过审计、移植或退役之前,作为溯源和回归材料保留。
CLI
sourceright init [document-or-directory]
sourceright validate-csl [--json] <references.csl.json>
sourceright report [--json|--mcp-resource] [.sourceright-directory]
sourceright export --preview --all [.sourceright-directory]
sourceright bench [--json]
sourceright citation-sync [--preview|--apply] [.sourceright-directory]
sourceright mcp
bench 在不使用实时提供方的情况下运行已检入的测试样例套件。基准测试功能属于技术预览,用于确定性回归和压力检查。
citation-sync 默认以预览模式运行,写入审计日志或远程测试样例快照前,必须显式指定 --apply。
report 可以处理仅包含 CSL 的目录。如果缺少 references.verification.json,则会输出覆盖率降级诊断;如果附属文件格式错误,则会显示文件路径和修复操作,而不是只暴露底层解析器错误。
计划中的分发方式
sourcerightCLI 二进制文件。sourceright mcp服务模式。- 通过 GitHub Releases 发布包含平台二进制文件、校验和及溯源材料的版本。
- 发布试运行通过后,将软件包发布到 crates.io。
- 通过
server.json+Dockerfile标签,为官方 MCP Registry 提供 OCI MCP 映像元数据。 - 为本地 stdio/MCPB 路径做好 Smithery 上架准备;托管式 HTTP 传输仍暂缓。
- 通过
glama.json提供 Glama 所有权元数据。 - 发布和由标签触发的发布工作流生成
release-status.md构件。 - 定时覆盖率工作流生成
coverage-status.md构件。 - 仅在原生工具生态系统有要求时提供轻量适配器包。
- 当前的强化计划记录在
conductor/tracks.md中;内容包括测试框架/安全/质量 CI、互操作性测试样例、提取实验和开放出版平台试验。 - 较早的轨道编号仍保留在 Conductor 归档中,以便历史追溯;这些编号不代表当前产品已做好发布准备。
- 轨道 36-40 涵盖审查员级别的审计强化:文档提取、实时核心提供方、引文消歧、URL/存档完整性,以及低噪声回写建议。
- 有关这些轨道背后的操作流程,请参阅
docs/src/release-runbook.md、docs/src/coverage-reporting.md和docs/src/docs-cutover.md。 v*.*.*标签现在会自动启动软件包发布工作流;MCP 注册表工作流会在发布工作流完成后运行。
分发元数据文件
server.json(io.github.edithatogo/sourceright)Dockerfile标签:io.modelcontextprotocol.server.nameorg.opencontainers.image.source
glama.json
注册表列表属于外部运营界面。其当前状态以及尚待维护者或平台解决的问题,记录在 conductor/submission-packets/live-evidence.json 中;不能仅凭仓库元数据,就认定已有实时评分或可调用工具列表。
开发
cargo check
cargo test
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo run --bin sourceright -- bench
cargo package --locked
cargo publish --dry-run --locked
cargo machete
cargo semver-checks check-release --release-type minor # advisory until the public Rust API is stabilized
cargo deny check advisories bans sources
cargo tree -d --locked
taplo lint Cargo.toml book.toml deny.toml lychee.toml rust-toolchain.toml taplo.toml typos.toml fuzz/Cargo.toml plugins/**/*.toml .cargo/config.toml
typos --config typos.toml
npm --prefix docs-site run typecheck
vale --minAlertLevel=error README.md docs/src docs/import-manifest.md .github/copilot-instructions.md
npx --yes [email protected] README.md "docs/**/*.md" ".github/**/*.md"
lychee --config lychee.toml --offline README.md docs/src/**/*.md docs/import-manifest.md
actionlint
zizmor --min-severity medium .github/workflows
cargo llvm-cov --locked --all-targets --fail-under-lines 85
cargo mutants --workspace
pwsh -NoProfile -ExecutionPolicy Bypass -File scripts/verify.ps1 -CoverageMinimum 85
CI 和已检入的 pre-commit 钩子均要求行覆盖率保持在 85%以上。
发布和发布流程都会生成 release-status.md 构件,为最新标签提供明确的检查清单。
覆盖率运行会生成 coverage-status.md 构件,为最新的数值报告提供明确的检查清单。
许可证
可选择以下任一许可证:
- Apache License, Version 2.0
- MIT license
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。