dsh-fmea-table-check 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.2.2
4
+
5
+ - Rework the README first screen. The H1 now names what the plugin checks rather
6
+ than repeating the package name, and a question-and-answer table and a standards
7
+ table come before the boundary paragraph.
8
+
9
+ The substance is unchanged and the boundary paragraph is verbatim: in a
10
+ compliance tool that paragraph is what stops a wrong "pass" being read as
11
+ approval, so it moved rather than shrank. What changed is the order - a reader
12
+ or an extractor previously met eleven badges, an install command and a
13
+ disclaimer before learning what the plugin does. The Q&A rows are derived from
14
+ each plugin's own rules and the standards table from the rule pack's
15
+ `document`/`number` fields, so no answer and no standard is hand-typed.
16
+
17
+ All five languages were restructured together; `check:readmes` holds them to the
18
+ same section count, install command and configuration keys.
19
+
3
20
  ## 0.2.1
4
21
 
5
22
  - Ship `CHANGELOG.md` and `SECURITY.md` inside the package. `files` is an
package/README-es.md CHANGED
@@ -1,4 +1,23 @@
1
- # dsh-fmea-table-check
1
+ # dsh-fmea-table-check — Verificación de la completitud de los elementos de la hoja de FMEA y de la consistencia del número de prioridad de riesgo
2
+
3
+ `dsh-fmea-table-check` lee una hoja de FMEA —filas indexadas por los propios nombres de columna de la hoja, en chino o en inglés— y comprueba en ella lo que a una hoja se le puede exigir mecánicamente: que la cadena de análisis esté registrada, que las puntuaciones de severidad, ocurrencia y detección sean números operables, que el número de prioridad de riesgo sea igual a su producto, que una fila de riesgo alto lleve una acción con responsable y fecha límite, que los estados de las acciones procedan de su propio vocabulario y que no sobreviva ningún marcador de plantilla en el modo de fallo.
4
+
5
+ ## Qué responde
6
+
7
+ | Usted pregunta | Qué responde |
8
+ |---|---|
9
+ | La celda del RPN no coincide con severidad × ocurrencia × detección, ¿se detecta? | Sí. `FM-003` recalcula `rpn` como severidad × ocurrencia × detección con una tolerancia de `0` y señala la fila cuyo valor almacenado difiere. Solo se ejecuta cuando las cuatro celdas contienen números analizables; si la puntuación de ocurrencia no es un número, la regla informa `skipped` en lugar de aprobar. Una hoja puntuada con el manual AIAG-VDA usa AP en vez de RPN: reoriente `resultField` y `factorFields`, o desactive la regla. |
10
+ | La celda de severidad contiene `高` en lugar de una puntuación. ¿Qué ocurre? | `FM-002` exige que la severidad sea un número positivo operable e informa de la fila cuando no lo es. Su comprobación apunta solo al campo `severity`, así que ocurrencia y detección requieren la misma regla añadida con otro `field`; no fija rango de valores, de modo que no impone una escala de 1 a 10 ni juzga si la puntuación es adecuada. Una puntuación que no puede analizar también envía `FM-003` a `skipped`, porque el producto no puede recalcularse. |
11
+ | Una fila propone una acción, pero el responsable y la fecha límite están vacíos. | `FM-005` se ejecuta en toda fila cuya celda de acción recomendada esté rellena y exige `owner` (responsable) y `dueAt` (fecha límite); informa de la fila a la que le falta uno de los dos. Son los nombres canónicos tras resolver los alias, así que una hoja con otros encabezados necesita el alias en el mapeo de columnas o `requiredFields` ajustado. Comprueba que las dos celdas estén rellenas, no que la fecha sea realista ni que el responsable la haya aceptado. Las filas sin acción son competencia de `FM-004`. |
12
+ | Nuestra hoja nunca dice qué producto o proceso analiza. | `FM-007` lee el `item` de la cabecera y lo informa cuando falta el sujeto de análisis: un FMEA se realiza para un producto o proceso concreto y sin él las conclusiones no se pueden rastrear ni asociar a una tabla de puntuación. Es una comprobación de presencia: un sujeto relleno pero equivocado no se informa. Si sus hojas deben indicar también el método empleado, añada `method` a sus `fields`. |
13
+ | Algunas filas todavía dicen `待填` o `XXX` en la columna de modo de fallo, y otras no tienen nada. | `FM-008` informa de la fila cuyo modo de fallo aún contiene uno de los términos marcadores del paquete (`【`, `】`, `{{`, `}}`, `XXX`, `xxx`, `待填`, `待补充`, `TBD`, `todo`, `示例`), porque una hoja copiada de una plantilla se lee como análisis terminado; solo lee la columna del modo de fallo, y `terms` se ajusta a su plantilla. `FM-001` informa de la fila en la que modo de fallo, efecto y causa están los tres vacíos, pero solo exige uno de los tres: una celda con `待填` satisface `FM-001` y la detecta `FM-008`. Ninguna de las dos juzga si los modos de fallo están completos o si los efectos se analizaron lo suficiente. |
14
+ | El informe muestra `FM-004` y `FM-006` como `skipped`. ¿Hay algún problema? | No. Ambas vienen sin configurar y el paquete lo informa en lugar de aprobar en silencio. El `threshold` de `FM-004` es `0`, que se lee como no configurado, así que ninguna fila cuenta como riesgo alto hasta que fije su criterio de riesgo: por ejemplo `triggerField: severity` con `threshold: 9`, o `triggerField: rpn` con `threshold: 100`. La lista `values` de `FM-006` está vacía, así que el vocabulario de estados no se comprueba hasta que enumere sus propios valores. Una vez configuradas, `FM-004` solo comprueba que la celda de acción de una fila de riesgo alto esté rellena —no que la acción sea eficaz o viable— y `FM-006` solo comprueba que el estado figure en la lista configurada, no que la acción se haya llevado a cabo. |
15
+
16
+ ## Normas que sigue
17
+
18
+ | Documento | Número | Reglas que lo citan |
19
+ |---|---|---|
20
+ | 《系统可靠性分析技术 失效模式和影响分析(FMEA)程序》 | GB/T 7826(现行版本号与条号本次未核实) | FM-001, FM-002, FM-003, FM-004, FM-005, FM-006, FM-007, FM-008 |
2
21
 
