对照单位名册审查 NSFC 申请书并提示身份线索
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-nsfc-form-check该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · tool
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
- 读取本地文件samples/quickstart/run.mjs:46
const expected = JSON.parse(await readFile(join(here, 'expected', 'result.json'), 'utf8'))
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 对照单位名册审查申请书
- 提示身份线索
- 仅提示差异
基金申请书核对:依据《国家自然科学基金条例》《2026 年度国家自然科学基金项目指南·申请规定》(国务院令第796号、2026 年度)。仅提示差异,不作出定性结论。
README
由 DeepSeek 最新模型翻译生成dsh-nsfc-form-check — 对照单位自己的名册,审查 NSFC 申请书表单并提示身份线索
dsh-nsfc-form-check 读取一份 NSFC 申请书——正文各行、电子文档属性,以及单位自己的身份词名册——再拿这些材料对照一份带版本号的规则包做检查:名册到底配没配,配置好的申请人、单位、导师词在正文里出现在哪、是否落在配置的行号范围内,标题、作者、公司、最后修改者这几个属性里写了什么,材料有没有超出部署设定的长度上限,配置好的形式审查项和重复申请声明在不在,导师姓名有没有按年度指南的要求填上,以及有没有出现任何配置好的涉密或敏感词。每条发现都会点名它出自哪一条款,说明该条款是硬性要求、原则还是本地配置;每一项没能跑起来的检查都会列进 skipped,并附上原因。
它能回答什么
| 你问 | 它答 |
| 没人填申请人姓名列表。身份检查就这么过了? | 不会。authorNames、institutionNames、advisorNames 全为空时,NF-001 是第一条报出来的东西;每一项需要这些词的身份检查都会把自己列进 skipped,并附上原因。所以发现列表为空从来不等于没问题——下结论之前先读 NF-001 和 skipped 里的条目。 |
| 正文里出现了一位与申请人同姓的共同作者。
展开完整文档(README 剩余 1 节)
dsh-nsfc-form-check — 对照单位自己的名册,审查 NSFC 申请书表单并提示身份线索
dsh-nsfc-form-check 读取一份 NSFC 申请书——正文各行、电子文档属性,以及单位自己的身份词名册——再拿这些材料对照一份带版本号的规则包做检查:名册到底配没配,配置好的申请人、单位、导师词在正文里出现在哪、是否落在配置的行号范围内,标题、作者、公司、最后修改者这几个属性里写了什么,材料有没有超出部署设定的长度上限,配置好的形式审查项和重复申请声明在不在,导师姓名有没有按年度指南的要求填上,以及有没有出现任何配置好的涉密或敏感词。每条发现都会点名它出自哪一条款,说明该条款是硬性要求、原则还是本地配置;每一项没能跑起来的检查都会列进 skipped,并附上原因。
它能回答什么
| 你问 | 它答 |
| 没人填申请人姓名列表。身份检查就这么过了? | 不会。authorNames、institutionNames、advisorNames 全为空时,NF-001 是第一条报出来的东西;每一项需要这些词的身份检查都会把自己列进 skipped,并附上原因。所以发现列表为空从来不等于没问题——下结论之前先读 NF-001 和 skipped 里的条目。 |
| 正文里出现了一位与申请人同姓的共同作者。 | NF-002 逐行按字面匹配配置好的 authorNames,所以重名、常见姓氏、引用别人的工作,都可能被报出来。这条发现只是技术提示——《国家自然科学基金条例》(国务院令第796号) 第二十一条要求评审人保密,并没有禁止正文里出现姓名——所以已经排除干净的词可以加进 allowList。 |
| 作者属性里写了个名字。这会被报出来吗?需要配好列表吗? | 会报,但不需要列表。NF-006 不依赖名册:authorNames 为空时,它照样报出任何非空的作者属性;配了名册时,它会说明该值是否匹配某位申请人姓名。NF-005、NF-007、NF-008 确实需要身份词列表,没有就进 skipped。这四项都只读属性,所以对正文内容不作任何判断。 |
| 页数和字数上限我自己填了。它会告诉我申请书太长吗? | 只在你设的范围内判断。NF-010 出厂时 maxLines 和 maxChars 都没设,直接进 skipped,因为这些上限每年、每个项目类型都在变;你填上之后,它会报出超出上限的提取段落数或字符总数。maxLines 数的是提取出的段落,不是排版页数,所以跟页数不是一回事。 |
| 材料里是否包含我们科研管理部门要求的每一项形式审查内容? | 在配置 require 之前,NF-011 会把自己报告为 skipped;没有清单时,插件不会假装自己知道该查什么。配置之后,它会按字面匹配你的 match 短语,并报告找不到的那些。它只检查短语是否存在,不检查那一栏是否填对,也不检查签名是否真实。 |
| 我们在重新提交去年的申请书。披露说明必须在吗? | NF-012 需要同时配置 markerPatterns 和 requiredDisclosure:前者识别你模板里表示重复申请或后续申请的说法,后者列出必须披露的内容。两者任一未设置,它就进入 skipped;配置了标记但没找到声明时,它报告这条规则不适用。它从不假设披露该怎么写,也从不判定某份申请书真的是重复申请。 |
遵循的标准
| 文件 | 编号 | 引用它的规则 |
| 《国家自然科学基金条例》 | 国务院令第796号 | NF-001, NF-002, NF-003, NF-004, NF-005, NF-006, NF-007, NF-008, NF-009, NF-010, NF-011, NF-012, NF-013, NF-014, NF-015 |
| 《2026 年度国家自然科学基金项目指南·申请规定》 | 2026 年度(逐年更新) | NF-014, NF-015 |
边界: 这个插件检查 NSFC 申请书的正文和电子文档属性,报告它找到的身份线索,同时报告部署时配置的长度项和形式审查项。它不是 dsh-rulefile-check(审计法规文件是否合法),不是 dsh-policy-brief-draft(起草政策解读),也不是 dsh-review-reply-check(跟踪评审意见)。它只读一份申请书,报告与所引条款的字面匹配结果。
⚠️ 使用匿名性检查前请先读这段
目前没有任何国家层面的规定禁止申请人的姓名、单位或导师出现在 NSFC 申请书里。 为这个插件完整读了三份独立文本——《国家自然科学基金条例》(国务院令第796号)、2026 年度《项目指南·申请规定》,以及 2019 年度指南——其中都没有 匿名、盲审、活页,也没有任何关于身份「不得出现」的表述。条例里根本没有「匿名」这个词。它的回避条款(第二十条)要求来自申请人本单位的评审专家回避,这恰恰以系统知道申请人所在单位为前提——与匿名流程正好相反。
所以这个插件就姓名或单位给出的每一条结论,都是供人判断的技术观察,标注为 身份线索词,绝不写成违规。它适合科研管理部门自查,拿它当合规闸门是错的。有两条规则更进一步,逐字引用指南:NF-014 检查导师姓名是否填写,因为年度指南要求填写;NF-015 检查 涉密与敏感信息,这是真正存在的唯一一条「不得出现」要求——而它的对象是涉密信息,不是身份。
兼容性
| 层面 | 状态 |
| Harness | 对等版本范围 >=0.1.2-rc.1 <0.2.0 \|\| >=0.2.0-0 <0.3.0 —— 已验证可接受 0.2.0-rc.2 和 0.2.1-alpha.1。刻意不声明 engines.dsh:它没有读取方,也无法拒绝宿主 |
| Node | ^22.19.0 || >=24.0.0 |
| 平台 | 全部(纯 ESM;无原生代码、无网络、不调用模型) |
| 工具模式 | 在 native、ptc 和 both 下均可工作;批量提交建议时用 ptc |
功能说明
注册 nsfc_form_check 工具。它读取一份申请书 —— 正文、文档属性,以及机构自己的身份词表 —— 套用带版本号的规则包,返回一份报告。报告里每条发现都注明来自哪一条款,并说明该条款是硬性要求、原则,还是本地配置。
| 规则 | 检查内容 | 严重级别 | 依据类型 |
| NF-001 | 已配置词表,否则身份检查无法运行 | warn | principle |
| NF-002 | 正文提到申请人姓名 | warn | principle |
| NF-003 | 正文提到机构名称 | warn | principle |
| NF-004 | 正文提到导师姓名 | warn | principle |
| NF-005 | 文档标题属性含身份线索 | info | principle |
| NF-006 | 作者属性非空,或写明申请人 | info | principle |
| NF-007 | 公司属性写明机构 | info | principle |
| NF-008 | 最后修改者属性写明申请人 | info | principle |
| NF-009 | 配置行范围内的身份线索 | info | principle |
| NF-010 | 材料符合配置的长度上限 | info | local |
| NF-011 | 材料包含配置的形式审查项 | info | local |
| NF-012 | 重复或后续申请书带有配置的披露说明 | info | local |
| NF-013 | 配置范围内的身份线索 | info | principle |
| NF-014 | 导师姓名确实出现,符合年度指南要求 | info | local |
| NF-015 | 材料不含配置的涉密词 | info | local |
阈值按年度或按项目类型变化的规则,出厂时故意留空。在配置之前,它们会在 skipped 里自我报告,所以未填写的阈值绝不会被读成「没有问题」。
安装
dsh plugin --profile <name> add dsh-nsfc-form-check
dsh --profile <name> --dump-config | grep 'dsh-nsfc-form-check'
配置
所有可调项都在 src/config.ts 的 Schemastery schema 里。词表是这个插件唯一离不开的东西:身份检查需要一份待查词表,而这份词表因机构而异,所以它留在部署方自己的配置里,不随包分发。
| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/nsfc-form-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 要停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 追加到每条 skipped 原因后面的备注 |
| authorNames | string[] | [] | 要查找的申请人姓名 |
| institutionNames | string[] | [] | 要查找的机构和单位名称 |
| advisorNames | string[] | [] | 要查找的导师姓名 |
| allowList | string[] | [] | 即使匹配也忽略的词条 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |
几个值得了解的规则级参数:
- NF-009 coverLines —— 开头多少行算封面。留空表示插件不预设任何机构的模板。
- NF-010 maxLines / maxChars —— 你申报的年度和项目类型对应的长度上限。maxLines 数的是提取出的段落,跟排版页数不是一回事。
- NF-011 require —— 你的形式审查条目清单,写成 [{ label, match }] 对。
- NF-012 markerPatterns / requiredDisclosure —— 你的模板里怎么识别重复申报,以及必须披露什么。
- NF-014 requireMention + advisorNames —— 反向检查,默认关闭,等你为当年启用后才生效。
- NF-015 secretTerms —— 你单位保密部门的词条清单。插件不带任何词条,因为什么算涉密由国家保密规定界定,不由本插件界定。
材料格式
把工具指向 .docx,它会自己读取正文和文档属性。.pdf 不会解析:按页精确提取是另一类问题,失败方式也不同,而且页码错了比没有页码更糟,所以请用你自己的工具提取文本再传进来。.txt、.md 和 .json 也接受;JSON 形式会显式带上两部分内容。
{
"lines": ["申请代码:H0301", "一、立项依据与研究内容", "……"],
"metadata": { "title": "某信号通路机制研究", "author": "", "company": "", "lastModifiedBy": "" }
}
匹配是字面匹配、按行进行的,所以每条发现都带行号,你可以直接跳过去。少于两个字的词条会被忽略,allowList 里的内容也会被忽略,否则常见姓氏会把报告淹没。
规则来源
规则数据放在 rules/nsfc-form-check.yaml。每条规则都带一份文件、一个文号、按来源自身编号体系给出的条款、一段逐字摘录,以及摘录读自哪个 URL。加载器会强制要求摘录是至少八个字的真实引用,并且只靠一条一般原则或地方政策支撑的检查,永远不能标为 error。
有四条发现塑造了这个规则包:
1. 条例修订了。《国家自然科学基金条例》现在是 国务院令第796号(2024-11-08 修订,2025-01-01 施行),取代国务院令第487号(2007)。条款号变了:评审保密义务现在是第二十一条,不再是旧版的第二十四条。本规则包只引用当前修订版,并且有测试断言被取代的订单号绝不会出现。
2. 匿名没有法律依据,理由已在本文件开头说明。规则在自己的注释里也写明了这一点,读者看报告就能知道,不必再翻 README。
3. 导师姓名是必填,不是禁止填写。 年度指南要求申请人如实填写研究生和博士后导师姓名。所以 NF-014 检查的内容与 NF-004 相反,规则包也解释了这两条为何并存。
4. 年度政策属于配置,不是代码。 页数与字数限制、各类申报数量上限、哪些项目类型使用包干制预算、年度不予受理情形清单,这些每年都会变;每一项默认都留空。
完整的条款核验报告,包括已核查和已排除的来源,见 rules/evidence/clause-verification.md。
疑难解答
- 插件装上了,但工具一直不出现。 检查 main 是否指向 lib/index.mjs,以及 pnpm run build 是否生成了它;main 写错会让加载器静默跳过入口。
- 所有身份检查都被跳过。 没有配置名单。填好 authorNames、institutionNames 和 advisorNames,NF-001 就不会再报警。
- 报告里常见姓氏太吵。 把该词加进 allowList;插件不会去猜哪些匹配有意义。
- .pdf 被拒绝。 这是有意为之。用你信得过的工具提取文本,再通过 text 传入,或者把申报书转成 .docx。
- dsh plugin add 以不兼容为由拒绝该包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时不在其中,显式授予豁免: dsh plugin --profile <name> allow-version dsh-nsfc-form-check@0.1.0 --dsh-version <runtime> --accept-risk
- check 报告 manifest-peers 失败。 静态检查器比对的是一个硬编码的 peer 范围,早于 0.2 系列。运行时会在安装时强制校验 peer 兼容性,所以声明的范围才是正确的;这是 dsh-plugin-dev 中已知的上游问题。
开发
pnpm install
pnpm run typecheck # tsc --noEmit
pnpm test # vitest, paired fixtures per rule, plus a real .docx round trip
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-nsfc-form-check # refresh src/shared from ../_shared
tests/docx-fixture.ts 在内存中构建真正的 .docx 包(货真价实的 ZIP,条目经过 deflate 压缩),所以 docx 这条路径能端到端跑通,同时测试夹具仍是可审阅的 JSON。
许可证
Apache License 2.0 © 2026 dsh-nsfc-form-check contributors。预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
PerryLink/dsh-nsfc-form-check
对照单位名册审查 NSFC 申请书并提示身份线索
相关插件 · 工具 / 效率
破甲管控台kingcharleslzy-ai/dsh-purge
dsh-purge Community · DeepSeek Harness 社区维护版:宿主兼容、状态诊断、提示词管理、更新与本机备份回滚。基于小杨 / YuJunZhiXue 的 dsh-purge。
★ 4,330已汉化DeepSeek 客户端
74.5
网文长卷lingfengQAQ/webnovel-writer
基于 Claude Code 的长篇网文辅助创作系统,解决 AI 写作中的「遗忘」和「幻觉」问题,支持 200…
★ 7,826已汉化DSH
72.2
花束设计alchaincyf/huashu-design
一句话生成网页、原型、PPT 与信息图等可交付设计
★ 28,638已汉化DSH
71.7
多智能体协作HKUDS/AutoSwarm
AutoSwarm: Unify Your Agents. Unify Your Context (Codex · Claude Code · DeepSeek Harness · Muse · Grok · WorkBuddy· nanobot · and more)
★ 2,349已汉化DSH
71.6
Vox 拼贴视频生成Alisa0808/vox-director
🎬 Vox Director拼贴动效导演
★ 2,129已汉化DSH
71.4
Agent 演化引擎Q00/ouroboros
智能体 OS:智能体自己变聪明,我们只守住底线:面试准入、分阶段评估、带预算的进化循环。MCP 服务器,14 种运行时:Claude Code、Codex CLI、Gemini CLI、OpenCode、Copilot、Kiro 等。
★ 6,311已汉化DSH
71.4
这是你的仓库?认领条目