name: full
description: '大規模開発向けプロファイル。

  HLD（High-Level Design / 基本設計）とLLD（Low-Level Design / 詳細設計）を

  分離し、V字モデルの各レベルに対応するテストレベルを明確に定義する。

  '
tree:
- prefix: REQ
  path: reqs
  parent: null
  role: '要件 (What: 何を実現するか)'
  description: 'ビジネス要件・ユーザーストーリー・機能要件を定義する。

    技術的な実現方法には言及しない。

    '
- prefix: ADR
  path: adrs
  parent: null
  role: '決定 (Why: なぜそう判断したか)'
  description: 'あらゆるレベル（要求・要件・仕様・設計・実装）の意思決定を記録する。

    技術選定、トレードオフ、棄却された代替案などを記述する。

    links は関連する任意のアイテム（REQ/HLD/LLD/IMPL等）を指せる。

    '
- prefix: HLD
  path: hld
  parent: REQ
  role: '基本設計 (High-Level Design: どう構成するか)'
  description: 'システム全体のアーキテクチャを定義する。

    サブシステム分割、コンポーネント間インターフェース、

    データフロー、技術選定、非機能要件の設計方針を記述する。

    V字モデルの左辺で結合テスト（IT）に対応する。

    '
- prefix: LLD
  path: lld
  parent: HLD
  role: '詳細設計 (Low-Level Design: どう実装するか)'
  description: 'HLDで定義されたコンポーネントの内部設計を定義する。

    API仕様、アルゴリズム、クラス設計、データ構造、

    エラーハンドリング、エッジケースを記述する。

    V字モデルの左辺で単体テスト（UT）に対応する。

    '
- prefix: IMPL
  path: impl
  parent: LLD
  role: '実装 (Build: 何を作ったか)'
  description: 'LLDに対応する実装成果物（ソースコード）を追跡する。

    '
- prefix: TST
  path: tst
  parent: LLD
  role: 'テスト (Verify: どう検証するか)'
  description: '設計文書に対する検証手順・期待結果を定義する。

    test_level属性でV字モデルの右辺レベルを明示する。

    '
impl_links_to: LLD
tst_links_to: LLD
guidance:
  design_depth: "HLDとLLDの書き分け基準:\n  - HLD: サブシステム間の関係、外部IF、データフロー、技術選定理由、\n    非機能要件の具体値（性能目標、可用性目標等）\n\
    \    例: 「認証サブシステムはOAuth 2.0 + JWTを採用する」\n    例: 「API応答時間はp99で200ms以内とする」\n  -\
    \ LLD: モジュール内部の設計、関数シグネチャ、アルゴリズム詳細、\n    状態遷移、エラー処理の網羅的定義\n    例: 「JWTトークン生成はRS256で署名し、有効期限は3600秒」\n\
    \    例: 「TokenBucketのrefill()はGCRAに基づき O(1) で動作する」\n"
  test_levels: true
  test_level_note: "TSTアイテムのtest_level属性はV字モデルの右辺レベルに対応する:\n  - unit: 単体テスト（LLD/詳細設計に対応）\n\
    \    → LLDアイテムにリンク\n  - integration: 結合テスト（HLD/基本設計に対応）\n    → HLDアイテムにリンク\n \
    \ - system: システムテスト（REQ/要件に対応）\n    → REQアイテムにリンク（またはHLD経由）\n  - acceptance: 受入テスト（REQ/要件に対応）\n\
    \    → REQアイテムにリンク\nテストレベルごとにリンク先の文書が異なることに注意。\n"
doorstop_yml_attributes: "# 各ドキュメントの .doorstop.yml に追加する attributes セクション:\nattributes:\n\
  \  defaults:\n    groups: []\n    priority: medium      # critical / high / medium\
  \ / low / none / done\n    gherkin: ''            # Gherkin シナリオ（HLD/LLD で使用）\n  reviewed:\n \
  \   - groups\n    - gherkin              # gherkin 変更で再レビューをトリガー\n    # REQ / NFR\
  \ は priority も reviewed に追加を推奨\n      # ADR は status を reviewed に追加を推奨\n  publish:\n\
  \    - groups\n    - priority\n    - gherkin\n\n# 設定しない属性（Git/CIの責務）:\n#   author,\
  \ creation_date, status\n"
priority_policy: '- 値: critical / high / medium（デフォルト） / low / none / done

  - none: 未トリアージ（まだ優先度が決まっていない）

  - done: 対応完了（バックログ上の管理用）

  - 設定対象: REQ・NFR アイテム

  - コマンド: doorstop_ops.py add -d REQ ... --priority high

  - バックログ確認: trace_query.py . backlog

  '
nfr_policy: "fullプロファイルでは NFR ドキュメントを強く推奨する（規制産業では必須）:\n  init_project.py <dir> --profile\
  \ full --with-nfr\n\nNFR のトレーサビリティ（V字モデルとの対応）:\n  - NFR は REQ と並列のルートドキュメント（parent:\
  \ null）\n  - HLD/LLD は NFR アイテムへリンクして非機能制約の実現方針を明示する\n  - TST は NFR アイテムへリンクして非機能テスト（性能・セキュリティ）を対応付ける\n\
  \nV字モデルでのNFR対応:\n  NFR001 [PERF] ─────────────── TST (test_level=system, groups=[PERF])\n\
  \     HLD001 [PERF] ──────── TST (test_level=integration, groups=[PERF])\n\nNFR\
  \ の典型的なグループ（規制産業）:\n  - PERF  — 性能要件（応答時間、スループット、リソース使用量）\n  - SEC   — セキュリティ要件（認証、暗号化、監査ログ）\n\
  \  - REL   — 信頼性要件（可用性、耐障害性、RTO/RPO）\n  - MNT   — 保守性要件（ログ出力、メトリクス、デプロイ手順）\n  -\
  \ PRT   — 可搬性要件（OS、クラウド、DB互換性）\n  - SAF   — 安全性要件（フェイルセーフ、ハザード分析 — 医療・航空宇宙）\n"
derived_policy: '- 使用可能な層: HLD / LLD のみ

  - 運用ルールの詳細は references/doorstop_reference.md を参照

  '
references_policy: '- ref は使わず references に統一する

  - IMPL: ドメインロジックの実装ファイルのみ（最大2–3ファイル）

  - TST: 直接のテストファイルのみ

  - conftest.py, __init__.py, 共通ユーティリティは含めない

  '
traceability: "REQ ← HLD ← LLD ← IMPL\n                   TST\n\nV字モデル対応:\n  要件定義\
  \ (REQ) ─────────────── 受入テスト (TST test_level=acceptance)\n     基本設計 (HLD) ────────\
  \ 結合テスト (TST test_level=integration)\n        詳細設計 (LLD) ── 単体テスト (TST test_level=unit)\n\
  \           実装 (IMPL)\n"