3
22
  **Boundary:** this plugin checks an **FMEA worksheet** for what a sheet can be held to mechanically — that
4
23
  the analysis chain is recorded, that the severity / occurrence / detection scores are operable numbers,
package/README-hi.md CHANGED
@@ -1,4 +1,23 @@
1
- # dsh-fmea-table-check
1
+ # dsh-fmea-table-check — FMEA कार्यपत्रक के तत्वों की पूर्णता और जोखिम प्राथमिकता संख्या की संगति की जाँच
2
+
3
+ `dsh-fmea-table-check` एक FMEA कार्यपत्रक पढ़ता है — पंक्तियाँ शीट के अपने स्तंभ-नामों से जुड़ी, चीनी या अंग्रेज़ी में — और उसमें वह जाँचता है जो एक शीट से यांत्रिक रूप से अपेक्षित किया जा सकता है: क्या विश्लेषण-शृंखला दर्ज है, क्या `severity`, `occurrence` और `detection` के अंक संक्रियात्मक संख्याएँ हैं, क्या `rpn` उनके गुणनफल के बराबर है, क्या ऊँचे जोखिम वाली पंक्ति में ज़िम्मेदार और समय-सीमा सहित सुझाई गई कार्रवाई है, क्या कार्रवाई की स्थितियाँ आपकी अपनी शब्दावली से आती हैं, और क्या विफलता-प्रकार स्तंभ में कोई टेम्पलेट प्लेसहोल्डर शेष नहीं है।
4
+
5
+ ## यह किन सवालों का जवाब देता है
6
+
7
+ | आपका सवाल | इसका जवाब |
8
+ |---|---|
9
+ | `rpn` का मान severity × occurrence × detection के बराबर नहीं है — क्या यह पकड़ में आता है? | हाँ। `FM-003` severity × occurrence × detection से `rpn` दोबारा निकालता है, सहनशीलता `0`, और जिस पंक्ति का दर्ज मान उससे भिन्न हो उसे दर्ज करता है। यह तभी चलता है जब चारों खानों में पढ़ने योग्य संख्याएँ हों; occurrence का अंक संख्या न हो तो यह नियम पास होने के बजाय `skipped` बताता है। AIAG-VDA पुस्तिका पर बनी शीट RPN के बजाय AP से अंक देती है: `resultField` और `factorFields` बदलें, या यह नियम बंद कर दें। |
10
+ | severity के खाने में अंक के बजाय `高` लिखा है। क्या होगा? | `FM-002` अपेक्षा करता है कि severity एक संक्रियात्मक धनात्मक संख्या हो, और ऐसा न होने पर उस पंक्ति को दर्ज करता है। इसकी जाँच केवल `severity` क्षेत्र को देखती है, इसलिए occurrence और detection के लिए वही नियम दूसरे `field` के साथ जोड़ना पड़ेगा; यह कोई अंक-सीमा तय नहीं करता, इसलिए 1 से 10 का पैमाना लागू नहीं करता और अंक उचित है या नहीं यह नहीं आँकता। जो अंक पढ़ा न जा सके वह `FM-003` को भी `skipped` में भेजता है, क्योंकि गुणनफल दोबारा नहीं निकाला जा सकता। |
11
+ | एक पंक्ति में कार्रवाई सुझाई गई है, पर ज़िम्मेदार और समय-सीमा खाली हैं। | `FM-005` हर उस पंक्ति पर चलता है जिसमें सुझाई गई कार्रवाई का खाना भरा है, और `owner` तथा `dueAt` दोनों की अपेक्षा करता है; जिस पंक्ति में एक भी न हो उसे दर्ज करता है। ये alias हल होने के बाद के मानक नाम हैं, इसलिए दूसरे शीर्षकों वाली शीट के लिए alias स्तंभ-मानचित्रण में जोड़ें या `requiredFields` बदलें। यह देखता है कि दोनों खाने भरे हैं — यह नहीं कि समय-सीमा व्यावहारिक है या ज़िम्मेदार ने उसे स्वीकार किया है। कार्रवाई खाली वाली पंक्तियाँ `FM-004` के दायरे में हैं। |
12
+ | हमारी शीट में कहीं नहीं लिखा कि यह किस उत्पाद या प्रक्रिया का विश्लेषण है। | `FM-007` शीट-शीर्ष के `item` को पढ़ता है और विश्लेषण-विषय न होने पर उसे दर्ज करता है: FMEA किसी विशिष्ट उत्पाद या प्रक्रिया के लिए किया जाता है, और उसके बिना निष्कर्ष न पीछे तक जोड़े जा सकते हैं न किसी अंकन-तालिका से मिलाए जा सकते हैं। यह उपस्थिति की जाँच है: भरा हुआ पर गलत विषय दर्ज नहीं होता। यदि आपकी शीट में प्रयुक्त विधि भी लिखनी हो, तो उसके `fields` में `method` जोड़ें। |
13
+ | कुछ पंक्तियों के विफलता-प्रकार खाने में अब भी `待填` या `XXX` लिखा है, और कुछ में कुछ भी नहीं। | `FM-008` उस पंक्ति को दर्ज करता है जिसके विफलता-प्रकार खाने में अब भी इस नियम-संग्रह के प्लेसहोल्डर शब्दों में से कोई है (`【`, `】`, `{{`, `}}`, `XXX`, `xxx`, `待填`, `待补充`, `TBD`, `todo`, `示例`), क्योंकि टेम्पलेट से उतारी गई शीट पूरी हो चुकी जाँच जैसी पढ़ी जाती है; यह केवल विफलता-प्रकार स्तंभ देखता है, और `terms` आपके टेम्पलेट के अनुसार बदले जा सकते हैं। `FM-001` उस पंक्ति को दर्ज करता है जिसमें विफलता-प्रकार, परिणाम और कारण तीनों खाली हैं, पर वह तीनों में से एक भरे होने की ही अपेक्षा करता है — `待填` लिखा खाना `FM-001` पास कर देता है और `FM-008` उसे पकड़ता है। दोनों में से कोई यह नहीं आँकता कि विफलता-प्रकार पूरे हैं या परिणाम पर्याप्त विश्लेषित हैं। |
14
+ | रिपोर्ट में `FM-004` और `FM-006` `skipped` दिख रहे हैं। क्या कुछ गड़बड़ है? | नहीं। दोनों बिना कॉन्फ़िगर के आते हैं और नियम-संग्रह चुपचाप पास होने के बजाय यही बताता है। `FM-004` का `threshold` `0` है, जिसका अर्थ अकॉन्फ़िगर है, इसलिए जब तक आप अपना जोखिम-मानदंड तय न करें कोई पंक्ति ऊँचे जोखिम में नहीं गिनी जाती — उदाहरण `triggerField: severity` के साथ `threshold: 9`, या `triggerField: rpn` के साथ `threshold: 100`। `FM-006` की `values` सूची खाली है, इसलिए अपनी शब्दावली दर्ज करने तक कार्रवाई-स्थिति के मान जाँचे नहीं जाते। कॉन्फ़िगर होने पर `FM-004` केवल यह देखता है कि ऊँचे जोखिम वाली पंक्ति का कार्रवाई-खाना भरा है — यह नहीं कि कार्रवाई प्रभावी या व्यवहार्य है — और `FM-006` केवल यह देखता है कि स्थिति दर्ज सूची में है, यह नहीं कि कार्रवाई वास्तव में लागू हुई। |
15
+
16
+ ## यह किन मानकों पर आधारित है
17
+
18
+ | दस्तावेज़ | संख्यांक | इन्हें उद्धृत करने वाले नियम |
19
+ |---|---|---|
20
+ | 《系统可靠性分析技术 失效模式和影响分析(FMEA)程序》 | GB/T 7826(现行版本号与条号本次未核实) | FM-001, FM-002, FM-003, FM-004, FM-005, FM-006, FM-007, FM-008 |
2
21
 
