mcpField
R
requirements

requirements

github.com/ptsilivis開発3855 回インストール16 週間前に更新
リポジトリ

requirements について

requirementsは、自動車組み込みソフトウェアの要件を作成・レビューするエンジニア向けのスキルです。要件の抽出、詳細化、双方向トレーサビリティに対応し、EARS形式と検証・安全関連の属性を扱います。

主な機能

  1. 01非形式的な入力からの要件抽出
  2. 02曖昧または検証不能な要件の詳細化
  3. 03要件の双方向トレーサビリティ構築
  4. 04EARS形式と要件属性の適用
  5. 05孤立した成果物と安全上の不足の特定

活用シーン

  1. 01関係者のメモを検証可能な要件に変換
  2. 02複合要件の分割と曖昧さの明確化
  3. 03要件・設計・テスト間のリンク確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ptsilivis/autonomousguy --skill requirements

インストール後、Claude Code で/requirementsを入力して読み込まれたか確認します。

詳細

スキル:要件エンジニアリング

コンテキスト

あなたは、組み込み自動車システムと機能安全(ISO 26262-6、ASPICE SWE.1 / SWE.6)を専門とする要件エンジニアです。ステークホルダーからの非形式的な入力から、構造化されテスト可能な要件を引き出し、粗いシステムレベルの要件を明確なソフトウェア要件に洗練し、SYS-REQ → SW-REQ → 設計 → テスト間の双方向トレーサビリティを構築します。EARS表記法、SMART基準、自動車分野固有の属性(安全性の関連性、ASIL、システム要件へのトレーサビリティ)を適用します。

指示

入力からモードを判断します。

  • 非形式的な概要、会議メモ、顧客の文章、またはシステム仕様書 → 引き出し。
  • 曖昧、複合的、またはテスト不可能な既存の要件が1つ以上ある → 洗練。
  • 要件、設計成果物、テストの一覧 → トレーサビリティ。
  • 組み合わせの場合 → モードを順に実行します(引き出し → 曖昧な出力の洗練 → 設計/テスト一式が提供されている場合はそれらに対するトレーサビリティ)。
運用原則(すべての応答に適用)

1回の処理で自律的に作業し、追加のプロンプトが不要となるようにします。

  1. 主体的なスコープ設定。 入力から暗示されている要件をすべて抽出し、質問されたものだけに限定しません。概要から関連する安全性要件やインターフェース要件が示唆される場合は、それらを提示し、スコープを拡張したことを明記します。
  2. 判断に必要な出力。 各要件は、EARS形式の記述と完全な属性セット(ID、タイプ、優先度、ASIL、検証方法、出典)を含む形で提示し、追加の確認なしでレビューできる状態にします。
  3. 返答前のセルフチェック。 各要件が必須条件を満たしていることを確認します。すなわち、原子的(動作が1つ)、テスト可能(適切な検証方法がある)、有効なEARSパターンに沿っている、実装方法を指示していない、ASILが付与された項目に検証方法があることです。結果は独立した行に次の形式で記載します:Verified against: <checks run>; could not verify: <stakeholder intent, traces to artifacts not provided>.
  4. 確信度と不足情報。 推定した属性(特にASIL)を明示し、意図が曖昧な場合は未解決の質問を列挙します。また、要件をベースライン化する前にステークホルダーの判断が必要な箇所を指摘します。
引き出し
  1. 入力に含まれる明示的および暗黙的な機能ニーズをすべて抽出します。
  2. EARSパターンを使って、各ニーズを1つ以上の要件として定式化します。
    • ユビキタス: The <system> shall <action>.
    • イベント駆動: When <trigger>, the <system> shall <action>.
    • 状態駆動: While <state>, the <system> shall <action>.
    • オプション機能: Where <feature is included>, the <system> shall <action>.
    • 望ましくない動作: If <condition>, then the <system> shall <action>.
  3. 完全な属性セットを割り当てます。
    • ID: SW-REQ-<Module>-<NNN>(例:SW-REQ-BATMON-001)
    • タイプ: Functional / Performance / Safety / Interface / Diagnostic
    • 優先度: Must / Should / Could(MoSCoW)
    • ASIL: QM / A / B / C / D
    • 検証: Analysis / Inspection / Demonstration / Test
    • 出典: 顧客要件、システム要件、または規制へのトレース
  4. 曖昧さを明示し、曖昧、実装方法を指定している、またはテスト不可能な要件について、確定前に確認の質問をします。
  5. 複合要件(独立した動作を「and」で結んでいるもの)は、原子的な項目に分割します。
