🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

PPAP 提交核对 PerryLink/dsh-ppap-check

DeepSeek Harness
PerryLink27 天前有提交已提供中文文档扫描:未发现敏感能力

逐项核对 PPAP 检查表,提示缺失与占位符

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add PerryLink/dsh-ppap-check
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · tool
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 27 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/4) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-package-manifest@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 逐项核对PPAP检查表
  • 提示缺失项
  • 标记占位符

PPAP 提交资料核对:依据《生产件批准程序(PPAP)手册》。仅提示差异,不作出定性结论。

README

由 DeepSeek 最新模型翻译生成
dsh-ppap-check — PPAP 提交要素完整性检查 dsh-ppap-check 读取一份 PPAP 提交要素检查表——零件表头,加上每个要素一行——然后检查检查表能被机械核对的部分:客户要求的要素是否带提交记录,已提交的要素是否带日期,受控要素(设计记录、FMEA、控制计划、过程流程、尺寸结果、MSA)是否带版本号,表格是否写明零件号和提交等级,要素编号是否唯一,以及要素列里是否还残留模板占位符。 它能回答什么 | 你问 | 它怎么回答 | | 某个要素在 是否要求 列里标了要求,但没有提交记录——这会被报出来吗? | 会。当 required 列的值算作要求(是、Y、yes、true、要求、√),而 submitted 列为空时,PP-001 报出该行。它读的是你自己检查表里的那一列,从不读内置的要素清单——哪些要素要求提交,取决于客户指定的等级——它也不判断提交内容本身是否合格。 | | 该行标了已提交,但日期单元格是空的。如果日期填了,却晚于客户截止日期呢? | PP-002 报出 submitted 列的值算作已提交(是、Y、yes、true、已提交、√),而 submittedAt 单元格为空的行。它只检查日期单元格有没有填——日期是否落在客户项目计划设定的截止日期内,不检查。 | | 控制计划那一行填了,但版本单元格是空的——这会被报出来吗?
展开完整文档(README 剩余 1 节)
dsh-ppap-check — PPAP 提交要素完整性检查

dsh-ppap-check 读取一份 PPAP 提交要素检查表——零件表头,加上每个要素一行——然后检查检查表能被机械核对的部分:客户要求的要素是否带提交记录,已提交的要素是否带日期,受控要素(设计记录、FMEA、控制计划、过程流程、尺寸结果、MSA)是否带版本号,表格是否写明零件号和提交等级,要素编号是否唯一,以及要素列里是否还残留模板占位符。

它能回答什么

| 你问 | 它怎么回答 |
| 某个要素在 是否要求 列里标了要求,但没有提交记录——这会被报出来吗? | 会。当 required 列的值算作要求(是、Y、yes、true、要求、√),而 submitted 列为空时,PP-001 报出该行。它读的是你自己检查表里的那一列,从不读内置的要素清单——哪些要素要求提交,取决于客户指定的等级——它也不判断提交内容本身是否合格。 |
| 该行标了已提交,但日期单元格是空的。如果日期填了,却晚于客户截止日期呢? | PP-002 报出 submitted 列的值算作已提交(是、Y、yes、true、已提交、√),而 submittedAt 单元格为空的行。它只检查日期单元格有没有填——日期是否落在客户项目计划设定的截止日期内,不检查。 |
| 控制计划那一行填了,但版本单元格是空的——这会被报出来吗?那些天生不带版本号的要素呢? | PP-003 看的是名称匹配 conditionPattern 的要素——设计记录、工程变更、DFMEA/PFMEA、控制计划、过程流程、尺寸结果、测量系统分析、样件、检具、PSW、材料报告、初始过程能力——匹配上的行只要 version 单元格为空就报出来。它只检查版本有没有填,不检查版本是否正确或是否为当前版本;如果某个要素确实不带版本号,把匹配模式收窄。 |
| 每个要素行看起来都完整,但工具说表格缺零件号和等级。我们的表单把等级记在每一行上。 | PP-004 只读表头:partNo 和 level 必须都出现在材料顶部。如果你的表单把等级放在明细行上,改这条规则的 fields,或者自己写一个检查——这条规则不会到行里去找这两个值。 |
| 等级单元格写着 Level 3,但 PP-005 对此只字未提。 | PP-005 自带一个空的 values 列表,空就代表未配置,所以它会把自己报进 skipped,而不是悄悄放过。把客户用的等级写法填进 values,它就会报出任何不在列表里的值。即便如此,它也只检查值是否在你的列表上——选中的等级对不对,是客户说了算——所以这条规则的上限是 info。 |
| 我们的检查清单是从去年的模板复制来的:有个要素名还写着【待填】,还有两行的要素编号一模一样。 | PP-006 会报出仍含占位符的要素名——【、】、{{、}}、XXX、xxx、待填、待补充、TBD、todo,还有一个 terms 列表,你可以按自己的模板调整。PP-007 会报出 elementNo 里重复的要素编号,比较时忽略空白;命中通常意味着要素登记了两次,或者编号抄错了,到底是哪一种,得由人来确认。 |

遵循的标准

| 文件 | 编号 | 引用它的规则 |
| 《生产件批准程序(PPAP)手册》 | AIAG PPAP(现行版次与条号本次未核实) | PP-001, PP-002, PP-003, PP-004, PP-005, PP-006, PP-007 |

边界: 这个插件检查的是 PPAP 提交要素清单,只查清单在机械层面能查的东西——客户要求的要素有没有提交记录,提交的要素有没有日期,受控要素(设计记录、FMEA、控制计划、过程流程、尺寸结果、MSA)有没有版本,表格有没有写明零件号和提交等级,要素编号是否唯一,以及有没有模板占位符残留。它不判定 PPAP 能否批准、等级选得对不对,也不判定要素内容是否让客户满意。提交等级由客户设定,这个插件不附带任何等级到要素的映射。