3
22
  **Boundary:** this plugin checks an **FMEA worksheet** for what a sheet can be held to mechanically — that
4
23
  the analysis chain is recorded, that the severity / occurrence / detection scores are operable numbers,
package/README-pt.md CHANGED
@@ -1,4 +1,23 @@
1
- # dsh-fmea-table-check
1
+ # dsh-fmea-table-check — Verificação da completude dos elementos da folha de FMEA e da consistência do número de prioridade de risco
2
+
3
+ `dsh-fmea-table-check` lê uma folha de FMEA —linhas indexadas pelos próprios nomes de coluna da folha, em chinês ou em inglês— e verifica nela o que a uma folha se pode exigir mecanicamente: que a cadeia de análise esteja registada, que as pontuações de severidade, ocorrência e deteção sejam números operáveis, que o número de prioridade de risco seja igual ao seu produto, que uma linha de risco elevado traga uma ação com responsável e prazo, que os estados das ações venham do seu próprio vocabulário e que não sobreviva nenhum marcador de modelo no modo de falha.
4
+
5
+ ## O que ele responde
6
+
7
+ | Você pergunta | O que ele responde |
8
+ |---|---|
9
+ | A célula do RPN não coincide com severidade × ocorrência × deteção — isso é detetado? | Sim. `FM-003` recalcula `rpn` como severidade × ocorrência × deteção com tolerância `0` e assinala a linha cujo valor registado difere. Só é executada quando as quatro células têm números analisáveis; se a pontuação de ocorrência não for um número, a regra reporta `skipped` em vez de passar. Uma folha pontuada pelo manual AIAG-VDA usa AP em vez de RPN: reaponte `resultField` e `factorFields`, ou desative a regra. |
10
+ | A célula da severidade traz `高` em vez de uma pontuação. O que acontece? | `FM-002` exige que a severidade seja um número positivo operável e reporta a linha quando não é. A sua verificação aponta apenas ao campo `severity`, pelo que ocorrência e deteção exigem a mesma regra acrescentada com outro `field`; não fixa intervalo de valores, portanto não impõe uma escala de 1 a 10 nem julga se a pontuação é adequada. Uma pontuação que não consegue analisar também envia `FM-003` para `skipped`, porque o produto não pode ser recalculado. |
11
+ | Uma linha propõe uma ação, mas o responsável e o prazo estão em branco. | `FM-005` é executada em todas as linhas cuja célula de ação recomendada esteja preenchida e exige `owner` (responsável) e `dueAt` (prazo); reporta a linha à qual falta um deles. São os nomes canónicos após a resolução de alias, pelo que uma folha com outros cabeçalhos precisa do alias no mapeamento de colunas ou de `requiredFields` ajustado. Verifica que as duas células estão preenchidas — não que o prazo seja realista nem que o responsável o tenha aceitado. As linhas sem ação são da competência de `FM-004`. |
12
+ | A nossa folha nunca diz que produto ou processo analisa. | `FM-007` lê o `item` do cabeçalho e reporta-o quando falta o objeto de análise: um FMEA é realizado para um produto ou processo específico e sem isso as conclusões não se podem rastrear nem associar a uma tabela de pontuação. É uma verificação de presença: um objeto preenchido mas errado não é reportado. Se as suas folhas tiverem de indicar também o método usado, acrescente `method` aos seus `fields`. |
13
+ | Algumas linhas ainda dizem `待填` ou `XXX` na coluna do modo de falha, e outras não têm nada. | `FM-008` reporta a linha cujo modo de falha ainda contém um dos termos marcadores do pacote (`【`, `】`, `{{`, `}}`, `XXX`, `xxx`, `待填`, `待补充`, `TBD`, `todo`, `示例`), porque uma folha copiada de um modelo lê-se como análise concluída; lê apenas a coluna do modo de falha, e `terms` ajusta-se ao seu modelo. `FM-001` reporta a linha em que modo de falha, efeito e causa estão os três vazios, mas exige apenas um dos três: uma célula com `待填` satisfaz `FM-001` e é apanhada por `FM-008`. Nenhuma das duas julga se os modos de falha estão completos ou se os efeitos foram analisados o suficiente. |
14
+ | O relatório mostra `FM-004` e `FM-006` como `skipped`. Há algum problema? | Não. Ambas vêm por configurar e o pacote reporta isso em vez de passar em silêncio. O `threshold` de `FM-004` é `0`, lido como não configurado, pelo que nenhuma linha conta como risco elevado até definir o seu critério de risco: por exemplo `triggerField: severity` com `threshold: 9`, ou `triggerField: rpn` com `threshold: 100`. A lista `values` de `FM-006` está vazia, pelo que o vocabulário de estados não é verificado até enumerar os seus próprios valores. Depois de configuradas, `FM-004` verifica apenas que a célula de ação de uma linha de risco elevado está preenchida — não que a ação seja eficaz ou viável — e `FM-006` verifica apenas que o estado consta da lista configurada, não que a ação tenha sido executada. |
15
+
16
+ ## Normas que segue
17
+
18
+ | Documento | Número | Regras que o citam |
19
+ |---|---|---|
20
+ | 《系统可靠性分析技术 失效模式和影响分析(FMEA)程序》 | GB/T 7826(现行版本号与条号本次未核实) | FM-001, FM-002, FM-003, FM-004, FM-005, FM-006, FM-007, FM-008 |
2
21
 