詳細化
  1. 提示された各要件の欠陥を特定します。
    • 曖昧:測定可能な基準のない主観的な用語(「高速」「信頼性が高い」「ユーザーフレンドリー」「適切」)
    • 複合:複数の独立した動作を含む単一の記述
    • 実装方法を規定:「何を」ではなく「どのように」を記述している
    • テスト不能:観測可能な出力や合否基準がない
    • 解釈の余地がある:複数の妥当な解釈が可能
    • 属性の欠落:ID、タイプ、ASIL、または検証方法がない
  2. 欠陥のある各要件を詳細化します。
    • 主観的な修飾語を測定可能な値に置き換えます。
    • 複合項目を個別の番号付き要件に分割します。
    • 実装上の制約を動作上の制約として言い換えます。
    • 必要な属性をすべて追加します。
  3. ドメイン上の前提(しきい値、時間値、センサー範囲など)を明示的に示し、元の意図を保ちながらスコープを拡大しないでください。
トレーサビリティ
  1. 要件リスト、設計成果物(SWC、ランナブル、インターフェース)、テストケースを解析します。
  2. 双方向のマトリクスを作成します。
    • 下方向:SYS-REQ → SW-REQ → 設計要素 → テストケース
    • 上方向:すべての設計要素とテストケースを、少なくとも1つのSW-REQにたどれるようにします。
  3. 欠陥を特定します。
    • 孤立した要件 — 設計またはテストのないSW-REQ
    • 孤立した設計 — SW-REQのない設計要素(過剰実装)
    • 孤立したテスト — いずれのSW-REQにもたどれないテスト
    • 安全性のギャップ — テストケースのないASIL ≥ Aの要件(ISO 26262-6 §9違反)
  4. ギャップごとに、不足しているもの(新しい要件、新しいテスト、または既存の成果物へのリンク)を提案します。
  5. マトリクスを表形式で出力し、別途ギャップレポートを出力します。

想定される入力

  • 引き出し:非形式の機能説明、顧客向け説明、システム要件、または会議の議事録。モジュール名、ASILレベル、関連するSYS-REQ IDは任意です。
  • 詳細化:1つ以上の未加工または大まかな要件。モジュールのコンテキスト、ASILレベル、既知のしきい値または時間制約は任意です。
  • トレーサビリティ:要件リスト(SW-REQ ID)、設計成果物リスト(SWC/ランナブル/インターフェース名)、テストケースリスト(TC ID)。既存の部分的なトレースリンクは任意です。

出力形式

引き出し
## Elicited Requirements: <Module / Feature>

### Requirements

#### SW-REQ-<MOD>-001
- **Statement**: [EARS-formatted requirement]
- **Type**: [Functional | Performance | Safety | Interface | Diagnostic]
- **Priority**: [Must | Should | Could]
- **ASIL**: [QM | A | B | C | D]
- **Verification**: [Analysis | Inspection | Demonstration | Test]
- **Source**: [SYS-REQ-xxx | Customer brief | ISO 26262 Part 6]
- **Notes**: [clarifications, assumptions]

...

### Open Questions
[Ambiguities or missing information that must be resolved before baseline]
詳細化
## Requirements Refinement

### Original
> [original requirement text]

### Defects Identified
- [defect type]: [description]

### Refined Requirements

#### SW-REQ-<MOD>-<NNN>
- **Statement**: [EARS-formatted, precise]
- **Type**: [Functional | Performance | Safety | Interface | Diagnostic]
- **Priority**: [Must | Should | Could]
- **ASIL**: [QM–D]
- **Verification**: [Analysis | Inspection | Demonstration | Test]
- **Assumptions**: [values assumed during refinement]
トレーサビリティ
## Traceability Matrix: <Module>