⚠️ 相信报告里的引用之前,先读这段

这个插件规则包里每一条 excerpt 都明说了:没有拿到条款原文。 方法出自汽车行业的 AIAG《生产件批准程序(PPAP)手册》(以及 IATF 16949 下的客户特殊要求)。核验环节没能取到逐字条款原文,所以规则包没有去改写引文,而是直接在 excerpt 字段里说明这一缺口,把诚实的推理放进 note。因此每条规则都是 warn 或 info,并且有测试断言:没有任何规则声称自己拥有并不存在的引文。拿到原文后,有两件事必须做:把每条 excerpt 换成真正的条款,并把 kind 提升为 direct。

必须提交哪些要素,取决于客户指定的等级(Level 1–5),所以 PP-001 读的是清单自己的「是否要求」列,而不是任何内置列表;PP-005 的等级词表出厂时是空的——没有配置任何词表,它会把自己报进 skipped,而不是悄悄放过。

兼容性

| 层面 | 状态 |
| 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 |

它做什么

注册 ppap_check 工具。它读取一份提交要素清单——部件表头,加上每个要素一行——套用带版本号的规则包,返回报告。

| 规则 | 检查内容 | 严重级别 | 依据类型 |
| PP-001 | 必填要素有提交记录 | warn | principle |
| PP-002 | 已提交的要素带日期 | warn | principle |
| PP-003 | 受控要素带版本 | warn | principle |
| PP-004 | 表格写明零件号和等级 | warn | principle |
| PP-005 | 等级取自你客户的词表(默认关闭) | info | local |
| PP-006 | 要素列里没有未替换的占位符 | warn | principle |
| PP-007 | 要素编号唯一 | warn | principle |

安装

dsh plugin --profile <name> add dsh-ppap-check
dsh --profile <name> --dump-config | grep 'dsh-ppap-check'

配置

| 键 | 类型 | 默认值 | 说明 |
| rulesFile | string | rules/ppap-check.yaml | 规则包路径,相对于包根目录 |
| disabledRules | string[] | [] | 停止运行的规则 id;每个都会出现在 skipped 里 |
| onlyRules | string[] | [] | 只运行这些规则 id;留空则运行全部规则 |
| skipNotes | string | "" | 追加到每条 skipped 原因后面的备注 |
| timeoutMs | number | 120000 | 协作式工具超时预算 |

几个值得了解的规则级参数:

- PP-001 conditionValues——你的「是否要求」列里表示「必填」的值,默认是 [是, Y, yes, true, 要求, √]。
- PP-002 conditionValues——你的「是否提交」列里表示「已提交」的值。
- PP-003 conditionPattern——带版本的要素名称;默认覆盖设计记录、工程变更、DFMEA/PFMEA、控制计划、过程流程图、尺寸结果、MSA、样件、检具、PSW、材料报告和初始能力研究。
- PP-005 values——你客户的等级写法,例如 [Level 1, Level 2, Level 3, Level 4, Level 5]。留空表示不检查。

材料格式

工具接受 JSON 或 YAML:

partNo: P-2026-001
partName: 前支架 supplier: 某某零部件有限公司 level: Level 3 rows:
- { 序号: '1', 提交要素: 设计记录, 是否要求: 是, 是否提交: 是,
提交日期: 2026-03-05, 版本: B, 责任人: 张工 }

列名匹配不区分大小写,并忽略空格、下划线和连字符;表格自身的列名会保留,所以每条发现都会指出它读取的是哪一列。

规则来源

规则数据放在 rules/ppap-check.yaml。规则包头部完整说明了引用缺口,每条规则的 note 又重复了与该规则相关的那部分。加载时的守卫通常要求「摘录必须是至少八个字符的真实引用」,但它分不清引用和描述——所以这个规则包靠头部、每条规则的 note,以及一个测试来兜底,该测试断言每个 excerpt 都承认这个缺口。

故障排查

- PP-005 从不运行。 它的词表是空的。不同客户对级别的拼写不一样,插件不会去猜。
- PP-001 在我并不打算提交的元素上触发。 是否要求这一列说它是必填的。如果该元素在你客户的级别下不是必填,请改这一列,而不是删掉整行。
- PP-003 在没有版本号的元素上触发。 元素名称匹配了模式,但版本列是空的。如果你的检查清单里确实有元素不带版本号,就收窄 conditionPattern。
- 插件装上了,但工具一直不出现。 检查 main 是否指向 lib/index.mjs,以及 pnpm run build 是否生成了它;main 写错会让加载器静默跳过入口。
- dsh plugin add 以不兼容为由拒绝该包。 peer 范围覆盖 0.1.x 和 0.2.x;如果你的运行时不在其中,就显式授予豁免: dsh plugin --profile <name> allow-version dsh-ppap-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, the shared table-plugin suite plus paired fixtures
pnpm run build # tsdown -> lib/index.mjs + lib/index.d.mts
node ../scripts/sync-shared.mjs dsh-ppap-check # refresh src/shared from ../_shared

这个插件是纯数据的:src/model.ts 声明表结构,共享工具包提供读取器和检查引擎,规则包声明每一项检查。

许可证

Apache License 2.0 © 2026 dsh-ppap-check contributors。
预览分享卡片长什么样 ↓PerryLink/dsh-ppap-check
分享 · DeepSeek Harness Hub
PerryLink/dsh-ppap-check

逐项核对 PPAP 检查表,提示缺失与占位符

这是你的仓库?认领条目

回到顶部