3
22
  **Boundary:** this plugin checks an **FMEA worksheet** for what a sheet can be held to mechanically — that
4
23
  the analysis chain is recorded, that the severity / occurrence / detection scores are operable numbers,
package/README-zh.md CHANGED
@@ -1,4 +1,23 @@
1
- # dsh-fmea-table-check
1
+ # dsh-fmea-table-check — FMEA 分析表要素齐备性与风险顺序数一致性核对
2
+
3
+ `dsh-fmea-table-check` 读取一份 FMEA 分析表——以表自身的列名为键,中英文均可——核对一张表在机械层面能够被要求的东西:基本分析链是否记录在案、严重度/频度/探测度是否为可运算的数值、风险顺序数是否等于三者之积、高风险条目是否有带责任人与完成期限的建议措施、措施状态是否取自本机构的口径、失效模式栏是否残留未替换的模板占位符。
4
+
5
+ ## 它回答什么问题
6
+
7
+ | 你会问 | 它怎么答 |
8
+ |---|---|
9
+ | RPN 栏跟严重度 × 频度 × 探测度对不上,能查出来吗? | 能。`FM-003` 用严重度 × 频度 × 探测度重算 `rpn`,容差为 `0`,逐行报出与表内所填不一致的条目。它只在四个字段都能解析为数值时执行;频度填的不是数字时,本条报 `skipped` 而不是通过。按 AIAG-VDA 手册打分的表用 AP 而非 RPN,请改 `resultField` 与 `factorFields`,或停用本条。 |
10
+ | 严重度栏填的是「高」而不是分数,会怎样? | `FM-002` 要求严重度为可运算的正数,填不出来即报出该行。它的核对只指向 `severity` 一个字段,频度与探测度要另加一条换 `field` 的规则;它不设分值范围,既不强制 1~10 的口径,也不判断打分是否恰当。分数解析不出来时 `FM-003` 同样进 `skipped`,因为乘不出来。 |
11
+ | 某行提了建议措施,但责任人与完成期限都是空的。 | `FM-005` 在凡是填了建议措施的行上执行,要求同时有 `owner`(责任人)与 `dueAt`(完成期限),缺其一即报出该行。字段名是别名解析后的规范名,本机构表式栏名不同时,请把别名加进列映射或调整 `requiredFields`。它只核对这两栏是否填写,不判断期限是否现实、责任人是否认可。措施栏为空的行由 `FM-004` 负责。 |
12
+ | 分析表里根本没写分析的是哪个产品或过程。 | `FM-007` 读表头的 `item`,分析对象缺失即报出:FMEA 是针对特定产品或过程开展的,没有它结论无法追溯,也无法判断该用哪一套评分表。这是存在性核对,填了但填错不报。若本机构还要求写明所用分析方法,把 `method` 加进它的 `fields`。 |
13
+ | 有些行的失效模式栏还写着「待填」或 `XXX`,另一些行干脆什么都没填。 | `FM-008` 报出失效模式栏仍含本规则库占位符词条(`【`、`】`、`{{`、`}}`、`XXX`、`xxx`、`待填`、`待补充`、`TBD`、`todo`、`示例`)的行,因为照模板抄来的表看上去像是分析已完成;它只看失效模式栏,词条可随本机构模板调整。`FM-001` 报出失效模式、后果与原因三项全空的行,但它只要求三者填了至少一项——填着「待填」的行能通过 `FM-001`,由 `FM-008` 报出。两条都不判断失效模式是否找全、后果是否分析到位。 |
14
+ | 报告里 `FM-004` 与 `FM-006` 显示为 `skipped`,是出问题了吗? | 不是。这两条出厂都未配置,规则库如实报出未能执行,而不是静默通过。`FM-004` 的 `threshold` 为 `0`,即未配置,未设本机构风险准则前没有任何行算高风险——例如配 `triggerField: severity` 加 `threshold: 9`,或 `triggerField: rpn` 加 `threshold: 100`。`FM-006` 的 `values` 为空,未列本机构口径前不核对措施状态取值。配置之后,`FM-004` 只核对高风险行的建议措施栏是否填写,不判断措施是否有效、是否可行;`FM-006` 只核对状态值是否在册,不判断措施是否真的落实。 |
15
+
16
+ ## 依据的标准
17
+
18
+ | 文件 | 文号 | 引用它的规则 |
19
+ |---|---|---|
20
+ | 《系统可靠性分析技术 失效模式和影响分析(FMEA)程序》 | GB/T 7826(现行版本号与条号本次未核实) | FM-001, FM-002, FM-003, FM-004, FM-005, FM-006, FM-007, FM-008 |
2
21
 