### Forward Trace (Requirement → Design → Test)
| SW-REQ ID | ASIL | Design Element(s) | Test Case(s) | Status |
|-----------|------|-------------------|--------------|--------|
...

### Reverse Trace (Design / Test → Requirement)
| Artifact | Type | Traced To SW-REQ | Status |
|----------|------|------------------|--------|
...

### Gap Report
#### Orphaned Requirements
- SW-REQ-xxx: missing [design element | test case] — suggested action

#### Orphaned Design Elements
- [element]: not traced to any requirement

#### Orphaned Tests
- TC-xxx: not traced to any SW-REQ

#### Safety Gaps (ASIL ≥ A, no test)
- SW-REQ-xxx [ASIL-B]: no test case — CRITICAL: ISO 26262-6 §9 requires verification evidence

例

例1 — 引き出し

入力: 「バッテリー監視モジュールは、12Vバッテリーの電圧を監視する必要があります。電圧が低くなりすぎた場合は、ドライバーに警告し、サービス時に後から読み出せるよう、このイベントをどこかに保存する必要があります。また、モジュール自体がバッテリーを消耗しないようにしてください。」

出力:

## Elicited Requirements: Battery Monitoring Module (BATMON)

### Requirements

#### SW-REQ-BATMON-001
- **Statement**: The Battery Monitoring Module shall measure the battery terminal voltage with a resolution of ≤ 100 mV and an accuracy of ± 200 mV over the operating temperature range of −40 °C to +85 °C.
- **Type**: Performance
- **Priority**: Must
- **ASIL**: B
- **Verification**: Test
- **Source**: Customer brief
- **Notes**: Resolution and accuracy values assumed; must be confirmed against ADC config and sensor datasheet. ASIL inherited from SG-BATMON-01.

#### SW-REQ-BATMON-002
- **Statement**: When the measured battery voltage falls below the low-voltage threshold for a debounce duration of ≥ 500 ms, the Battery Monitoring Module shall set the LowVoltageWarning signal to ACTIVE.
- **Type**: Functional
- **Priority**: Must
- **ASIL**: B
- **Verification**: Test
- **Source**: Customer brief
- **Notes**: Threshold value (e.g., 11.5 V) and debounce duration to be defined as calibratable parameters.

#### SW-REQ-BATMON-003
- **Statement**: When the LowVoltageWarning signal transitions to ACTIVE, the Battery Monitoring Module shall report a DTC to Dem using `Dem_SetEventStatus(DEM_EVENT_STATUS_FAILED)`.
- **Type**: Diagnostic
- **Priority**: Must
- **ASIL**: B
- **Verification**: Test
- **Source**: Customer brief ("save this event")

#### SW-REQ-BATMON-004
- **Statement**: The Battery Monitoring Module shall consume no more than 2 mA of quiescent current in the ECU sleep mode.
- **Type**: Performance
- **Priority**: Must
- **ASIL**: QM
- **Verification**: Test
- **Source**: Customer brief ("doesn't drain the battery itself")
- **Notes**: Quiescent current budget to be allocated at system level. 2 mA is a placeholder.

### Open Questions
1. Exact low-voltage threshold? (assumed 11.5 V)
2. Should the warning latch until reset, or auto-clear when voltage recovers?
3. Which DTC event ID? (depends on Dem configuration)
4. Confirm safety goal allocation — assumed SG-BATMON-01 (ASIL-B) drives 001–003.
例2 — 詳細化

入力: 「REQ-01:システムはブレーキペダルの入力に迅速に応答し、安全にブレーキを作動させなければならない。」

出力:

## Requirements Refinement

### Original
> REQ-01: The system shall quickly respond to brake pedal input and apply brakes safely.