3
22
  **Boundary:** this plugin checks an **FMEA worksheet** for what a sheet can be held to mechanically — that
4
23
  the analysis chain is recorded, that the severity / occurrence / detection scores are operable numbers,
package/README.md CHANGED
@@ -1,4 +1,23 @@
1
- # dsh-fmea-table-check
1
+ # dsh-fmea-table-check — FMEA worksheet element completeness and risk priority number consistency check
2
+
3
+ `dsh-fmea-table-check` reads one FMEA worksheet — rows keyed by the sheet's own column names, in Chinese or English — and checks in it what a sheet can be held to mechanically: that the analysis chain is recorded, that the severity, occurrence and detection scores are operable numbers, that the risk priority number equals their product, that a high-risk row carries an action with an owner and a due date, that action statuses come from your own vocabulary, and that no template placeholder survives in the failure mode.
4
+
5
+ ## What it answers
6
+
7
+ | You ask | What it answers |
8
+ |---|---|
9
+ | The RPN cell does not equal severity × occurrence × detection — is that caught? | Yes. `FM-003` recomputes `rpn` from severity × occurrence × detection with a tolerance of `0` and reports the row whose stored value differs. It runs only when all four cells hold parseable numbers; if the occurrence score is not a number the rule reports `skipped` rather than a pass. A worksheet built on the AIAG-VDA handbook scores with AP instead of RPN, so repoint `resultField` and `factorFields`, or disable the rule. |
10
+ | The severity cell holds `高` instead of a score. What happens? | `FM-002` requires severity to be an operable positive number and reports the row when it is not. Its check names the `severity` field only, so occurrence and detection need the same rule added with a different `field`; it sets no score range, so it does not enforce a scale from 1 to 10 and does not judge whether a score is appropriate. A score it cannot parse also sends `FM-003` to `skipped`, because the product cannot be recomputed. |
11
+ | A row recommends an action, but the owner and the due date are blank. | `FM-005` runs on every row whose recommended-action cell is filled and requires both `owner` and `dueAt`; it reports the row missing either one. Those are the canonical names after alias resolution, so a sheet with other column headers needs the alias in the column mapping or `requiredFields` adjusted. It checks that the two cells are filled — not that the date is realistic or that the owner has accepted it. Rows with an empty action cell are `FM-004`'s business. |
12
+ | Our worksheet never says which product or process it is analysing. | `FM-007` reads the sheet header's `item` and reports it when the analysis subject is missing: an FMEA is carried out for a specific product or process, and without it the conclusions cannot be traced back or matched to a scoring table. It is a presence check — an analysis subject that is filled in but wrong is not reported. If your sheets must also name the method used, add `method` to its `fields`. |
13
+ | Some rows still read `待填` or `XXX` in the failure-mode column, and other rows have nothing there at all. | `FM-008` reports a row whose failure-mode cell still contains one of the pack's placeholder terms (`【`, `】`, `{{`, `}}`, `XXX`, `xxx`, `待填`, `待补充`, `TBD`, `todo`, `示例`), because a sheet copied from a template reads as a finished analysis; it reads the failure-mode column only, and `terms` follows your template. `FM-001` reports a row where failure mode, effect and cause are all blank, but it only requires one of the three to be filled — a cell holding `待填` satisfies `FM-001` and is caught by `FM-008` instead. Neither rule judges whether the failure modes are complete or the consequences analysed far enough. |
14
+ | The report lists `FM-004` and `FM-006` as `skipped`. Is something wrong? | No. Both ship unconfigured and the pack reports that instead of passing silently. `FM-004`'s `threshold` is `0`, which reads as not configured, so no row counts as high-risk until you set your own risk criterion — for example `triggerField: severity` with `threshold: 9`, or `triggerField: rpn` with `threshold: 100`. `FM-006`'s `values` list is empty, so the action-status vocabulary is not checked until you list your own values. Once configured, `FM-004` only checks that a high-risk row's action cell is filled — not that the action is effective or feasible — and `FM-006` only checks that a status is in the configured list, not that the action was carried out. |
15
+
16
+ ## Standards it follows
17
+
18
+ | Document | Number | Cited by rules |
19
+ |---|---|---|
20
+ | 《系统可靠性分析技术 失效模式和影响分析(FMEA)程序》 | GB/T 7826(现行版本号与条号本次未核实) | FM-001, FM-002, FM-003, FM-004, FM-005, FM-006, FM-007, FM-008 |
2
21
 
3
22
  **Boundary:** this plugin checks an **FMEA worksheet** for what a sheet can be held to mechanically — that
4
23
  the analysis chain is recorded, that the severity / occurrence / detection scores are operable numbers,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-fmea-table-check",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "FMEA 分析表要素齐备性与风险顺序数一致性核对(按公开的 FMEA 方法标准核对表内自洽,仅提示差异,不作出定性结论)",
5
5
  "type": "module",
6
6
  "main": "lib/index.mjs",