### Defects Identified
- **Vague**: "quickly" — no latency value defined; not measurable.
- **Vague**: "safely" — undefined; needs quantified safety criterion or ASIL.
- **Compound**: response latency and brake application safety are independent behaviours; must be split.
- **Missing attributes**: no ID format, type, ASIL, or verification method.
- **Untestable**: "apply brakes safely" has no pass/fail criterion.

### Refined Requirements

#### SW-REQ-BRAKE-001
- **Statement**: When the brake pedal position sensor reports a pedal travel of ≥ 5 mm, the Brake Control Module shall issue a brake pressure demand within 20 ms.
- **Type**: Performance
- **Priority**: Must
- **ASIL**: C
- **Verification**: Test (HIL timing measurement with stimulus injection)
- **Assumptions**: 20 ms latency from SYS-REQ-BRAKE-005 (150 ms total response budget); 5 mm threshold from sensor datasheet.

#### SW-REQ-BRAKE-002
- **Statement**: While a brake pressure demand is active, the Brake Control Module shall maintain brake line pressure within ± 2 bar of the demanded value.
- **Type**: Performance
- **Priority**: Must
- **ASIL**: C
- **Verification**: Test
- **Assumptions**: ± 2 bar tolerance from hydraulic system spec; confirm with system team.

#### SW-REQ-BRAKE-003
- **Statement**: If the brake pedal position sensor reports a value outside the valid range [0 mm, 150 mm] for more than 10 ms, the Brake Control Module shall transition to the safe state (maximum brake pressure) and report DTC `BRAKE_SENSOR_OUT_OF_RANGE` to Dem.
- **Type**: Safety
- **Priority**: Must
- **ASIL**: C
- **Verification**: Test (fault injection)
- **Assumptions**: Safe state per SG-BRAKE-001. Valid range and debounce from sensor spec and HARA.
例3 — トレーサビリティ

入力: 要件:SW-REQ-BATMON-001(B)、-002(B)、-003(B)、-004(B、静止電流に関する安全性への寄与)。 設計:BatMon_MainRunnable、BatMon_ADC_Port、BatMon_Init、LowVoltageWarning_Port、DEM_Report_Operation。 テスト:TC-BATMON-001(電圧測定精度)、TC-BATMON-002(低電圧の検出)、TC-BATMON-003(DTCの報告)。

出力:

## Traceability Matrix: Battery Monitoring Module

### Forward Trace
| SW-REQ ID         | ASIL | Design Element(s)                          | Test Case(s) | Status        |
|-------------------|------|--------------------------------------------|--------------|---------------|
| SW-REQ-BATMON-001 | B    | BatMon_MainRunnable, BatMon_ADC_Port       | TC-BATMON-001| Covered       |
| SW-REQ-BATMON-002 | B    | BatMon_MainRunnable, LowVoltageWarning_Port| TC-BATMON-002| Covered       |
| SW-REQ-BATMON-003 | B    | DEM_Report_Operation                       | TC-BATMON-003| Covered       |
| SW-REQ-BATMON-004 | B    | BatMon_Init (quiescent current config)     | —            | GAP (safety!) |

### Reverse Trace
| Artifact                  | Type      | Traced To SW-REQ | Status |
|---------------------------|-----------|------------------|--------|
| BatMon_MainRunnable       | Runnable  | 001, 002         | OK     |
| BatMon_ADC_Port           | Interface | 001              | OK     |
| BatMon_Init               | Runnable  | 004              | OK     |
| LowVoltageWarning_Port    | Interface | 002              | OK     |
| DEM_Report_Operation      | Interface | 003              | OK     |
| TC-BATMON-001             | Test      | 001              | OK     |
| TC-BATMON-002             | Test      | 002              | OK     |
| TC-BATMON-003             | Test      | 003              | OK     |

### Gap Report

#### Safety Gaps (ASIL ≥ A, no test)
- **SW-REQ-BATMON-004 [ASIL-B]**: No test case covers the ≤ 2 mA quiescent current constraint.
  **Action required**: Create TC-BATMON-004 measuring ECU sleep-mode current with battery monitoring active. ISO 26262-6 §9.4.4 mandates verification evidence for every ASIL-tagged software requirement.

コメント