From e0420d57a381a1644357f0590536e1d47c9bca9f Mon Sep 17 00:00:00 2001 From: Agent Control Runner Date: Sat, 17 Oct 2026 19:24:10 +0900 Subject: [PATCH 1/2] =?UTF-8?q?P19-03-TABLE:=20P19-03=20=E5=88=86=E5=B2=90?= =?UTF-8?q?=E3=81=AE=E5=88=B0=E9=81=94=E6=80=A7=EF=BC=9A=E5=8E=9F7?= =?UTF-8?q?=E5=90=8D=C3=973=E3=83=AB=E3=83=BC=E3=83=88=E3=81=AE=E5=85=A8?= =?UTF-8?q?=E5=88=B0=E9=81=94=E8=A1=A8=E3=81=A8=E6=9C=AA=E5=88=B6=E4=BD=9C?= =?UTF-8?q?=E6=AC=A0=E6=90=8D=E7=9B=A3=E6=9F=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../execution/p19-03/IMPLEMENTATION_REPORT.md | 66 + .../execution/p19-03/REACHABILITY_TABLE.json | 15646 ++++++++++++++++ .../execution/p19-03/REACHABILITY_TABLE.md | 631 + .../p19-03/check_reachability_table.py | 262 + .../p19-03/test_reachability_table.py | 134 + 5 files changed, 16739 insertions(+) create mode 100644 docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md create mode 100644 docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json create mode 100644 docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md create mode 100644 docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py create mode 100644 docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md b/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md new file mode 100644 index 0000000..1067233 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md @@ -0,0 +1,66 @@ +# P19-03 実装提出報告 + +提出状態。受入は未確定。原受入「7名×3ルートの到達表があり、未制作内容は欠損として残る。」を維持する。14/88は変更しない。 + +## 変更範囲 + +このディレクトリの必須5ファイルのみを追加した。原本、原子要件、work packages、decisions、TASK_SPEC、選定記録、frozen pins、ゲーム入力、marker registryは変更していない。git書込み、他worker起動、Runner操作、ゲーム起動は行っていない。素材追加なし。 + +## 要件と検査の対応 + +|TASK_SPEC implementation_requirements順|成果物|検査| +|---|---|---| +|1: 原7名×3ルート|REACHABILITY_TABLE.json / .md|expectedのPEOPLE/ROUTES、原本118–124行、atomic entityと21セルの完全一致。test_exact_cell_product| +|2: 8カテゴリ、共通/人物固有の分離|JSON common_rules / cells.categories|CATEGORIES全件のcanonical比較。test_categories_and_citations| +|3: 原本本文・行・status・anchorのsource SHA・owner|JSONの各共通項目/人物固有項目、catalog_evidence|expected.evidence/cite、verify。test_stale_record_evidence / test_owner_and_status| +|4: 欠損、理由、担当、未知値pending|各character_specific、pending、natural_route_complete=false|test_no_invented_values_or_completion。D05/D08は未回答のまま| +|5: docs内stdlibチェッカー/自己試験|check_reachability_table.py / test_reachability_table.py|stdlib importsのみ。選択対象外のdocs内配置| +|6: read-only --check、厳密な表/Markdown|verify / verify_records / markdown|test_json_and_types / test_markdown_drift。--checkは書込み分岐を通らない| +|7: 全frozen source mapと各identity|binding / selection|1368選択ファイルの完全map、marker/policy/engine、184-suite roster、329 .gd、baseline、spec→pins SHA。test_full_frozen_map_and_identities / test_real_source_and_baseline_changes| +|8: UI/Runtime/save/Windowsの適用性|JSON route_support、MDルート別適用性|各ルートをcanonical比較。汎用UIラベル、原本登録Runtime、専用snapshotの限定証拠をcommon_rulesで参照| +|9: 有意な負例と3種の正例|test_reachability_table.py|欠落/重複/誤人物/誤route/カテゴリ/引用/古い本文・SHA/値創作/誤完成/owner・status/JSON型/Markdown、実ファイル読込差替え、map差分とpins/marker/policy/engine改変。全3statusを含む正例| +|10: P13パターン・原文保全|checkerのexpected/verify/markdown、原資料のbase blob照合|tools/check_p13_content_difference.pyのcanonical生成・厳密比較・read-only Git blob証拠パターンを参照。元ファイルは無変更| +|11: 報告・残課題・外部gate|本報告、JSON accounting|正式試験・全単位独立レビュー・統合/finalは未実行と明記| + +原子要件はB-7.1〜B-7.6をsource_group_idsに含む61件の完全レコードを読込対象とし、JSON authority_snapshotsに保持する。人物キーと原名はそのentityから確認し、原本§6の順で並べた。原本§6は114–135行、§7は136–161行であり、実際の見出しと本文を照合した。人物別の原本仕様がない部分を共通ルールから創作していない。中断/保存の人物固有手順は原本に定義されず、work_packagesのP19-02受入が所有する欠損として残した。 + +指定されたoriginal_relationship_state.gdには7名のrosterはなく、汎用subject_id等の明示入力検証のみがある。既存unique catalogのヒロインはheroine_anriのみ。監査IDには既存atomic entity.key(anri/fine/tomari/amelia/liz/mimi/satsuki)を使い、他6名の実装catalog ID、ライバル対応、初期値を創作していない。この実装欠損は表の欠損であり、原7名を削減する理由にしていない。 + +## 実行記録 + +以下は生成・静的観測であり正式試験結果ではない。 + +```sh +python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --write +``` + +生成時に2回実行し、どちらもexit 0。actual_commit=8ca9263fee1ec4374d97c01fda82b95e1df6a977、selected_files=1368、file_equality=true、anchor=1b07b87d3736e777932315a4bdde8b70cbf9cb23、native_evidence_reuse_accepted=false。最終回はUI証拠・catalog行範囲・Markdown共通検証関数の更新後。--writeは全固定入力を照合してJSON/Markdownを生成するが、自己試験またはRunner受入を代替しない。 + +別途read-only Pythonでrun_all_tests.pyと同じsource選択を再現し、1368/1368、missing=[]、new=[]、changed=[]、engine SHA一致を確認した。JSONの静的読込で21セルと61原子レコードを確認した。原本表示には `nl -ba docs/traceability/original/BASELINE.txt | sed -n '85,165p'` を使用した。原資料/既存コードはcat、sed、rgとJSON読込で確認した。 + +初期の読込用here-documentはshellの一時ファイル作成制限によりexit 1。その後python3 -cで同じ静的読込を行った。製品ファイルへの影響はない。 + +```sh +python3 -c 'import ast;from pathlib import Path;p=Path("docs/plans/original-completion-2026-10-02/execution/p19-03");[(ast.parse((p/n).read_text()),print(n,"syntax parsed")) for n in ["check_reachability_table.py","test_reachability_table.py"]]' +git diff --stat +git status --short +``` + +構文読込は2ファイルともexit 0。git差分確認では既存trackedファイルの変更なし、追加は許可ディレクトリの必須5ファイルのみ。試験実行ではない。 + +ユーザーの最新指示「試験はRunnerが正式実行します」に従い、下記は**未実行**。合格を主張しない。 + +```sh +python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --check +python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py --project-root . +python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --source-binding-only +``` + +## 残る親成果・ゲームの欠損 + +- P18-01: 原本3軸/盾の通常UI、承認済み初期値、本来の全単位受入。P18-02/03: 同配置・軽減・ブレイク・接触・閾値・確定遷移。既存旧汎用モデルの閾値を原本へ転用しない。 +- P19-01/02: 原本行動と全3種決闘、勝敗・費用・盾/履歴の一度だけ反映、通常入口、停止/取消/離脱/保存再開。原本状態保持のbackendを自然ルート完成としない。 +- P20-01/02/03: スキル/章・全エンド・図鑑と新規からの通常到達。P26-01/02/03: 人物別必要内容、状態接続、完成資産と制作受入。人物固有イベント/条件/履歴/立ち絵差分は欠損。 +- D05、D08はpending。未知の閾値・率・初期値もpendingのまま。P04の既存D05選択、P13の4件の制作followupも未解決。 +- この文書単位のnative GUI/Windows実行は適用外。global same-Windows、held gestures、全ゲーム受入はopen。固定入力一致から既存native証拠の正式再利用承認を推定していない。 +- Runnerの3 validator、原本§6–7と元受入に対する実装者から独立したwhole-unit Opus review、その後の通常prepare-integration/finalが必要。どの完了数・元台帳も変更していない。 diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json new file mode 100644 index 0000000..aca7d74 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json @@ -0,0 +1,15646 @@ +{ + "task_id": "P19-03-TABLE", + "schema_version": 1, + "identity_policy": "原本§6の名前とatomic entity.keyを監査IDに使用。実装IDを捏造しない。カタログにはheroine_anriのみ。OriginalRelationshipStateはsubject_idを保持し7名の列挙はしない。", + "source_anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "common_rules": [ + { + "id": "state_fields", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 143 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "implemented", + "implementation": { + "path": "scripts/relationship/original_relationship_state.gd", + "sha256": "d1bfabfd205becf6d3cf1d6b6c477393319b26b0e7504fd227c3714761101616", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 4, + 34 + ], + "text": "## Explicit facts only. Numeric values are not production initialization approval.\n## No update, attack, reduction, threshold or route policy is defined here.\nconst FIELDS := [\"subject_id\", \"protagonist_id\", \"rival_id\", \"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]\nvar _payload: Dictionary = {}\n\n\nstatic func from_snapshot(value: Variant) -> OriginalRelationshipState:\n\tif not value is Dictionary or value.size() != FIELDS.size():\n\t\treturn null\n\tfor field: String in FIELDS:\n\t\tif not value.has(field):\n\t\t\treturn null\n\tfor field: String in [\"subject_id\", \"protagonist_id\", \"rival_id\"]:\n\t\tif not (value[field] is String or value[field] is StringName) or String(value[field]).is_empty():\n\t\t\treturn null\n\tif value[\"subject_id\"] == value[\"protagonist_id\"] or value[\"subject_id\"] == value[\"rival_id\"] or value[\"protagonist_id\"] == value[\"rival_id\"]:\n\t\treturn null\n\tfor field: String in [\"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]:\n\t\tif not (value[field] is int or value[field] is float):\n\t\t\treturn null\n\t\tif value[field] is float and not is_finite(value[field]):\n\t\t\treturn null\n\tif value[\"shield_max\"] != value[\"affection\"] or value[\"shield_current\"] < 0 or value[\"shield_current\"] > value[\"shield_max\"]:\n\t\treturn null\n\tvar state := OriginalRelationshipState.new()\n\tstate._payload = value.duplicate(true)\n\treturn state\n\n\nfunc create_snapshot() -> Dictionary:\n\treturn _payload.duplicate(true)" + }, + "owner": "P18-01", + "observation": "原本3値と盾の明示値の検証・保持のみ。初期値と更新方針は未定。", + "gap": null + }, + { + "id": "affection_max_invariant", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 140, + 140 + ], + "text": " * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "partial", + "implementation": { + "path": "scripts/relationship/original_relationship_state.gd", + "sha256": "d1bfabfd205becf6d3cf1d6b6c477393319b26b0e7504fd227c3714761101616", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 20, + 30 + ], + "text": "\t\treturn null\n\tfor field: String in [\"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]:\n\t\tif not (value[field] is int or value[field] is float):\n\t\t\treturn null\n\t\tif value[field] is float and not is_finite(value[field]):\n\t\t\treturn null\n\tif value[\"shield_max\"] != value[\"affection\"] or value[\"shield_current\"] < 0 or value[\"shield_current\"] > value[\"shield_max\"]:\n\t\treturn null\n\tvar state := OriginalRelationshipState.new()\n\tstate._payload = value.duplicate(true)\n\treturn state" + }, + "owner": "P18-01", + "observation": "入力時の最大値一致検証のみ。通常操作の回復・更新は欠損。", + "gap": "欠損: 入力時の最大値一致検証のみ。通常操作の回復・更新は欠損。" + }, + { + "id": "snapshot_container", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 143 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "partial", + "implementation": { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 423, + 479 + ], + "text": "\t\tlegacy[&\"threshold_candidates\"] = current_candidates\n\tlegacy[&\"next_candidate_sequence\"] = _next_candidate_sequence\n\tvar result := _container_raw.duplicate(true)\n\tresult[&\"version\"] = SNAPSHOT_VERSION\n\tresult[&\"legacy\"] = legacy\n\t# Compatibility projection for existing snapshot consumers; the nested v1\n\t# record remains lossless, including extension names reserved by v2.\n\tif result.get(&\"relationships\") != relationships:\n\t\tresult[&\"relationships\"] = relationships.duplicate(true)\n\tvar originals: Array[Dictionary] = []\n\tfor payload: Dictionary in _original_records.values():\n\t\toriginals.append(payload.duplicate(true))\n\tif result.get(&\"original_relationships\") != originals:\n\t\tresult[&\"original_relationships\"] = originals\n\treturn result\n\n\nstatic func _merge_legacy_changes(raw: Dictionary, baseline: Dictionary, current: Dictionary) -> Dictionary:\n\tvar result := raw.duplicate(true)\n\tfor key: Variant in baseline:\n\t\tif not current.has(key):\n\t\t\tresult.erase(key)\n\tfor key: Variant in current:\n\t\tif baseline.has(key) and current[key] == baseline[key]:\n\t\t\tcontinue\n\t\tif current[key] is Dictionary and baseline.get(key) is Dictionary and result.get(key) is Dictionary:\n\t\t\tresult[key] = _merge_legacy_changes(result[key], baseline[key], current[key])\n\t\telse:\n\t\t\tresult[key] = current[key]\n\treturn result\n\n\nfunc restore_snapshot(snapshot: Dictionary) -> bool:\n\tvar version: Variant = _value(snapshot, &\"version\", null)\n\tif not version is int or version not in [1, SNAPSHOT_VERSION]:\n\t\tlast_error = \"Unsupported Relationship snapshot version.\"\n\t\treturn false\n\tvar legacy: Variant = snapshot if version == 1 else _value(snapshot, &\"legacy\", null)\n\tvar originals: Variant = [] if version == 1 else _value(snapshot, &\"original_relationships\", null)\n\tif not legacy is Dictionary or not originals is Array:\n\t\tlast_error = \"Malformed Relationship snapshot container.\"\n\t\treturn false\n\tif version == SNAPSHOT_VERSION and _value(snapshot, &\"relationships\", null) != _value(legacy, &\"relationships\", null):\n\t\tlast_error = \"Legacy compatibility projection disagrees with its source.\"\n\t\treturn false\n\tvar original_records: Dictionary = {}\n\tfor raw: Variant in originals:\n\t\tvar state := OriginalStateType.from_snapshot(raw)\n\t\tif state == null or original_records.has(state.subject_id()):\n\t\t\tlast_error = \"Invalid or duplicate original relationship.\"\n\t\t\treturn false\n\t\tif not _original_identity_validator.is_valid() or not bool(_original_identity_validator.call(state.create_snapshot())):\n\t\t\tlast_error = \"Invalid original relationship identity reference.\"\n\t\t\treturn false\n\t\toriginal_records[state.subject_id()] = state.create_snapshot()\n\tvar parsed := _parse_snapshot(legacy)\n\tif not bool(parsed.get(&\"ok\", false)):" + }, + "owner": "P18-01", + "observation": "専用状態と旧値の分離保存・復元。人物別ルート進行保存を意味しない。", + "gap": "欠損: 専用状態と旧値の分離保存・復元。人物別ルート進行保存を意味しない。" + }, + { + "id": "identity_registration", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 138 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "partial", + "implementation": { + "path": "autoload/simulation_runtime.gd", + "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 6791, + 6812 + ], + "text": "func _original_relationship_identities_valid(payload: Dictionary, staff_registry: StaffService, catalog: MvpContentCatalog) -> bool:\n\tif payload.get(\"protagonist_id\") != \"player\" or staff_registry == null:\n\t\treturn false\n\tvar subject := StringName(payload.get(\"subject_id\", \"\"))\n\tvar rival := StringName(payload.get(\"rival_id\", \"\"))\n\tif subject == &\"player\" or rival == &\"player\" or subject == rival or not staff_registry.has_staff(subject):\n\t\treturn false\n\tvar heroine_definition := catalog.get_entry(&\"unique_characters\", subject)\n\tvar rival_definition := catalog.get_entry(&\"unique_characters\", rival)\n\tvar subject_staff := staff_registry.get_staff(subject)\n\treturn subject_staff.employment_kind == StaffRuntime.EmploymentKind.UNIQUE \\\n\t\tand heroine_definition.get(&\"role_id\") == String(subject_staff.role_id) \\\n\t\tand heroine_definition.get(&\"character_kind\") == \"heroine\" \\\n\t\tand rival_definition.get(&\"character_kind\") == \"rival\" \\\n\t\tand heroine_definition.get(&\"counterpart_id\") == String(rival) \\\n\t\tand rival_definition.get(&\"counterpart_id\") == String(subject)\n\n\nfunc _execute_register_original_relationship(command: SimulationCommand) -> CommandResult:\n\tvar result := relationship_service.register_original_relationship(command.payload)\n\tresult.command_id = command.command_id\n\treturn result" + }, + "owner": "P19-01", + "observation": "Runtimeは登録済み人物・相互対応を検証。既存カタログのヒロインはアンリのみ。通常ルート入口ではない。", + "gap": "欠損: Runtimeは登録済み人物・相互対応を検証。既存カタログのヒロインはアンリのみ。通常ルート入口ではない。" + }, + { + "id": "legacy_event_ui", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 154, + 157 + ], + "text": "## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "partial", + "implementation": { + "path": "scenes/main/main.gd", + "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 89, + 101 + ], + "text": "\t&\"NOT_UNDERGROUND\": \"地下のマスだけ掘削できます\",\n\t&\"ALREADY_EXCAVATED\": \"すでに掘削済みです\",\n\t&\"ALREADY_RESERVED\": \"このマスは掘削中です\",\n\t&\"NO_EXCAVATED_NEIGHBOR\": \"掘削済みの隣接マスから延ばしてください\",\n\t&\"NO_ENTRANCE_CONNECTION\": \"地上入口までつながる経路がありません\",\n\t&\"SUPPORT_REQUIRED\": \"硬い地盤を支える補強施設が必要です\",\n\t&\"INSUFFICIENT_RESOURCES\": \"掘削資源が不足しています\",\n\t&\"MISSING_DEPENDENCY\": \"掘削システムを利用できません\",\n}\nconst EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}" + }, + "owner": "P19-01", + "observation": "既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。", + "gap": "欠損: 既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。" + }, + { + "id": "defense_reduction", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 141, + 141 + ], + "text": " * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "post_break_metric", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 142, + 143 + ], + "text": " * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "barrier_block", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 143, + 143 + ], + "text": " * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "coassignment_attack", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 145, + 145 + ], + "text": " 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "zero_break", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 146, + 146 + ], + "text": " 2. **ブレイク:** 耐久値0で「心の隙間」発生。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "contact_after_break", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 147, + 147 + ], + "text": " 3. **NTR進行:** ライバル接触で直接NTR度が上昇。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "threshold_route_loss", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-03", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "duel_types", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 150, + 151 + ], + "text": "NTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "duel_win", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 152, + 152 + ], + "text": " * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "duel_loss", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "love_actions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 155, + 155 + ], + "text": " * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "ntr_actions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 156, + 156 + ], + "text": " * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "corruption_actions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 157, + 157 + ], + "text": " * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "history_fields", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 159, + 159 + ], + "text": " * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "history_cycle_parentage", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 160, + 160 + ], + "text": " * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "portrait_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 161 + ], + "text": " * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "route_skills", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 132, + 132 + ], + "text": " * **ルート変化:** 純愛/堕落などの進行度で習得するスキルが変化する。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "departure", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 135, + 135 + ], + "text": " * **離脱:** 原則ロストしないが、防衛戦敗北での一時拉致や、特定バッドエンド確定時にのみ敵や背景オブジェクト化する。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + } + ], + "cells": [ + { + "character_id": "anri", + "name": "アンリ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "anri_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "anri_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "anri_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "anri_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "anri_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "anri_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "anri_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "anri_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "anri", + "name": "アンリ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "anri_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "anri_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "anri_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "anri_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "anri_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "anri_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "anri_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "anri_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "anri", + "name": "アンリ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "anri_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "anri_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "anri_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "anri_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "anri_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "anri_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "anri_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "anri_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 118, + 118 + ], + "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "fine", + "name": "フィーネ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "fine_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "fine_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "fine_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "fine_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "fine_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "fine_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "fine_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "fine_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "fine", + "name": "フィーネ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "fine_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "fine_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "fine_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "fine_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "fine_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "fine_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "fine_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "fine_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "fine", + "name": "フィーネ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "fine_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "fine_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "fine_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "fine_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "fine_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "fine_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "fine_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "fine_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 119, + 119 + ], + "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "tomari", + "name": "トマリ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "tomari_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "tomari_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "tomari_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "tomari_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "tomari_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "tomari_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "tomari_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "tomari_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "tomari", + "name": "トマリ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "tomari_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "tomari_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "tomari_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "tomari_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "tomari_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "tomari_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "tomari_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "tomari_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "tomari", + "name": "トマリ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "tomari_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "tomari_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "tomari_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "tomari_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "tomari_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "tomari_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "tomari_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "tomari_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 120, + 120 + ], + "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "amelia", + "name": "アメリア", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "amelia_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "amelia_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "amelia_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "amelia_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "amelia_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "amelia_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "amelia_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "amelia_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "amelia", + "name": "アメリア", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "amelia_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "amelia_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "amelia_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "amelia_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "amelia_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "amelia_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "amelia_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "amelia_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "amelia", + "name": "アメリア", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "amelia_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "amelia_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "amelia_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "amelia_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "amelia_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "amelia_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "amelia_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "amelia_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 121, + 121 + ], + "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "liz", + "name": "リズ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "liz_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "liz_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "liz_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "liz_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "liz_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "liz_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "liz_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "liz_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "liz", + "name": "リズ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "liz_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "liz_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "liz_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "liz_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "liz_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "liz_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "liz_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "liz_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "liz", + "name": "リズ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "liz_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "liz_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "liz_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "liz_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "liz_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "liz_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "liz_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "liz_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 122, + 122 + ], + "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "mimi", + "name": "ミミ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "mimi_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "mimi_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "mimi_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "mimi_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "mimi_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "mimi_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "mimi_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "mimi_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "mimi", + "name": "ミミ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "mimi_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "mimi_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "mimi_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "mimi_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "mimi_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "mimi_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "mimi_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "mimi_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "mimi", + "name": "ミミ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "mimi_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "mimi_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "mimi_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "mimi_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "mimi_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "mimi_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "mimi_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "mimi_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 123, + 123 + ], + "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "satsuki", + "name": "サツキ", + "route_id": "love", + "route": "純愛", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "love_actions" + ], + "character_specific": { + "id": "satsuki_love_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "satsuki_love_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "satsuki_love_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "love_actions", + "route_skills" + ], + "character_specific": { + "id": "satsuki_love_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "satsuki_love_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "satsuki_love_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "satsuki_love_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "satsuki_love_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "satsuki", + "name": "サツキ", + "route_id": "ntr", + "route": "NTR", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "ntr_actions" + ], + "character_specific": { + "id": "satsuki_ntr_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "satsuki_ntr_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "satsuki_ntr_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "ntr_actions", + "route_skills" + ], + "character_specific": { + "id": "satsuki_ntr_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "satsuki_ntr_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "satsuki_ntr_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "satsuki_ntr_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "satsuki_ntr_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + }, + { + "character_id": "satsuki", + "name": "サツキ", + "route_id": "corruption", + "route": "堕落", + "natural_route_complete": false, + "categories": { + "entry_required_events": { + "common_rule_refs": [ + "identity_registration", + "corruption_actions" + ], + "character_specific": { + "id": "satsuki_corruption_entry_required_events", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "state_conditions": { + "common_rule_refs": [ + "state_fields", + "affection_max_invariant", + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break" + ], + "character_specific": { + "id": "satsuki_corruption_state_conditions", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P18-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "duel_effects": { + "common_rule_refs": [ + "duel_types", + "duel_win", + "duel_loss" + ], + "character_specific": { + "id": "satsuki_corruption_duel_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-01", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "route_selection_effects": { + "common_rule_refs": [ + "threshold_route_loss", + "corruption_actions", + "route_skills" + ], + "character_specific": { + "id": "satsuki_corruption_route_selection_effects", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P26-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "interruption_cancellation": { + "common_rule_refs": [ + "departure" + ], + "character_specific": { + "id": "satsuki_corruption_interruption_cancellation", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "save_handling": { + "common_rule_refs": [ + "snapshot_container" + ], + "character_specific": { + "id": "satsuki_corruption_save_handling", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "history_marks": { + "common_rule_refs": [ + "history_fields", + "history_cycle_parentage", + "portrait_marks" + ], + "character_specific": { + "id": "satsuki_corruption_history_marks", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P19-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + }, + "current_reachability": { + "common_rule_refs": [ + "identity_registration", + "threshold_route_loss" + ], + "character_specific": { + "id": "satsuki_corruption_current_reachability", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138, + 161 + ], + "text": "3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。\n## 7.3 NTR侵食プロセス\n 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。\n 2. **ブレイク:** 耐久値0で「心の隙間」発生。\n 3. **NTR進行:** ライバル接触で直接NTR度が上昇。\n 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。\n## 7.4 決闘システム (Duel System)\nNTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。\n * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。\n * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。\n## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。\n## 7.6 Hステータスと履歴\n * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。\n * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。\n * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "not implemented", + "owner": "P20-02", + "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", + "character_authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 124, + 124 + ], + "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + } + } + } + } + ], + "authority_snapshots": { + "docs/plans/original-completion-2026-10-02/atomic_requirements.json": { + "sha256": "44530bb929fcc8c68c06d0d94da66dd04b8db7680af731b5037cd44677502938", + "base_commit": "8ca9263fee1ec4374d97c01fda82b95e1df6a977", + "records": [ + { + "id": "AR.asset.portrait_brand", + "condition": "原本の堕落ルート指定の刻印差分を立ち絵へ反映する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 235, + 242 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-12.3", + "B-13.1", + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P22", + "P25", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の堕落ルート指定の刻印差分を立ち絵へ反映する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.asset.portrait_collar", + "condition": "原本の堕落ルート指定の首輪差分を立ち絵へ反映する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 235, + 242 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-12.3", + "B-13.1", + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P22", + "P25", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の堕落ルート指定の首輪差分を立ち絵へ反映する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.asset.portrait_kiss_mark", + "condition": "NTRルートのキスマーク差分を立ち絵へ反映する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 235, + 242 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-12.3", + "B-13.1", + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P22", + "P25", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "NTRルートのキスマーク差分を立ち絵へ反映する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.asset.portrait_ring", + "condition": "純愛ルートの指輪差分を立ち絵へ反映する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 235, + 242 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-12.3", + "B-13.1", + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P22", + "P25", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "純愛ルートの指輪差分を立ち絵へ反映する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.asset.portrait_sigil", + "condition": "原本の堕落ルート指定の紋差分を立ち絵へ反映する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 161, + 235, + 242 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-12.3", + "B-13.1", + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P22", + "P25", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の堕落ルート指定の紋差分を立ち絵へ反映する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.business", + "condition": "商談決闘を通常操作で選べる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 151 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "商談決闘を通常操作で選べる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.combat", + "condition": "武力決闘を通常操作で選べる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 151 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "武力決闘を通常操作で選べる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.loss_route_lock", + "condition": "決闘敗北で原本の即時ルート確定状態へ移る。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "決闘敗北で原本の即時ルート確定状態へ移る。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.third_type", + "condition": "原本の第三種決闘を通常操作から実行できる。内容と演出が未制作なら受入しない。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 151 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の第三種決闘を通常操作から実行できる。内容と演出が未制作なら受入しない。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.win_exile", + "condition": "決闘勝利でライバルを追放できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 152 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "決闘勝利でライバルを追放できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.win_full_shield", + "condition": "決闘勝利で愛の盾を全回復する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 152 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "決闘勝利で愛の盾を全回復する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.duel.win_subordinate", + "condition": "決闘勝利でライバルを隷属状態へ移せる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 152 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.4" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "決闘勝利でライバルを隷属状態へ移せる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.amelia.route.corruption", + "condition": "アメリアの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "amelia", + "original_name": "アメリア" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アメリアの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.amelia.route.love", + "condition": "アメリアの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "amelia", + "original_name": "アメリア" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アメリアの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.amelia.route.ntr", + "condition": "アメリアのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "amelia", + "original_name": "アメリア" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アメリアのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.anri.route.corruption", + "condition": "アンリの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "anri", + "original_name": "アンリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アンリの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.anri.route.love", + "condition": "アンリの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "anri", + "original_name": "アンリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アンリの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.anri.route.ntr", + "condition": "アンリのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "anri", + "original_name": "アンリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "アンリのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.fine.route.corruption", + "condition": "フィーネの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "fine", + "original_name": "フィーネ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "フィーネの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.fine.route.love", + "condition": "フィーネの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "fine", + "original_name": "フィーネ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "フィーネの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.fine.route.ntr", + "condition": "フィーネのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "fine", + "original_name": "フィーネ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "フィーネのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.liz.route.corruption", + "condition": "リズの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "liz", + "original_name": "リズ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "リズの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.liz.route.love", + "condition": "リズの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "liz", + "original_name": "リズ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "リズの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.liz.route.ntr", + "condition": "リズのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "liz", + "original_name": "リズ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "リズのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.mimi.route.corruption", + "condition": "ミミの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "mimi", + "original_name": "ミミ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ミミの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.mimi.route.love", + "condition": "ミミの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "mimi", + "original_name": "ミミ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ミミの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.mimi.route.ntr", + "condition": "ミミのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "mimi", + "original_name": "ミミ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ミミのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.satsuki.route.corruption", + "condition": "サツキの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "satsuki", + "original_name": "サツキ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "サツキの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.satsuki.route.love", + "condition": "サツキの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "satsuki", + "original_name": "サツキ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "サツキの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.satsuki.route.ntr", + "condition": "サツキのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "satsuki", + "original_name": "サツキ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "サツキのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.tomari.route.corruption", + "condition": "トマリの堕落ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "tomari", + "original_name": "トマリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "トマリの堕落ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.tomari.route.love", + "condition": "トマリの純愛ルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "tomari", + "original_name": "トマリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "トマリの純愛ルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.heroine.tomari.route.ntr", + "condition": "トマリのNTRルートを通常進行で到達・記録できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 9, + 30, + 33, + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.1" + ], + "supplement_ids": [], + "entity": { + "kind": "heroine", + "key": "tomari", + "original_name": "トマリ" + }, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P00", + "P01", + "P13", + "P17", + "P18", + "P19", + "P20", + "P26", + "P27", + "P28", + "P29" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "トマリのNTRルートを通常進行で到達・記録できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.current_partner", + "condition": "現在のパートナーを記録する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 159 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "現在のパートナーを記録する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.cycle", + "condition": "原本の周期フィールドを保持する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 160 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の周期フィールドを保持する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.experience_count", + "condition": "原本の経験数の履歴フィールドを保持する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 159 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の経験数の履歴フィールドを保持する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.first_partner", + "condition": "原本の初回相手の履歴フィールドを保持する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 159 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の初回相手の履歴フィールドを保持する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.parentage", + "condition": "原本の父親判定を保持する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 160 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の父親判定を保持する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.pregnancy_appearance", + "condition": "原本の妊娠期に外見が変わる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 160 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P26", + "package": "P26", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "完成シナリオ/立ち絵/CG/ボイスを使う人物・イベント画面", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の妊娠期に外見が変わる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.history.pregnancy_stats", + "condition": "原本の妊娠期にステータスが変わる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 160 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.6" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の妊娠期にステータスが変わる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.affection_shield_max", + "condition": "好感度が愛の盾の最大耐久値になる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 140 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.2" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P03", + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "好感度が愛の盾の最大耐久値になる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D07" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D07", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.coassigned_attack", + "condition": "ライバルと同配置で盾耐久値が減る。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 145 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.3" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ライバルと同配置で盾耐久値が減る。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.contact_after_break", + "condition": "ブレイク後のライバル接触でNTR度が直接上がる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 147 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.3" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ブレイク後のライバル接触でNTR度が直接上がる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.lust_reduces_defense", + "condition": "原本のLust値上昇で盾の防御力(ダメージ軽減率)が下がる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 141 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.2" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P03", + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本のLust値上昇で盾の防御力(ダメージ軽減率)が下がる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.ntr_after_break", + "condition": "NTR度は盾破壊後に上昇する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 142 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.2" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P03", + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "NTR度は盾破壊後に上昇する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.shield_blocks", + "condition": "愛の盾が有効な間はNTR攻撃を防ぐ。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 143 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.2" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P03", + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "愛の盾が有効な間はNTR攻撃を防ぐ。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.three_emotions", + "condition": "感情は原本の3パラメータで管理する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 138 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.1" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P18", + "P19" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "感情は原本の3パラメータで管理する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D07" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D07", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.threshold_love_loss", + "condition": "指定閾値を越えた陥落後は純愛ルートが完全消失する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.3" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "指定閾値を越えた陥落後は純愛ルートが完全消失する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.threshold_shield_loss", + "condition": "NTR度が指定閾値を越えると盾が消滅する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.3" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "NTR度が指定閾値を越えると盾が消滅する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.relationship.zero_break", + "condition": "盾耐久値0でブレイク状態へ移る。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 143, + 146 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.2", + "B-7.3" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P18", + "package": "P18", + "work_packages": [ + "P03", + "P18" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物詳細/関係/決闘", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "盾耐久値0でブレイク状態へ移る。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.corruption_terminal", + "condition": "原本の堕落終端状態を管理する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 157 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の堕落終端状態を管理する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.date_heal", + "condition": "デートで盾を回復する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 155 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "デートで盾を回復する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.duel_removal", + "condition": "決闘でライバルを排除して進行を抑止できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 155 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "決闘でライバルを排除して進行を抑止できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.item_lust", + "condition": "原本指定アイテムによってLust値が増す。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 157 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本指定アイテムによってLust値が増す。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.neglect_weakens", + "condition": "放置により原本の盾弱体化が進む。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 156 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "放置により原本の盾弱体化が進む。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.observation_progress", + "condition": "観察部屋から原本のルート進行状態を確認できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 156 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "観察部屋から原本のルート進行状態を確認できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D08" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D08", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.rival_isolation", + "condition": "ライバルを物理的に隔離して進行を抑止できる。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 155 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "ライバルを物理的に隔離して進行を抑止できる。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [], + "value_contract": null, + "decision_dependencies": [], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.shield_cap_loss", + "condition": "原本の堕落進行で盾耐久値上限が減る。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 157 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "原本の堕落進行で盾耐久値上限が減る。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.talk_heal", + "condition": "会話で盾を回復する。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 155 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "会話で盾を回復する。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.underground_weakens", + "condition": "地下業務により原本の盾弱体化が進む。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 156 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "地下業務により原本の盾弱体化が進む。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + }, + { + "id": "AR.route_action.work_lust", + "condition": "地下業務によってLust値が増す。", + "scope": "feature_or_content", + "mandatory": true, + "equal_count_weight": 1, + "source_anchors": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 157 + ], + "sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "authority": "designated_original_saved_copy" + } + ], + "source_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a", + "user_amendment_refs": [], + "source_group_ids": [ + "B-7.5" + ], + "supplement_ids": [], + "entity": null, + "source_head": "285528b7a3b1b46a2a67af5aa90d9085539b42f4", + "primary_package": "P19", + "package": "P19", + "work_packages": [ + "P19", + "P26" + ], + "responsible_role": "実装担当・素材担当(機能別担当の割当は要再監査)", + "reviewer": { + "required_role": "実装者と独立した受入判定者", + "assigned": null, + "assignment_state": "unassigned" + }, + "normal_entry": "人物イベントと分岐", + "implementation_paths": [], + "save_contract": { + "state": "not_reaudited", + "requirement": "関連状態を保存/終了/再起動で維持し、旧版拒否時は原状を保持する。適用外は判定者が出典付きで判断する。" + }, + "applicable_completion_views": [ + "source_condition", + "definition", + "runtime", + "normal_ui", + "save_migration", + "boundary_verification", + "assets_platform", + "evidence" + ], + "applicability_state": "conservative_pending_review", + "view_results": { + "source_condition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "definition": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "runtime": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "normal_ui": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "save_migration": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "boundary_verification": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "assets_platform": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + }, + "evidence": { + "state": "unverified", + "implementation_state": "not_reaudited", + "evidence_refs": [], + "reviewer": null, + "not_applicable_reason": null + } + }, + "acceptance": { + "condition_assertion": "地下業務によってLust値が増す。", + "normal_operation": "指定通常入口から到達し条件の成立を現Runtimeと画面で照合する。", + "persistence": "関連状態の保存/終了/再起動と旧版・欠損・破損拒否を確認する。", + "boundaries": "条件の直前/一致/直後、停止/中断/重複、参照喪失の適用範囲を試験設計する。", + "source_and_assets": "同一採用版のソースSHA、必要完成素材、配布対象を関連づける。", + "evidence_policy": "旧群の状態と過去テスト件数から合格を転記しない。モデル試験、通常操作、Windows実機は区別する。" + }, + "evidence_refs": [], + "historical_evidence_refs": [], + "implementation_state": "not_reaudited", + "acceptance_state": "unverified", + "status": "unverified", + "pending_decision_ids": [ + "D04" + ], + "value_contract": null, + "decision_dependencies": [ + { + "decision_id": "D04", + "kind": "required_for_dependent_acceptance", + "must_not_block_independent_work": true + } + ], + "difference_state": "not_reaudited", + "asset_state": "not_reaudited", + "updated_at": "2026-10-02T01:14:19+09:00" + } + ] + }, + "docs/plans/original-completion-2026-10-02/work_packages.json": { + "sha256": "ab53442beab31ffcd186dd306a06ee0127d42dbfc7101a04c7152d9a0ff27aaf", + "base_commit": "8ca9263fee1ec4374d97c01fda82b95e1df6a977", + "records": [ + { + "id": "P18", + "phase": 4, + "title": "関係パラメータ・盾・確定遷移", + "depends_on": [ + "P03", + "P17" + ], + "size": "L", + "requirement_ids": [ + "B-7.1", + "B-7.2", + "B-7.3" + ], + "work": "原本の感情値と盾の非描写シミュレーションを専用モデルに分離。好感度と盾最大、軽減、接触、閾値、ルート固定を接続。既存の汎用関係値を黙って同義変換しない。", + "acceptance": "境界値・盾破壊前後・同配置/別配置・一度確定したルートの再読込を試験。操作と表示の値が一致し、旧セーブ移行の意味を説明できる。", + "decisions": [ + "D04", + "D07", + "D08" + ], + "state": "in_progress", + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "legacy_state": "planned", + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "current_summary": "原P18-01内のbackend P18-01-CODEは265ce30の実Opus独立review PASS、1338ソース/設定/marker/engine全一致で既存native7/1839/316parseを再利用し、通常integration/final PASS、main5f6bc11へ統合してRunner4/4 completed。全証拠と旧失敗を保持、重複native0。原P18-01は通常UIの3軸グラフ/盾表示、承認済み本番初期値、最終全回帰・whole独立受入・適用Windows条件が残りin_progress、原88の完了加点0。", + "remaining_deliverables": [ + { + "id": "P18-01", + "title": "関係モデルと保存", + "work": "原本の3値と盾を専用モデルへ接続し、旧関係値を保全する。", + "acceptance": "表示と状態が一致し、意味不明な値の一対一変換を行わない。", + "state": "in_progress", + "evidence": [ + { + "path": "docs/plans/original-completion-2026-10-02/execution/p24-02/upstream-audit-r01/audit.json", + "sha256_at_integration": "8dad65be88797faa1b2683f66924218591087f5419d589d21861e18dbc6eceef", + "scope": "Original line143 correction and current relationship/duel call-site audit; not acceptance", + "linked_at_jst": "2026-10-13T13:46:18.655711+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "docs/plans/original-completion-2026-10-02/execution/p18-01-contract-r01/opus-contract-decision-r01.json", + "sha256_at_integration": "e0b7094808385097fba664d9284d967a044d53fc8bd08e9d4a484f1f31d0032f", + "scope": "Actual Opus contract/model proposal only, action wait; no implementation acceptance", + "current_game_acceptance_inferred": false + }, + { + "path": "docs/plans/original-completion-2026-10-02/execution/p18-01-contract-r01/native-preflight-r01.json", + "sha256_at_integration": "43b66545d88a4ac8406911e27a40b448efd89863a2eb5ec2ca554ff2dead5fe9", + "scope": "Retained uncommitted actual native source1311/model+Runtime+legacy affected7/843; preliminary code evidence only, collector changed later requires exact final revalidation", + "current_game_acceptance_inferred": false + }, + { + "path": "docs/plans/original-completion-2026-10-02/execution/p18-01-contract-r01/submitted-native-r02.json", + "sha256_at_integration": "b4276df526b4e994eb0ad09ed783cbd3d9040879cfc139e34d8921f7d1989ac2", + "scope": "Exact0084760e native7/843 + parse308; not UI/unit acceptance", + "current_game_acceptance_inferred": false + }, + { + "path": "docs/plans/original-completion-2026-10-02/execution/p18-01-contract-r01/independent-opus-review-r01.json", + "sha256_at_integration": "bed152ea2d9839a90ee48c611834752a7089c89aabe4dec9e4f52ba68e47c4c0", + "scope": "Actual separate Opus review changes_requested; only P18-C-1 met", + "current_game_acceptance_inferred": false + }, + { + "path": "docs/plans/original-completion-2026-10-02/execution/p18-01-contract-r01/review-context-dependencies-r02.json", + "sha256_at_integration": "740d560af709c5367c364357cc347191235015922b6ed1980010988fe221b25f", + "scope": "No LLM/product changes: whole unchanged legacy state + complete remove/retire/despawn dependency context pinned; review guard348274<500000; findings unclosed", + "current_game_acceptance_inferred": false + } + ], + "updated_at_jst": "2026-10-15T23:21:55.733068+09:00", + "progress_summary": "原P18-01内のbackend P18-01-CODEは265ce30の実Opus独立review PASS、1338ソース/設定/marker/engine全一致で既存native7/1839/316parseを再利用し、通常integration/final PASS、main5f6bc11へ統合してRunner4/4 completed。全証拠と旧失敗を保持、重複native0。原P18-01は通常UIの3軸グラフ/盾表示、承認済み本番初期値、最終全回帰・whole独立受入・適用Windows条件が残りin_progress、原88の完了加点0。", + "remaining_gaps": [ + "original three-axis relationship graph and shield in normal UI with read-model equality", + "approved production initial values and required values", + "exact final full regression and whole-unit independent acceptance", + "applicable same-candidate Windows device acceptance" + ], + "current_execution": "execution/p18-01-resume-20261015/CURRENT_ACCEPTANCE_AUDIT.json", + "current_summary": "原P18-01内のbackend P18-01-CODEは265ce30の実Opus独立review PASS、1338ソース/設定/marker/engine全一致で既存native7/1839/316parseを再利用し、通常integration/final PASS、main5f6bc11へ統合してRunner4/4 completed。全証拠と旧失敗を保持、重複native0。原P18-01は通常UIの3軸グラフ/盾表示、承認済み本番初期値、最終全回帰・whole独立受入・適用Windows条件が残りin_progress、原88の完了加点0。", + "backend_completion": { + "reference": "execution/p18-01-resume-20261015/ROOT_BACKEND_FORMAL_COMPLETION_265_R02.json", + "runner_state": "completed", + "integration_commit": "5f6bc11d6bb6e92d22d787989b219fef3a435bc1", + "original_credit": 0 + } + }, + { + "id": "P18-02", + "title": "接触と境界", + "work": "同配置、別配置、軽減、盾上限、盾破壊、閾値を非描写状態遷移として接続する。", + "acceptance": "閾値前後と反復更新で効果が一回だけ適用される。", + "state": "planned", + "evidence": [] + }, + { + "id": "P18-03", + "title": "不可逆な分岐", + "work": "原本のルート確定と旧進行の扱いを保存・履歴へつなぐ。", + "acceptance": "確定後のロードでルートが逆転せず、未決状態を勝手に固定しない。", + "state": "planned", + "evidence": [] + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": {}, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "既存代表負荷の性能回帰を計測" + ], + "cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.", + "initial_revision_state": "planned", + "updated_at_jst": "2026-10-15T20:12:19.677704+09:00" + }, + { + "id": "P19", + "phase": 4, + "title": "イベント・決闘・行動・履歴基盤", + "depends_on": [ + "P18", + "P05" + ], + "size": "L", + "requirement_ids": [ + "B-7.1", + "B-7.4", + "B-7.5", + "B-7.6", + "B-11.3" + ], + "work": "原本の決闘種別、プレイヤー行動、結果、履歴、人物外見状態を非描写のデータ/遷移/画面として実装。専用カメラは証拠IDとイベント基盤を接続。内容制作はP26に分離。", + "acceptance": "各分岐が到達可能で勝敗/費用/盾/履歴を一度だけ反映。中断・対象離脱・取消・ロード後も矛盾なし。専用画面は中立テスト内容で操作を検証。", + "decisions": [ + "D04", + "D07", + "D08" + ], + "state": "in_progress", + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "legacy_state": "planned", + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "current_summary": "実Opus dc342e4が次に閉じる原成果P19-03を選定。元受入「7名×3ルート到達表・未制作は欠損」を維持し、既存成果を再利用する文書/検査器タスクを準備中。ゲーム実装/数値変更なし、原14/88で加算0。", + "remaining_deliverables": [ + { + "id": "P19-01", + "title": "人物行動と決闘", + "work": "原本の行動入口、3種決闘、勝敗、費用、結果を非描写イベントへ接続する。", + "acceptance": "通常入口から到達し、勝敗の盾・状態・台帳が一回だけ変化する。", + "state": "planned", + "evidence": [] + }, + { + "id": "P19-02", + "title": "観察と履歴", + "work": "専用観察画面、証拠ID、操作介入、対象状態、履歴を中立テスト内容でつなぐ。", + "acceptance": "対象不在、停止、取消、離脱、保存再開で参照と履歴が一致する。", + "state": "planned", + "evidence": [] + }, + { + "id": "P19-03", + "title": "分岐の到達性", + "work": "人物ごとの3ルートに必要なイベント・条件・中断処理を列挙する。", + "acceptance": "7名×3ルートの到達表があり、未制作内容は欠損として残る。", + "state": "in_progress", + "evidence": [ + { + "path": "docs/plans/original-completion-2026-10-02/execution/p19-03/TASK_SPEC.json", + "sha256": "263a01b943d8056727335fb76977c010298e1c229077f8da76e48683ba2e89bb", + "scope": "Actual Opus-selected original unit contract preparation; no acceptance credit" + } + ], + "current_summary": "実Opus dc342e4が次に閉じる原成果P19-03を選定。元受入「7名×3ルート到達表・未制作は欠損」を維持し、既存成果を再利用する文書/検査器タスクを準備中。ゲーム実装/数値変更なし、原14/88で加算0。", + "progress_summary": "全21セルの原本/実装/中断/保存/履歴/未制作を版付きで監査し、意味のある検査器・全原条件独立レビュー・通常integration/finalを経て初めて閉じる。", + "updated_at_jst": "2026-10-17T19:15:31.936524+09:00", + "current_execution": "docs/plans/original-completion-2026-10-02/execution/p19-03/TASK_SPEC.json", + "remaining_gaps": [ + "具体的21セルと検査器・必要確認・独立全条件レビュー・通常integration/final・台帳反映はこれから。", + "D08未確定/未制作は欠損として明示する。P19ゲーム実装や全ゲーム完成と混同しない。" + ] + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": {}, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存" + ], + "cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.", + "initial_revision_state": "planned", + "updated_at_jst": "2026-10-17T19:15:31.936524+09:00" + }, + { + "id": "P20", + "phase": 5, + "title": "ランク・信仰・物語進行", + "depends_on": [ + "P05", + "P11", + "P15", + "P19" + ], + "size": "L", + "requirement_ids": [ + "B-1.1", + "B-1.2", + "B-1.3", + "B-1.4", + "B-1.5", + "B-6.4", + "B-6.5", + "B-8.1", + "B-8.5" + ], + "work": "信仰/評判/裏影響、ランク条件、施設/方針/スキル解放、章とエンドを接続。条件評価APIだけでは進行完了としない。 図鑑一覧・発見・登録・閲覧・保存・コンプリート判定を接続する。", + "acceptance": "デバッグで条件値を直接書き込まず新規ゲームから最終ランクと本編終点へ到達。条件未達の理由が画面で分かり、分岐復元が一致。", + "decisions": [ + "D04", + "D08" + ], + "state": "in_progress", + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "legacy_state": "planned", + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "current_summary": "ランク表示等の部分実装あり。現1273の全168回帰合格は全章・全エンド・図鑑の通常到達/内容catalog受入を意味しない。D08を捏造せず最終分母NULLを維持。", + "remaining_deliverables": [ + { + "id": "P20-01", + "title": "ランクと解放", + "work": "信仰・評判・裏影響、ランク条件、領域、施設レベル、Policy、スキル解放を接続する。", + "acceptance": "通常営業から条件を達成でき、未達理由を表示する。", + "state": "planned", + "evidence": [] + }, + { + "id": "P20-02", + "title": "章と全エンド", + "work": "物語の開始、章、人物進行、最終ランク、終点を通常操作へ接続する。", + "acceptance": "条件値を直接注入せず新規から本編終点へ到達し、各エンドを保存再開できる。", + "state": "planned", + "evidence": [] + }, + { + "id": "P20-03", + "title": "図鑑の完成", + "work": "対象一覧、発見・登録条件、閲覧、達成状況、保存、コンプリート判定を実装する。", + "acceptance": "図鑑コンプを通常到達で検証し、本編クリアと全要素クリアを区別する。", + "state": "planned", + "evidence": [ + { + "path": "artifacts/original-completion-2026-10-02/canonical-full170-actual-root-review-r01/review.json", + "sha256_at_integration": "302a782d7d5597aa7f1ffefe8b24b2b8ca2c762f29323dc769e85ea13fd57605", + "scope": "Actual168 suites/13567 checks/170 native; Root1989 evidence controls/0; no whole original/nativeWindows/P28 acceptance", + "linked_at_jst": "2026-10-02T20:20:56.571408+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/audio-path-canonical72-adoption-root-r01/adoption.json", + "sha256_at_integration": "87dc7a1461d92f15fd0b51fc3015a0add39f8c373855de83460ca433cb4ec43c", + "scope": "Actual limited72: public71 plus outsidecollector1; production1273; private startup2 adopted0", + "linked_at_jst": "2026-10-02T20:20:56.571408+09:00", + "current_game_acceptance_inferred": false + }, + { + "path": "artifacts/original-completion-2026-10-02/audio-path-canonical72-post-adoption-root-review-r02/review.json", + "sha256_at_integration": "261cb8d8f4ff3838af23f2cb852eadba411a55852436a3b0e8a8bba55c75046a", + "scope": "Post117/0: all1273 path/SHA map exact; rawJSON serializationSHA differs, semantic map equality proved", + "linked_at_jst": "2026-10-02T20:20:56.571408+09:00", + "current_game_acceptance_inferred": false + } + ], + "progress_summary": "ランク表示等の部分実装あり。現1273の全168回帰合格は全章・全エンド・図鑑の通常到達/内容catalog受入を意味しない。D08を捏造せず最終分母NULLを維持。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "status": "Partial: rank HUD, conditions and promotion command UI implemented; broader package remains open", + "rank_ui_evidence": "execution/WORLD_TREE_RANK_UI.md", + "rank_ui_validation": { + "native_checks": 23, + "failures": 0, + "make_check_exit_code": 0, + "natural_campaign_completion": false, + "windows_same_build_verified": false, + "viewport_input": { + "native_checks": 12, + "headless_checks": 11, + "failures": 0, + "evidence": "artifacts/facility-dimensions-2026-09-29/rank-pointer-validation.json" + } + } + }, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "初期/中盤/終盤に対応するプレイ試行で収支・操作・到達性を確認" + ], + "cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.", + "initial_revision_state": "in_progress" + }, + { + "id": "P26", + "phase": 5, + "title": "シナリオ・立ち絵・内容資産の制作受入", + "depends_on": [ + "P19", + "P20", + "P22" + ], + "size": "L", + "requirement_ids": [ + "B-1.1", + "B-1.5", + "B-1.6", + "B-7.5", + "B-7.6", + "B-12.1", + "B-12.3", + "B-13.1", + "B-13.5" + ], + "work": "全章・人物別ルート・終点・台詞・立ち絵・音声を台帳で制作/接続/受入。成人向け内容は表現仕様と制作可否を別途確認し、今回は非露骨な構造・資産管理・分岐検証のみ計画対象とする。", + "acceptance": "仮素材や未制作の場面を完了扱いしない。全必要分岐と資産の欠損を一覧化。制作できない内容は原本との差分として残し、全実装完了を宣言しない。", + "decisions": [ + "D08", + "D09" + ], + "state": "planned", + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "P22/P26で制作担当を確定" + }, + "legacy_state": "planned", + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "current_summary": "全章・人物別内容と完成資産の制作受入は未着手。", + "remaining_deliverables": [ + { + "id": "P26-01", + "title": "全必要内容の台帳", + "work": "全章、7名の3ルート、全エンド、台詞、立ち絵、音声の必要枠と条件を確定する。", + "acceptance": "原本で要求された未制作内容を欠損として記録し、架空の完成数を置かない。", + "state": "planned", + "evidence": [] + }, + { + "id": "P26-02", + "title": "内容と状態の接続", + "work": "制作可能な非露骨内容をイベント・章・閲覧・人物状態へ接続し、仮素材を区別する。", + "acceptance": "全必要分岐に内容IDがあり、欠損と未制作をスキップPASSしない。", + "state": "planned", + "evidence": [] + }, + { + "id": "P26-03", + "title": "制作受入と差異", + "work": "完成内容の品質、権利、表示、保存と原本との差異を受入する。", + "acceptance": "原本必須内容の未制作が残る場合は原本全実装未完として報告する。", + "state": "planned", + "evidence": [] + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": {}, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存" + ], + "cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.", + "initial_revision_state": "planned" + } + ] + }, + "docs/plans/original-completion-2026-10-02/decisions.json": { + "sha256": "ad0673051b0fa601e525f05128e0b11e2dddd9d4bae6a3e0170bbf47da35efe9", + "base_commit": "8ca9263fee1ec4374d97c01fda82b95e1df6a977", + "records": { + "confirmed": [ + { + "id": "A01", + "title": "維持費の計上", + "decision": "完成から撤去までの保有時間で日額按分。閉店・休止中も計上し00:00に精算。不足を翌日へ繰越。", + "origin": "user_reply", + "reference": "../original-completion-2026-09-29/execution/UPKEEP_IMPLEMENTATION.md" + }, + { + "id": "A02", + "title": "維持費の初期試験値", + "decision": "建築費の0.5%/日を初期試験値として試験・調整する。既存の整数処理を保ち、礼拝堂・清掃員室は個別承認値を使う。", + "origin": "user_reply", + "reference": "../original-completion-2026-09-29/execution/UPKEEP_IMPLEMENTATION.md" + }, + { + "id": "A03", + "title": "アンリの加入と売上補正", + "decision": "従業員画面で無料加入を選ぶ。配置フロアの利用料金を20%増やし客の支払額と施設収入を一致させる。", + "origin": "user_reply", + "reference": "../original-completion-2026-09-29/execution/ANRI_APPROVED_INTEGRATION.md" + }, + { + "id": "A04", + "title": "礼拝堂の初期試験値", + "decision": "4×3・表層。建築1200G、資材12、工期180分、同時8人、聖職者最低1人/上限2人、礼拝60分、寄付20G、完了時信仰+1、維持費6G/日。", + "origin": "user_reply_in_conversation" + }, + { + "id": "A05", + "title": "清掃員室と清掃の初期試験値", + "decision": "2×1・裏層。建築350G、資材4、工期60分、清掃員最低1人/上限2人、顧客0人・利用料なし、維持費2G/日。清潔0〜100・初期100、75以下で予約、現地8分で25回復。定義済み汚れ量を使い未定義値を補完しない。", + "origin": "user_reply", + "reference": "../original-completion-2026-09-29/execution/CLEANING_APPROVED_FOUNDATION.md" + } + ], + "pending": [ + { + "id": "D01", + "title": "欲求一致加算の必須値", + "details": "不足基準、加算額/率、施設の属性割当。複数属性・重複加算は採用しない限り明示未設定を維持。", + "needed_at": "P09の本番課金", + "independent_work": "計算契約、未設定表示、非一致利用、財布・台帳の試験枠を進める。", + "kind": "required_before_dependent_charging" + }, + { + "id": "D02", + "title": "施設別の人数と従業員上限", + "details": "原本や個別承認にない人数専用上限、staff_max、Lv別変更を整理。capacityから推測転記しない。", + "needed_at": "各施設の通常営業", + "independent_work": "明示値がある施設から進め、未設定の一覧と超過拒否を作る。", + "kind": "required_per_facility" + }, + { + "id": "D03", + "title": "休止復帰と複数関連施設", + "details": "休止復帰条件と複数関連施設AND/ORはユーザー指定により未設定。解除なし・単一依存の現仕様を維持。", + "needed_at": "新たな復帰/複数条件を追加する場合", + "independent_work": "現仕様を接続して試験する。回答待ちで現実装を止めない。", + "kind": "explicitly_unset_optional_extension" + }, + { + "id": "D04", + "title": "未指定の経済と行動係数", + "details": "税・利息・マナ・天候・環境・役割・成長等の必須値。A01〜A05は決定済み。", + "needed_at": "各機能の本番値固定", + "independent_work": "原本明示値、契約、候補比較を先行する。", + "kind": "required_per_feature" + }, + { + "id": "D05", + "title": "同時発生と安全処理", + "details": "EV/搬送停止、費用時点、日跨ぎ順序の未確定部分。承認済み維持費時点を再確認しない。", + "needed_at": "更新規約の凍結", + "independent_work": "原状保持と重複防止、具体的な境界事例を作る。", + "kind": "implementation_contract" + }, + { + "id": "D06", + "title": "解消不能な旧配置の移行", + "details": "占有衝突や移動中の状態の扱い。旧セーブの拒否時原状保持は必須。", + "needed_at": "旧配置に不可逆な変更を適用する前", + "independent_work": "読み取り移行プレビュー、バックアップ、拒否時の復帰を進める。", + "kind": "required_only_for_ambiguous_conversion" + }, + { + "id": "D07", + "title": "旧関係値と人物進行の意味", + "details": "旧5値と原本3値の意味対応、既存ルートの扱い。", + "needed_at": "旧進行の変換", + "independent_work": "旧値を保全し、新規ゲームの原本モデルを実装する。", + "kind": "required_only_for_ambiguous_conversion" + }, + { + "id": "D08", + "title": "章とルートと必要内容", + "details": "章、人物ごとの分岐、全エンド、図鑑対象、未制作内容の範囲。", + "needed_at": "内容の凍結と最終受入", + "independent_work": "非露骨な状態・分岐・中立テストで構造を検証する。未制作は原本差異として残す。", + "kind": "content_scope" + }, + { + "id": "D09", + "title": "素材品質と制作量", + "details": "完成素材の品質、必要量、担当、予算、権利。The Towerの提供ファイルは体験の参考とする。", + "needed_at": "完成素材受入や発注", + "independent_work": "Kenney優先の調査、ライセンス台帳、差替契約、既存資産の確認を進める。", + "kind": "asset_delivery" + }, + { + "id": "D10", + "title": "Windowsの性能と評価環境", + "details": "対象機スペック、表示倍率、解像度、描画目標、評価担当。", + "needed_at": "Windowsでの性能合否", + "independent_work": "利用できる対象機を記録し、機能検証と手元の実測を進める。", + "kind": "platform_acceptance" + } + ] + } + } + }, + "catalog_evidence": { + "path": "data/characters/mvp_unique_characters.json", + "sha256": "bf83872ae9bacedf4b1d48a8b1eb28479f3c33416303dbbe8ba11b6466c0dde4", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 1, + 32 + ], + "text": "{\n \"schema_version\": 1,\n \"content_type\": \"unique_characters\",\n \"entries\": [\n {\n \"id\": \"heroine_anri\",\n \"display_name\": \"アンリ\",\n \"character_kind\": \"heroine\",\n \"age\": 25,\n \"adult_verified\": true,\n \"role_id\": \"innkeeper\",\n \"counterpart_id\": \"rival_rai\",\n \"preferred_shift\": \"day\",\n \"traits\": [\"friendly\", \"unique\", \"unsellable\"],\n \"skills\": {\"combat\": 24, \"operation\": 66, \"service\": 82, \"underworld\": 18},\n \"mechanical_effects\": {\"assigned_floor_revenue_multiplier_bp\": 12000}\n },\n {\n \"id\": \"rival_rai\",\n \"display_name\": \"ライ\",\n \"character_kind\": \"rival\",\n \"age\": 29,\n \"adult_verified\": true,\n \"role_id\": \"influencer\",\n \"counterpart_id\": \"heroine_anri\",\n \"preferred_shift\": \"night\",\n \"traits\": [\"diplomatic\", \"unique\", \"unsellable\"],\n \"skills\": {\"combat\": 45, \"operation\": 38, \"service\": 72, \"underworld\": 68},\n \"mechanical_effects\": {\"base_shield_attack\": 8, \"night_shield_attack_bonus\": 4}\n }\n ]\n}" + }, + "pending": { + "D05": "pending", + "D08": "pending", + "thresholds": null, + "rates": null, + "initial_values": null + }, + "route_support": { + "純愛": { + "UI": "欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。", + "Runtime": "partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。", + "save": "partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。", + "Windows": "未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。", + "evidence_refs": [ + "legacy_event_ui", + "identity_registration", + "snapshot_container", + "state_fields" + ], + "missing_mechanisms": [ + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break", + "threshold_route_loss", + "duel_types", + "duel_win", + "duel_loss", + "love_actions", + "ntr_actions", + "corruption_actions", + "history_fields", + "history_cycle_parentage", + "portrait_marks", + "route_skills", + "departure" + ] + }, + "NTR": { + "UI": "欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。", + "Runtime": "partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。", + "save": "partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。", + "Windows": "未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。", + "evidence_refs": [ + "legacy_event_ui", + "identity_registration", + "snapshot_container", + "state_fields" + ], + "missing_mechanisms": [ + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break", + "threshold_route_loss", + "duel_types", + "duel_win", + "duel_loss", + "love_actions", + "ntr_actions", + "corruption_actions", + "history_fields", + "history_cycle_parentage", + "portrait_marks", + "route_skills", + "departure" + ] + }, + "堕落": { + "UI": "欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。", + "Runtime": "partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。", + "save": "partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。", + "Windows": "未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。", + "evidence_refs": [ + "legacy_event_ui", + "identity_registration", + "snapshot_container", + "state_fields" + ], + "missing_mechanisms": [ + "defense_reduction", + "post_break_metric", + "barrier_block", + "coassignment_attack", + "zero_break", + "contact_after_break", + "threshold_route_loss", + "duel_types", + "duel_win", + "duel_loss", + "love_actions", + "ntr_actions", + "corruption_actions", + "history_fields", + "history_cycle_parentage", + "portrait_marks", + "route_skills", + "departure" + ] + } + }, + "acceptance": "7名×3ルートの到達表があり、未制作内容は欠損として残る。", + "accounting": "14/88 unchanged; formal Runner validation, independent whole-unit Opus review and normal integration/final required; no game acceptance" +} diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md new file mode 100644 index 0000000..aa29d36 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md @@ -0,0 +1,631 @@ +# P19-03 到達表 + +7名×3ルートの到達表があり、未制作内容は欠損として残る。 + +原本§6の名前とatomic entity.keyを監査IDに使用。実装IDを捏造しない。カタログにはheroine_anriのみ。OriginalRelationshipStateはsubject_idを保持し7名の列挙はしない。 + +共通原本ルールと人物固有欠損を分離する。implementedは狭い保持処理だけで、自然ルート完成ではない。 + +|人物ID|原名|ルート|現在の到達性| +|---|---|---|---| +|anri|アンリ|純愛|欠損・通常到達未証明| +|anri|アンリ|NTR|欠損・通常到達未証明| +|anri|アンリ|堕落|欠損・通常到達未証明| +|fine|フィーネ|純愛|欠損・通常到達未証明| +|fine|フィーネ|NTR|欠損・通常到達未証明| +|fine|フィーネ|堕落|欠損・通常到達未証明| +|tomari|トマリ|純愛|欠損・通常到達未証明| +|tomari|トマリ|NTR|欠損・通常到達未証明| +|tomari|トマリ|堕落|欠損・通常到達未証明| +|amelia|アメリア|純愛|欠損・通常到達未証明| +|amelia|アメリア|NTR|欠損・通常到達未証明| +|amelia|アメリア|堕落|欠損・通常到達未証明| +|liz|リズ|純愛|欠損・通常到達未証明| +|liz|リズ|NTR|欠損・通常到達未証明| +|liz|リズ|堕落|欠損・通常到達未証明| +|mimi|ミミ|純愛|欠損・通常到達未証明| +|mimi|ミミ|NTR|欠損・通常到達未証明| +|mimi|ミミ|堕落|欠損・通常到達未証明| +|satsuki|サツキ|純愛|欠損・通常到達未証明| +|satsuki|サツキ|NTR|欠損・通常到達未証明| +|satsuki|サツキ|堕落|欠損・通常到達未証明| + +## 共通原本ルール + +### state_fields + +implemented / owner: P18-01 + +原本3値と盾の明示値の検証・保持のみ。初期値と更新方針は未定。 + +原本 docs/traceability/original/BASELINE.txt:138–143 + +```text +3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。 +## 7.2 感情パラメータと「愛の盾」 + * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。 + * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。 + * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。 + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [4, 34], "path": "scripts/relationship/original_relationship_state.gd", "sha256": "d1bfabfd205becf6d3cf1d6b6c477393319b26b0e7504fd227c3714761101616", "text": "## Explicit facts only. Numeric values are not production initialization approval.\n## No update, attack, reduction, threshold or route policy is defined here.\nconst FIELDS := [\"subject_id\", \"protagonist_id\", \"rival_id\", \"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]\nvar _payload: Dictionary = {}\n\n\nstatic func from_snapshot(value: Variant) -> OriginalRelationshipState:\n\tif not value is Dictionary or value.size() != FIELDS.size():\n\t\treturn null\n\tfor field: String in FIELDS:\n\t\tif not value.has(field):\n\t\t\treturn null\n\tfor field: String in [\"subject_id\", \"protagonist_id\", \"rival_id\"]:\n\t\tif not (value[field] is String or value[field] is StringName) or String(value[field]).is_empty():\n\t\t\treturn null\n\tif value[\"subject_id\"] == value[\"protagonist_id\"] or value[\"subject_id\"] == value[\"rival_id\"] or value[\"protagonist_id\"] == value[\"rival_id\"]:\n\t\treturn null\n\tfor field: String in [\"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]:\n\t\tif not (value[field] is int or value[field] is float):\n\t\t\treturn null\n\t\tif value[field] is float and not is_finite(value[field]):\n\t\t\treturn null\n\tif value[\"shield_max\"] != value[\"affection\"] or value[\"shield_current\"] < 0 or value[\"shield_current\"] > value[\"shield_max\"]:\n\t\treturn null\n\tvar state := OriginalRelationshipState.new()\n\tstate._payload = value.duplicate(true)\n\treturn state\n\n\nfunc create_snapshot() -> Dictionary:\n\treturn _payload.duplicate(true)"} + +### affection_max_invariant + +partial / owner: P18-01 + +入力時の最大値一致検証のみ。通常操作の回復・更新は欠損。 + +原本 docs/traceability/original/BASELINE.txt:140–140 + +```text + * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。 +``` + +実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [20, 30], "path": "scripts/relationship/original_relationship_state.gd", "sha256": "d1bfabfd205becf6d3cf1d6b6c477393319b26b0e7504fd227c3714761101616", "text": "\t\treturn null\n\tfor field: String in [\"affection\", \"lust\", \"netorare\", \"shield_current\", \"shield_max\"]:\n\t\tif not (value[field] is int or value[field] is float):\n\t\t\treturn null\n\t\tif value[field] is float and not is_finite(value[field]):\n\t\t\treturn null\n\tif value[\"shield_max\"] != value[\"affection\"] or value[\"shield_current\"] < 0 or value[\"shield_current\"] > value[\"shield_max\"]:\n\t\treturn null\n\tvar state := OriginalRelationshipState.new()\n\tstate._payload = value.duplicate(true)\n\treturn state"} + +### snapshot_container + +partial / owner: P18-01 + +専用状態と旧値の分離保存・復元。人物別ルート進行保存を意味しない。 + +原本 docs/traceability/original/BASELINE.txt:138–143 + +```text +3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。 +## 7.2 感情パラメータと「愛の盾」 + * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。 + * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。 + * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。 + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [423, 479], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "\t\tlegacy[&\"threshold_candidates\"] = current_candidates\n\tlegacy[&\"next_candidate_sequence\"] = _next_candidate_sequence\n\tvar result := _container_raw.duplicate(true)\n\tresult[&\"version\"] = SNAPSHOT_VERSION\n\tresult[&\"legacy\"] = legacy\n\t# Compatibility projection for existing snapshot consumers; the nested v1\n\t# record remains lossless, including extension names reserved by v2.\n\tif result.get(&\"relationships\") != relationships:\n\t\tresult[&\"relationships\"] = relationships.duplicate(true)\n\tvar originals: Array[Dictionary] = []\n\tfor payload: Dictionary in _original_records.values():\n\t\toriginals.append(payload.duplicate(true))\n\tif result.get(&\"original_relationships\") != originals:\n\t\tresult[&\"original_relationships\"] = originals\n\treturn result\n\n\nstatic func _merge_legacy_changes(raw: Dictionary, baseline: Dictionary, current: Dictionary) -> Dictionary:\n\tvar result := raw.duplicate(true)\n\tfor key: Variant in baseline:\n\t\tif not current.has(key):\n\t\t\tresult.erase(key)\n\tfor key: Variant in current:\n\t\tif baseline.has(key) and current[key] == baseline[key]:\n\t\t\tcontinue\n\t\tif current[key] is Dictionary and baseline.get(key) is Dictionary and result.get(key) is Dictionary:\n\t\t\tresult[key] = _merge_legacy_changes(result[key], baseline[key], current[key])\n\t\telse:\n\t\t\tresult[key] = current[key]\n\treturn result\n\n\nfunc restore_snapshot(snapshot: Dictionary) -> bool:\n\tvar version: Variant = _value(snapshot, &\"version\", null)\n\tif not version is int or version not in [1, SNAPSHOT_VERSION]:\n\t\tlast_error = \"Unsupported Relationship snapshot version.\"\n\t\treturn false\n\tvar legacy: Variant = snapshot if version == 1 else _value(snapshot, &\"legacy\", null)\n\tvar originals: Variant = [] if version == 1 else _value(snapshot, &\"original_relationships\", null)\n\tif not legacy is Dictionary or not originals is Array:\n\t\tlast_error = \"Malformed Relationship snapshot container.\"\n\t\treturn false\n\tif version == SNAPSHOT_VERSION and _value(snapshot, &\"relationships\", null) != _value(legacy, &\"relationships\", null):\n\t\tlast_error = \"Legacy compatibility projection disagrees with its source.\"\n\t\treturn false\n\tvar original_records: Dictionary = {}\n\tfor raw: Variant in originals:\n\t\tvar state := OriginalStateType.from_snapshot(raw)\n\t\tif state == null or original_records.has(state.subject_id()):\n\t\t\tlast_error = \"Invalid or duplicate original relationship.\"\n\t\t\treturn false\n\t\tif not _original_identity_validator.is_valid() or not bool(_original_identity_validator.call(state.create_snapshot())):\n\t\t\tlast_error = \"Invalid original relationship identity reference.\"\n\t\t\treturn false\n\t\toriginal_records[state.subject_id()] = state.create_snapshot()\n\tvar parsed := _parse_snapshot(legacy)\n\tif not bool(parsed.get(&\"ok\", false)):"} + +### identity_registration + +partial / owner: P19-01 + +Runtimeは登録済み人物・相互対応を検証。既存カタログのヒロインはアンリのみ。通常ルート入口ではない。 + +原本 docs/traceability/original/BASELINE.txt:138–138 + +```text +3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。 +``` + +実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [6791, 6812], "path": "autoload/simulation_runtime.gd", "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", "text": "func _original_relationship_identities_valid(payload: Dictionary, staff_registry: StaffService, catalog: MvpContentCatalog) -> bool:\n\tif payload.get(\"protagonist_id\") != \"player\" or staff_registry == null:\n\t\treturn false\n\tvar subject := StringName(payload.get(\"subject_id\", \"\"))\n\tvar rival := StringName(payload.get(\"rival_id\", \"\"))\n\tif subject == &\"player\" or rival == &\"player\" or subject == rival or not staff_registry.has_staff(subject):\n\t\treturn false\n\tvar heroine_definition := catalog.get_entry(&\"unique_characters\", subject)\n\tvar rival_definition := catalog.get_entry(&\"unique_characters\", rival)\n\tvar subject_staff := staff_registry.get_staff(subject)\n\treturn subject_staff.employment_kind == StaffRuntime.EmploymentKind.UNIQUE \\\n\t\tand heroine_definition.get(&\"role_id\") == String(subject_staff.role_id) \\\n\t\tand heroine_definition.get(&\"character_kind\") == \"heroine\" \\\n\t\tand rival_definition.get(&\"character_kind\") == \"rival\" \\\n\t\tand heroine_definition.get(&\"counterpart_id\") == String(rival) \\\n\t\tand rival_definition.get(&\"counterpart_id\") == String(subject)\n\n\nfunc _execute_register_original_relationship(command: SimulationCommand) -> CommandResult:\n\tvar result := relationship_service.register_original_relationship(command.payload)\n\tresult.command_id = command.command_id\n\treturn result"} + +### legacy_event_ui + +partial / owner: P19-01 + +既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。 + +原本 docs/traceability/original/BASELINE.txt:154–157 + +```text +## 7.5 ルート攻略とプレイヤーアクション + * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。 + * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。 + * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 +``` + +実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [89, 101], "path": "scenes/main/main.gd", "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", "text": "\t&\"NOT_UNDERGROUND\": \"地下のマスだけ掘削できます\",\n\t&\"ALREADY_EXCAVATED\": \"すでに掘削済みです\",\n\t&\"ALREADY_RESERVED\": \"このマスは掘削中です\",\n\t&\"NO_EXCAVATED_NEIGHBOR\": \"掘削済みの隣接マスから延ばしてください\",\n\t&\"NO_ENTRANCE_CONNECTION\": \"地上入口までつながる経路がありません\",\n\t&\"SUPPORT_REQUIRED\": \"硬い地盤を支える補強施設が必要です\",\n\t&\"INSUFFICIENT_RESOURCES\": \"掘削資源が不足しています\",\n\t&\"MISSING_DEPENDENCY\": \"掘削システムを利用できません\",\n}\nconst EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}"} + +### defense_reduction + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:141–141 + +```text + * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。 +``` + +実装証拠: "not implemented" + +### post_break_metric + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:142–143 + +```text + * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。 + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: "not implemented" + +### barrier_block + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:143–143 + +```text + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: "not implemented" + +### coassignment_attack + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:145–145 + +```text + 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。 +``` + +実装証拠: "not implemented" + +### zero_break + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:146–146 + +```text + 2. **ブレイク:** 耐久値0で「心の隙間」発生。 +``` + +実装証拠: "not implemented" + +### contact_after_break + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:147–147 + +```text + 3. **NTR進行:** ライバル接触で直接NTR度が上昇。 +``` + +実装証拠: "not implemented" + +### threshold_route_loss + +missing / owner: P18-03 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:148–148 + +```text + 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。 +``` + +実装証拠: "not implemented" + +### duel_types + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:150–151 + +```text +NTR阻止のための直接的解決手段。 + * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。 +``` + +実装証拠: "not implemented" + +### duel_win + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:152–152 + +```text + * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。 +``` + +実装証拠: "not implemented" + +### duel_loss + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:153–153 + +```text + * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。 +``` + +実装証拠: "not implemented" + +### love_actions + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:155–155 + +```text + * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。 +``` + +実装証拠: "not implemented" + +### ntr_actions + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:156–156 + +```text + * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。 +``` + +実装証拠: "not implemented" + +### corruption_actions + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:157–157 + +```text + * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 +``` + +実装証拠: "not implemented" + +### history_fields + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:159–159 + +```text + * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。 +``` + +実装証拠: "not implemented" + +### history_cycle_parentage + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:160–160 + +```text + * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。 +``` + +実装証拠: "not implemented" + +### portrait_marks + +missing / owner: P26-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:161–161 + +```text + * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。 +``` + +実装証拠: "not implemented" + +### route_skills + +missing / owner: P20-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:132–132 + +```text + * **ルート変化:** 純愛/堕落などの進行度で習得するスキルが変化する。 +``` + +実装証拠: "not implemented" + +### departure + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:135–135 + +```text + * **離脱:** 原則ロストしないが、防衛戦敗北での一時拉致や、特定バッドエンド確定時にのみ敵や背景オブジェクト化する。 +``` + +実装証拠: "not implemented" + +## anri / アンリ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [118, 118] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] + +## anri / アンリ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [118, 118] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] + +## anri / アンリ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [118, 118] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] + +## fine / フィーネ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [119, 119] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] + +## fine / フィーネ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [119, 119] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] + +## fine / フィーネ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [119, 119] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] + +## tomari / トマリ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [120, 120] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] + +## tomari / トマリ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [120, 120] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] + +## tomari / トマリ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [120, 120] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] + +## amelia / アメリア / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [121, 121] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] + +## amelia / アメリア / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [121, 121] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] + +## amelia / アメリア / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [121, 121] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] + +## liz / リズ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [122, 122] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] + +## liz / リズ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [122, 122] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] + +## liz / リズ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [122, 122] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] + +## mimi / ミミ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [123, 123] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] + +## mimi / ミミ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [123, 123] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] + +## mimi / ミミ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [123, 123] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] + +## satsuki / サツキ / 純愛 + +- entry_required_events: 共通 [identity_registration, love_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [124, 124] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] +- route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] + +## satsuki / サツキ / NTR + +- entry_required_events: 共通 [identity_registration, ntr_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [124, 124] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] +- route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] + +## satsuki / サツキ / 堕落 + +- entry_required_events: 共通 [identity_registration, corruption_actions] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-01 / 原本 [138, 161]・人物 [124, 124] +- state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] +- duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] +- route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] + +## ルート別適用性 + +### 純愛 + +- UI: 欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。 +- Runtime: partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。 +- save: partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。 +- Windows: 未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。 +- 欠損機構: defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break, threshold_route_loss, duel_types, duel_win, duel_loss, love_actions, ntr_actions, corruption_actions, history_fields, history_cycle_parentage, portrait_marks, route_skills, departure + +### NTR + +- UI: 欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。 +- Runtime: partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。 +- save: partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。 +- Windows: 未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。 +- 欠損機構: defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break, threshold_route_loss, duel_types, duel_win, duel_loss, love_actions, ntr_actions, corruption_actions, history_fields, history_cycle_parentage, portrait_marks, route_skills, departure + +### 堕落 + +- UI: 欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。 +- Runtime: partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。 +- save: partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。 +- Windows: 未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。 +- 欠損機構: defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break, threshold_route_loss, duel_types, duel_win, duel_loss, love_actions, ntr_actions, corruption_actions, history_fields, history_cycle_parentage, portrait_marks, route_skills, departure + +D05/D08、閾値・率・初期値はpending。完全な出典本文・SHA・原子要件全レコードはJSONに保持する。 + +14/88 unchanged; formal Runner validation, independent whole-unit Opus review and normal integration/final required; no game acceptance diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py b/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py new file mode 100644 index 0000000..08d1535 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py @@ -0,0 +1,262 @@ +#!/usr/bin/env python3 +"""Read-only, stdlib P19-03 documentation validator; never accepts gameplay.""" +import argparse +import hashlib +import json +from pathlib import Path +import subprocess +import sys + +OUT = 'docs/plans/original-completion-2026-10-02/execution/p19-03/' +PLAN = 'docs/plans/original-completion-2026-10-02/' +BASELINE = 'docs/traceability/original/BASELINE.txt' +ANCHOR = '1b07b87d3736e777932315a4bdde8b70cbf9cb23' +BASE = '8ca9263fee1ec4374d97c01fda82b95e1df6a977' +BASE_HASH = '75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a' +SPEC_HASH = '263a01b943d8056727335fb76977c010298e1c229077f8da76e48683ba2e89bb' +PINS_HASH = '6c778226a4cc6d0b0d682500759e7d4229c926a27bd2e247b00b9c3e5f1a2fb0' +ROUTES = {'love': '純愛', 'ntr': 'NTR', 'corruption': '堕落'} +PEOPLE = [('anri', 'アンリ'), ('fine', 'フィーネ'), ('tomari', 'トマリ'), + ('amelia', 'アメリア'), ('liz', 'リズ'), ('mimi', 'ミミ'), ('satsuki', 'サツキ')] +CATEGORIES = ('entry_required_events', 'state_conditions', 'duel_effects', + 'route_selection_effects', 'interruption_cancellation', 'save_handling', + 'history_marks', 'current_reachability') +STATE = 'scripts/relationship/original_relationship_state.gd' +SERVICE = 'scripts/relationship/relationship_service.gd' +RUNTIME = 'autoload/simulation_runtime.gd' +CATALOG = 'data/characters/mvp_unique_characters.json' + + +def sha(data): + return hashlib.sha256(data).hexdigest() + + +def require(value, message): + if not value: + raise ValueError(message) + + +def decode(data): + def unique(pairs): + result = {} + for k, v in pairs: + require(k not in result, 'duplicate JSON key: ' + k) + result[k] = v + return result + return json.loads(data, object_pairs_hook=unique, + parse_constant=lambda s: (_ for _ in ()).throw(ValueError(s))) + + +def blob(root, commit, path): + return subprocess.check_output(['git', 'show', commit + ':' + path], cwd=root) + + +def selection(root): + paths = [p for folder in ('autoload', 'scripts', 'scenes', 'data', 'tests', 'assets', 'tools') + for p in (root / folder).rglob('*') + if p.is_file() and p.name != '.DS_Store' and '__pycache__' not in p.parts] + paths += [root / p for p in ('project.godot', 'export_presets.cfg', 'Makefile', 'AGENTS.md')] + require(all(not p.is_symlink() for p in paths), 'selected source aliases refused') + return {p.relative_to(root).as_posix(): {'bytes': p.stat().st_size, 'sha256': sha(p.read_bytes())} + for p in sorted(paths)} + + +def binding(root): + raw = lambda p: (root / p).read_bytes() + require(sha(raw(OUT + 'TASK_SPEC.json')) == SPEC_HASH, 'immutable spec changed') + spec = decode(raw(OUT + 'TASK_SPEC.json')) + require(sha(raw(OUT + 'FROZEN_GAME_INPUT_PINS.json')) == spec['frozen_game_input_pins_sha256'] == PINS_HASH, + 'frozen pins SHA differs from immutable spec') + pins = decode(raw(OUT + 'FROZEN_GAME_INPUT_PINS.json')) + require(pins['audited_game_source_anchor_commit'] == spec['audit_source_anchor'] == ANCHOR, 'anchor identity') + actual = selection(root) + require(actual == pins['source_files'], 'full selected-source map: missing/new/changed file') + for key in ('marker_contract', 'policy', 'engine'): + require(sha(Path(pins[key + '_path']).read_bytes() if key == 'engine' else raw(pins[key + '_path'])) + == pins[key + '_sha256'], key + ' identity') + require(sha(raw(BASELINE)) == pins['baseline_sha256'] == BASE_HASH, 'baseline hash') + require(len(raw(BASELINE)) == pins['baseline_bytes'], 'baseline bytes') + roster = ['tests/run_tests.gd'] + sorted(p.relative_to(root).as_posix() + for p in (root / 'tests').rglob('test*.gd') if 'export' not in p.relative_to(root).parts + and p.relative_to(root).as_posix() != 'tests/s0/test_kernel_and_save.gd') + require(roster == pins['roster'], 'roster identity') + require(sum(p.endswith('.gd') for p in actual) == pins['parse_files'], 'parse selection identity') + # Audit evidence is bound to published blobs, never a future self-containing commit. + for p in (STATE, SERVICE, RUNTIME, CATALOG): + require(raw(p) == blob(root, ANCHOR, p), 'stale audited source: ' + p) + return {'actual_commit': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root).decode().strip(), + 'selected_files': len(actual), 'anchor': ANCHOR, 'file_equality': True, + 'native_evidence_reuse_accepted': False} + + +def expected(root): + raw = lambda p: (root / p).read_bytes() + require(sha(raw(BASELINE)) == BASE_HASH, 'baseline changed') + for name in ('atomic_requirements.json', 'work_packages.json', 'decisions.json'): + require(raw(PLAN + name) == blob(root, BASE, PLAN + name), 'original register changed: ' + name) + require(raw(OUT + 'ACTUAL_OPUS_NEXT_ORIGINAL_UNIT_SELECTION.json') == + blob(root, BASE, OUT + 'ACTUAL_OPUS_NEXT_ORIGINAL_UNIT_SELECTION.json'), 'selection record changed') + lines = raw(BASELINE).decode().splitlines() + def cite(start, end=None): + end = end or start + return {'path': BASELINE, 'lines': [start, end], + 'text': '\n'.join(lines[start - 1:end]), 'baseline_sha256': BASE_HASH} + def evidence(path, start, end): + data = blob(root, ANCHOR, path) + require(data == raw(path), 'stale source ' + path) + return {'path': path, 'sha256': sha(data), 'anchor': ANCHOR, + 'lines': [start, end], 'text': '\n'.join(data.decode().splitlines()[start - 1:end])} + def item(identity, start, end, note, owner, status='missing', source=None): + return {'id': identity, 'authority': cite(start, end), 'status': status, + 'implementation': source or 'not implemented', 'owner': owner, + 'observation': note, 'gap': None if status == 'implemented' else '欠損: ' + note} + # Only narrow storage facts are implemented; simulation/route completion never follows. + rules = [ + item('state_fields', 138, 143, '原本3値と盾の明示値の検証・保持のみ。初期値と更新方針は未定。', + 'P18-01', 'implemented', evidence(STATE, 4, 34)), + item('affection_max_invariant', 140, 140, '入力時の最大値一致検証のみ。通常操作の回復・更新は欠損。', + 'P18-01', 'partial', evidence(STATE, 20, 30)), + item('snapshot_container', 138, 143, '専用状態と旧値の分離保存・復元。人物別ルート進行保存を意味しない。', + 'P18-01', 'partial', evidence(SERVICE, 423, 479)), + item('identity_registration', 138, 138, 'Runtimeは登録済み人物・相互対応を検証。既存カタログのヒロインはアンリのみ。通常ルート入口ではない。', + 'P19-01', 'partial', evidence(RUNTIME, 6791, 6812)), + item('legacy_event_ui', 154, 157, '既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。', + 'P19-01', 'partial', evidence('scenes/main/main.gd', 89, 101)), + ] + clauses = [ + ('defense_reduction', 141, 141, 'P18-02'), ('post_break_metric', 142, 143, 'P18-02'), + ('barrier_block', 143, 143, 'P18-02'), ('coassignment_attack', 145, 145, 'P18-02'), + ('zero_break', 146, 146, 'P18-02'), ('contact_after_break', 147, 147, 'P18-02'), + ('threshold_route_loss', 148, 148, 'P18-03'), ('duel_types', 150, 151, 'P19-01'), + ('duel_win', 152, 152, 'P19-01'), ('duel_loss', 153, 153, 'P19-01'), + ('love_actions', 155, 155, 'P19-01'), ('ntr_actions', 156, 156, 'P19-01'), + ('corruption_actions', 157, 157, 'P19-01'), ('history_fields', 159, 159, 'P19-02'), + ('history_cycle_parentage', 160, 160, 'P19-02'), ('portrait_marks', 161, 161, 'P26-02'), + ('route_skills', 132, 132, 'P20-01'), ('departure', 135, 135, 'P19-02')] + for identity, start, end, owner in clauses: + rules.append(item(identity, start, end, + '原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。', owner)) + # Read complete selected atomic records, not only their condition strings. + atoms = decode(raw(PLAN + 'atomic_requirements.json'))['requirements'] + atoms = [x for x in atoms if set(x.get('source_group_ids', [])) & {'B-7.' + str(i) for i in range(1, 7)}] + owners = {x['id'] for p in decode(raw(PLAN + 'work_packages.json')) for x in p.get('remaining_deliverables', [])} + require(all(r['owner'] in owners for r in rules), 'unknown original owner') + for key, name in PEOPLE: + for route in ROUTES: + require(any(x['id'] == 'AR.heroine.' + key + '.route.' + route and + x['entity'] == {'kind': 'heroine', 'key': key, 'original_name': name} for x in atoms), + 'canonical atomic character/route missing') + require(all(name in lines[117 + i] for i, (_, name) in enumerate(PEOPLE)), 'original character names') + cells = [] + for i, (key, name) in enumerate(PEOPLE): + for route, route_name in ROUTES.items(): + refs = { + 'entry_required_events': ['identity_registration', route + '_actions'], + 'state_conditions': ['state_fields', 'affection_max_invariant', 'defense_reduction', + 'post_break_metric', 'barrier_block', 'coassignment_attack', 'zero_break', 'contact_after_break'], + 'duel_effects': ['duel_types', 'duel_win', 'duel_loss'], + 'route_selection_effects': ['threshold_route_loss', route + '_actions', 'route_skills'], + 'interruption_cancellation': ['departure'], 'save_handling': ['snapshot_container'], + 'history_marks': ['history_fields', 'history_cycle_parentage', 'portrait_marks'], + 'current_reachability': ['identity_registration', 'threshold_route_loss']} + categories = {} + for category in CATEGORIES: + owner = {'entry_required_events': 'P26-01', 'state_conditions': 'P18-02', + 'duel_effects': 'P19-01', 'route_selection_effects': 'P26-02', + 'interruption_cancellation': 'P19-02', 'save_handling': 'P19-02', + 'history_marks': 'P19-02', 'current_reachability': 'P20-02'}[category] + gap = item(key + '_' + route + '_' + category, 138, 161, + '原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。', owner) + gap['character_authority'] = cite(118 + i) + categories[category] = {'common_rule_refs': refs[category], 'character_specific': gap} + cells.append({'character_id': key, 'name': name, 'route_id': route, 'route': route_name, + 'natural_route_complete': False, 'categories': categories}) + return {'task_id': 'P19-03-TABLE', 'schema_version': 1, + 'identity_policy': '原本§6の名前とatomic entity.keyを監査IDに使用。実装IDを捏造しない。カタログにはheroine_anriのみ。OriginalRelationshipStateはsubject_idを保持し7名の列挙はしない。', + 'source_anchor': ANCHOR, 'common_rules': rules, 'cells': cells, + 'authority_snapshots': {p: {'sha256': sha(raw(p)), 'base_commit': BASE, + 'records': decode(raw(p)) if p.endswith('decisions.json') else atoms if p.endswith('atomic_requirements.json') + else [x for x in decode(raw(p)) if x['id'] in ('P18', 'P19', 'P20', 'P26')]} + for p in (PLAN + 'atomic_requirements.json', PLAN + 'work_packages.json', PLAN + 'decisions.json')}, + 'catalog_evidence': evidence(CATALOG, 1, 32), + 'pending': {'D05': 'pending', 'D08': 'pending', 'thresholds': None, 'rates': None, 'initial_values': None}, + 'route_support': {r: {'UI': '欠損: 原本行動・3種決闘・原本3軸/盾の通常操作なし。既存汎用関係UIを原本ルートとしない。', + 'Runtime': 'partial: 原本明示状態の登録・identity検証のみ。共通更新と通常ルート到達は欠損。', + 'save': 'partial: 専用状態/旧値コンテナ保存あり。人物固有進行・中断再開は欠損。', + 'Windows': '未受入: global same-Windows acceptanceはopen。文書単位のnative GUI/Windows実行は適用外。', + 'evidence_refs': ['legacy_event_ui', 'identity_registration', 'snapshot_container', 'state_fields'], + 'missing_mechanisms': [x[0] for x in clauses]} for r in ROUTES.values()}, + 'acceptance': '7名×3ルートの到達表があり、未制作内容は欠損として残る。', + 'accounting': '14/88 unchanged; formal Runner validation, independent whole-unit Opus review and normal integration/final required; no game acceptance'} + + +def verify(candidate, canonical): + require(type(candidate) is dict, 'document must be an object') + # Exact canonical equality also rejects additions, type coercion, invented numbers, + # owner/status promotion and unsupported completion, including nested metadata. + require(json.dumps(candidate, ensure_ascii=False, sort_keys=True) == + json.dumps(canonical, ensure_ascii=False, sort_keys=True), 'table differs from pinned canonical audit') + + +def verify_records(candidate, canonical, markdown_bytes): + verify(candidate, canonical) + require(markdown_bytes == markdown(canonical).encode(), 'Markdown drift') + + +def markdown(d): + lines = ['# P19-03 到達表', '', d['acceptance'], '', d['identity_policy'], '', + '共通原本ルールと人物固有欠損を分離する。implementedは狭い保持処理だけで、自然ルート完成ではない。', '', + '|人物ID|原名|ルート|現在の到達性|', '|---|---|---|---|'] + for c in d['cells']: + lines.append('|%s|%s|%s|欠損・通常到達未証明|' % (c['character_id'], c['name'], c['route'])) + lines += ['', '## 共通原本ルール', ''] + for r in d['common_rules']: + lines += ['### ' + r['id'], '', r['status'] + ' / owner: ' + r['owner'], '', + r['observation'], '', '原本 %s:%s–%s' % (BASELINE, *r['authority']['lines']), '', + '```text', r['authority']['text'], '```', '', + '実装証拠: ' + json.dumps(r['implementation'], ensure_ascii=False, sort_keys=True), ''] + for c in d['cells']: + lines += ['## ' + c['character_id'] + ' / ' + c['name'] + ' / ' + c['route'], ''] + for category, record in c['categories'].items(): + g = record['character_specific'] + lines += ['- ' + category + ': 共通 [' + ', '.join(record['common_rule_refs']) + + '] / missing / ' + g['gap'] + ' / owner: ' + g['owner'] + + ' / 原本 ' + str(g['authority']['lines']) + '・人物 ' + str(g['character_authority']['lines'])] + lines.append('') + lines += ['## ルート別適用性', ''] + for route, support in d['route_support'].items(): + lines += ['### ' + route, ''] + lines += ['- ' + k + ': ' + v for k, v in support.items() if isinstance(v, str)] + lines += ['- 欠損機構: ' + ', '.join(support['missing_mechanisms']), ''] + lines += ['D05/D08、閾値・率・初期値はpending。完全な出典本文・SHA・原子要件全レコードはJSONに保持する。', '', d['accounting'], ''] + return '\n'.join(lines) + + +def main(): + p = argparse.ArgumentParser(description=__doc__) + p.add_argument('--project-root', type=Path, required=True) + mode = p.add_mutually_exclusive_group(required=True) + mode.add_argument('--check', action='store_true') + mode.add_argument('--write', action='store_true') + mode.add_argument('--source-binding-only', action='store_true') + args = p.parse_args() + try: + root = args.project_root.resolve() + result = binding(root) + if not args.source_binding_only: + canonical = expected(root) + if args.write: + (root / OUT / 'REACHABILITY_TABLE.json').write_text(json.dumps(canonical, ensure_ascii=False, indent=2) + '\n', encoding='utf-8') + (root / OUT / 'REACHABILITY_TABLE.md').write_text(markdown(canonical), encoding='utf-8') + else: + verify_records(decode((root / OUT / 'REACHABILITY_TABLE.json').read_bytes()), canonical, + (root / OUT / 'REACHABILITY_TABLE.md').read_bytes()) + print(json.dumps({'audit_integrity': 'pass', 'formal_acceptance': 'pending_runner_and_independent_review', **result})) + return 0 + except (ValueError, OSError, KeyError, TypeError, subprocess.CalledProcessError) as e: + print(json.dumps({'audit_integrity': 'fail', 'error': str(e)})) + return 1 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py b/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py new file mode 100644 index 0000000..244aa65 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py @@ -0,0 +1,134 @@ +#!/usr/bin/env python3 +"""Meaningful in-memory controls; no product, Git or fixture writes.""" +import argparse +import copy +from pathlib import Path +import unittest +from unittest.mock import patch +import check_reachability_table as audit + +ROOT = None + + +class AuditTests(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.canonical = audit.expected(ROOT) + + def reject(self, mutate): + changed = copy.deepcopy(self.canonical) + mutate(changed) + with self.assertRaises(ValueError): + audit.verify(changed, self.canonical) + + def test_valid_implemented_partial_missing(self): + # All three legitimate status classes must survive serialization and the + # exact same verifier used by --check, without status promotion. + import json + value = audit.decode(json.dumps(self.canonical)) + self.assertEqual({r['status'] for r in value['common_rules']}, {'implemented', 'partial', 'missing'}) + audit.verify(value, self.canonical) + + def test_exact_cell_product(self): + mutations = { + 'missing': lambda d: d['cells'].pop(), + 'duplicate': lambda d: d['cells'].append(copy.deepcopy(d['cells'][0])), + 'wrong_character': lambda d: d['cells'][0].update(character_id='unregistered'), + 'wrong_route': lambda d: d['cells'][0].update(route='unregistered'), + } + for name, mutate in mutations.items(): + with self.subTest(name=name): + self.reject(mutate) + + def test_categories_and_citations(self): + self.reject(lambda d: d['cells'][0]['categories'].pop('save_handling')) + self.reject(lambda d: d['common_rules'][0].pop('authority')) + self.reject(lambda d: d['cells'][0]['categories']['state_conditions']['character_specific'].pop('character_authority')) + + def test_stale_record_evidence(self): + for field in ('text', 'baseline_sha256'): + with self.subTest(field=field): + self.reject(lambda d: d['common_rules'][0]['authority'].update({field: 'stale'})) + for field in ('text', 'sha256', 'anchor'): + with self.subTest(field=field): + self.reject(lambda d: d['common_rules'][0]['implementation'].update({field: 'stale'})) + + def test_real_source_and_baseline_changes(self): + original = Path.read_bytes + for target in (audit.BASELINE, audit.STATE): + def corrupt(path): + value = original(path) + return value + b'\nchanged' if path == ROOT / target else value + with self.subTest(target=target), patch.object(Path, 'read_bytes', corrupt): + with self.assertRaises(ValueError): + audit.expected(ROOT) + actual_blob = audit.blob + def corrupt_blob(root, commit, path): + value = actual_blob(root, commit, path) + return value + b'\nchanged' if path == audit.STATE else value + with patch.object(audit, 'blob', side_effect=corrupt_blob): + with self.assertRaises(ValueError): + audit.expected(ROOT) + + def test_no_invented_values_or_completion(self): + self.reject(lambda d: d['pending'].update(thresholds=50)) + self.reject(lambda d: d['common_rules'][5].update(status='implemented')) + self.reject(lambda d: d['cells'][0].update(natural_route_complete=True)) + self.reject(lambda d: d['cells'][0]['categories']['entry_required_events']['character_specific'].update(status='implemented', gap=None)) + + def test_owner_and_status(self): + self.reject(lambda d: d['common_rules'][0].update(owner='P99-01')) + self.reject(lambda d: d['common_rules'][0].update(owner='P19-02')) + self.reject(lambda d: d['common_rules'][0].update(status='complete')) + + def test_json_and_types(self): + for data in ('{', '{"x":1,"x":2}', '{"x":NaN}'): + with self.subTest(data=data), self.assertRaises(ValueError): + audit.decode(data) + for value in ([], None, 'table'): + with self.subTest(value=value), self.assertRaises(ValueError): + audit.verify(value, self.canonical) + self.reject(lambda d: d.update(cells={})) + self.reject(lambda d: d.update(schema_version=True)) + + def test_markdown_drift(self): + expected = audit.markdown(self.canonical).encode() + audit.verify_records(self.canonical, self.canonical, + (ROOT / audit.OUT / 'REACHABILITY_TABLE.md').read_bytes()) + with self.assertRaises(ValueError): + audit.verify_records(self.canonical, self.canonical, expected + b'\nchanged') + + def test_full_frozen_map_and_identities(self): + audit.binding(ROOT) # Valid frozen-map control; no native execution. + actual_selection = audit.selection(ROOT) + for kind in ('missing', 'new', 'changed'): + changed = copy.deepcopy(actual_selection) + key = next(iter(changed)) + if kind == 'missing': + del changed[key] + elif kind == 'new': + changed['scripts/invented.gd'] = {'bytes': 0, 'sha256': '0' * 64} + else: + changed[key]['sha256'] = '0' * 64 + with self.subTest(kind=kind), patch.object(audit, 'selection', return_value=changed): + with self.assertRaises(ValueError): + audit.binding(ROOT) + original = Path.read_bytes + pins = audit.decode(original(ROOT / audit.OUT / 'FROZEN_GAME_INPUT_PINS.json')) + targets = [ROOT / audit.OUT / 'FROZEN_GAME_INPUT_PINS.json', ROOT / pins['marker_contract_path'], + ROOT / pins['policy_path'], Path(pins['engine_path'])] + for target in targets: + def corrupt(path): + value = original(path) + return value + b'\nchanged' if path == target else value + with self.subTest(target=str(target)), patch.object(Path, 'read_bytes', corrupt): + with self.assertRaises(ValueError): + audit.binding(ROOT) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--project-root', type=Path, required=True) + args, rest = parser.parse_known_args() + ROOT = args.project_root.resolve() + unittest.main(argv=[__file__] + rest) From 806de25068bc423136063791afcea811d251ee1b Mon Sep 17 00:00:00 2001 From: Agent Control Runner Date: Sat, 17 Oct 2026 19:49:30 +0900 Subject: [PATCH 2/2] =?UTF-8?q?P19-03-TABLE:=20P19-03=20=E5=88=86=E5=B2=90?= =?UTF-8?q?=E3=81=AE=E5=88=B0=E9=81=94=E6=80=A7=EF=BC=9A=E5=8E=9F7?= =?UTF-8?q?=E5=90=8D=C3=973=E3=83=AB=E3=83=BC=E3=83=88=E3=81=AE=E5=85=A8?= =?UTF-8?q?=E5=88=B0=E9=81=94=E8=A1=A8=E3=81=A8=E6=9C=AA=E5=88=B6=E4=BD=9C?= =?UTF-8?q?=E6=AC=A0=E6=90=8D=E7=9B=A3=E6=9F=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../execution/p19-03/IMPLEMENTATION_REPORT.md | 45 +- .../execution/p19-03/REACHABILITY_TABLE.json | 1430 ++++++++++++++--- .../execution/p19-03/REACHABILITY_TABLE.md | 144 +- .../p19-03/check_reachability_table.py | 77 +- .../p19-03/test_reachability_table.py | 33 + 5 files changed, 1419 insertions(+), 310 deletions(-) diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md b/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md index 1067233..3616228 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md @@ -4,7 +4,7 @@ ## 変更範囲 -このディレクトリの必須5ファイルのみを追加した。原本、原子要件、work packages、decisions、TASK_SPEC、選定記録、frozen pins、ゲーム入力、marker registryは変更していない。git書込み、他worker起動、Runner操作、ゲーム起動は行っていない。素材追加なし。 +修復開始点e0420d57a381a1644357f0590536e1d47c9bca9fから、このディレクトリの指定5ファイルのみを変更した。原本、原子要件、work packages、decisions、TASK_SPEC、選定記録、frozen pins、ゲーム入力、marker registryは変更していない。git書込み、他worker起動、Runner操作、ゲーム起動は行っていない。素材追加なし。 ## 要件と検査の対応 @@ -26,36 +26,45 @@ 指定されたoriginal_relationship_state.gdには7名のrosterはなく、汎用subject_id等の明示入力検証のみがある。既存unique catalogのヒロインはheroine_anriのみ。監査IDには既存atomic entity.key(anri/fine/tomari/amelia/liz/mimi/satsuki)を使い、他6名の実装catalog ID、ライバル対応、初期値を創作していない。この実装欠損は表の欠損であり、原7名を削減する理由にしていない。 -## 実行記録 +## Repair 1: 4指摘の対応 -以下は生成・静的観測であり正式試験結果ではない。 +編集前に build/owner-handoff/p19-review-r01/ の ACTUAL_OPUS_REPAIR_DIRECTION.json、ACTUAL_WHOLE_UNIT_REVIEW.json、SPEC_HASH_REPRESENTATIONS.json を読んだ。 + +- MEDIUM: coassignment_attack / zero_break / love_actions / threshold_route_loss と旧UIのlegacy_evidenceを追加。固定anchorの実際の本文・行・Git blob OID・file-bytes SHA-256を保持する。原本準拠statusはmissing、旧実装分類はlegacy_not_originalに統一。P18-01は一対一変換を禁止し、旧数値・日次制限は原本として未承認と明記した。UI定数は実際には98–101行であり、89–97行の無関係なラベルを除いた。共通ルール参照により各該当セルへ結び付けた。所有者・原本欠損・natural_route_complete=falseを維持。 +- LOW 独立試験: validate_legacyは候補とcanonicalの比較とは独立に、git showで固定anchorのソースを読み、引用行本文とgit rev-parseによるblob OID、現ファイルとの一致を検査する。test_independent_legacy_source_evidenceは実際のJSONと実ファイルを開き、git hash-object --stdin(書込みなし)でOIDを独立計算し、関数名とshield_broken/EXCLUSIVE_LOCKEDも確認。test_legacy_evidence_required_independentlyは対象全項目の証拠削除・空配列・無条件not implemented・古いOID/本文を拒否する。 +- LOW 中断参照: 全21セルのinterruption_cancellationに原本148・153行の本文とbaseline hash、および343–355行のconfirm_route_lockをlegacy_not_originalとして追加。人物固有欠損と担当は維持。 +- LOW ハッシュ表示: 263a01b943d8056727335fb76977c010298e1c229077f8da76e48683ba2e89bb は TASK_SPEC.json file-bytes SHA-256。3af3d9b931edc5449796662ad69bb6f67c80b48827a86565b1952931db68dd15 は Runner git-show stripped-UTF-8 contract spec_sha256。上記SPEC_HASH_REPRESENTATIONS.jsonのunchanged_file=trueが証拠であり、両者は同じ無変更ファイルを表す。checker定数と出力にも区別を反映。Git blob OIDは別のgit_blob_oidフィールドでありfile-bytes SHA-256とは区別する。 + +## 実行記録(今回のローカル確認) + +以下は正式Runner実行ではない。記録済み修復指示に基づき3登録コマンドをローカル実行した。 + +生成 — exit 0 ```sh -python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --write +python3 -B /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement --write ``` -生成時に2回実行し、どちらもexit 0。actual_commit=8ca9263fee1ec4374d97c01fda82b95e1df6a977、selected_files=1368、file_equality=true、anchor=1b07b87d3736e777932315a4bdde8b70cbf9cb23、native_evidence_reuse_accepted=false。最終回はUI証拠・catalog行範囲・Markdown共通検証関数の更新後。--writeは全固定入力を照合してJSON/Markdownを生成するが、自己試験またはRunner受入を代替しない。 - -別途read-only Pythonでrun_all_tests.pyと同じsource選択を再現し、1368/1368、missing=[]、new=[]、changed=[]、engine SHA一致を確認した。JSONの静的読込で21セルと61原子レコードを確認した。原本表示には `nl -ba docs/traceability/original/BASELINE.txt | sed -n '85,165p'` を使用した。原資料/既存コードはcat、sed、rgとJSON読込で確認した。 - -初期の読込用here-documentはshellの一時ファイル作成制限によりexit 1。その後python3 -cで同じ静的読込を行った。製品ファイルへの影響はない。 +p19-table — exit 0 ```sh -python3 -c 'import ast;from pathlib import Path;p=Path("docs/plans/original-completion-2026-10-02/execution/p19-03");[(ast.parse((p/n).read_text()),print(n,"syntax parsed")) for n in ["check_reachability_table.py","test_reachability_table.py"]]' -git diff --stat -git status --short +python3 -B /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement --check ``` -構文読込は2ファイルともexit 0。git差分確認では既存trackedファイルの変更なし、追加は許可ディレクトリの必須5ファイルのみ。試験実行ではない。 - -ユーザーの最新指示「試験はRunnerが正式実行します」に従い、下記は**未実行**。合格を主張しない。 +p19-negative — exit 0 ```sh -python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --check -python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py --project-root . -python3 -B docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root . --source-binding-only +python3 -B /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py --project-root /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement ``` +p19-source-binding — exit 0 + +```sh +python3 -B /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py --project-root /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement --source-binding-only +``` + +--writeの実際の呼出しは同一checkout内で相対スクリプトパスと --project-root . を使用(上記は絶対パス表記)。--checkはMarkdownのバイト完全一致を確認。自己試験は12件OK。source bindingは1368ファイル一致、file_equality=true、actual_commit=e0420d57a381a1644357f0590536e1d47c9bca9f、native_evidence_reuse_accepted=false。git diff --checkはexit 0。構文は上記Python実行で確認。最初の編集用here-documentは一時ファイル作成制限でexit 1、変更は行われず、python3 -cで再実行してexit 0。native full・ゲーム起動・git書込み・Runner操作・他エージェント起動は行っていない。 + ## 残る親成果・ゲームの欠損 - P18-01: 原本3軸/盾の通常UI、承認済み初期値、本来の全単位受入。P18-02/03: 同配置・軽減・ブレイク・接触・閾値・確定遷移。既存旧汎用モデルの閾値を原本へ転用しない。 diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json index aca7d74..2351bb3 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json @@ -119,20 +119,26 @@ "text": "## 7.5 ルート攻略とプレイヤーアクション\n * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。\n * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。\n * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, - "status": "partial", - "implementation": { - "path": "scenes/main/main.gd", - "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", - "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", - "lines": [ - 89, - 101 - ], - "text": "\t&\"NOT_UNDERGROUND\": \"地下のマスだけ掘削できます\",\n\t&\"ALREADY_EXCAVATED\": \"すでに掘削済みです\",\n\t&\"ALREADY_RESERVED\": \"このマスは掘削中です\",\n\t&\"NO_EXCAVATED_NEIGHBOR\": \"掘削済みの隣接マスから延ばしてください\",\n\t&\"NO_ENTRANCE_CONNECTION\": \"地上入口までつながる経路がありません\",\n\t&\"SUPPORT_REQUIRED\": \"硬い地盤を支える補強施設が必要です\",\n\t&\"INSUFFICIENT_RESOURCES\": \"掘削資源が不足しています\",\n\t&\"MISSING_DEPENDENCY\": \"掘削システムを利用できません\",\n}\nconst EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}" - }, + "status": "missing", + "implementation": "original conformance missing; see legacy_evidence", "owner": "P19-01", "observation": "既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。", - "gap": "欠損: 既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。" + "gap": "欠損: 既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。 P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scenes/main/main.gd", + "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 98, + 101 + ], + "text": "const EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}", + "git_blob_oid": "fff37f082d750bb91c71f2aa54d168c9e2cb8fe7" + } + ] }, { "id": "defense_reduction", @@ -146,7 +152,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -163,7 +169,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -180,7 +186,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -197,10 +203,69 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing; see legacy_evidence", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", - "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 264, + 312 + ], + "text": "func apply_shield_attack(\n\trelationship_id: StringName,\n\taction_id: StringName,\n\tabsolute_minute: int,\n\tterms: Dictionary\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif action_id.is_empty() or absolute_minute < 0:\n\t\treturn _invalid(\"ShieldAttack requires an Action ID and non-negative minute.\")\n\tvar day := absolute_minute / 1_440\n\t_reset_attack_day_if_needed(state, day)\n\tvar uses_before := int(state.action_counts.get(action_id, 0))\n\tvar daily_limit := maxi(int(_value(terms, &\"daily_limit\", 4)), 1)\n\tif uses_before >= daily_limit:\n\t\treturn _invalid(\"ShieldAction daily use limit reached.\", {\n\t\t\t&\"action_id\": action_id,\n\t\t\t&\"uses\": uses_before,\n\t\t\t&\"daily_limit\": daily_limit,\n\t\t})\n\tvar penalty_percent := _repetition_penalty_percent(uses_before)\n\tvar raw_damage := (\n\t\tint(_value(terms, &\"base_damage\", 0))\n\t\t+ int(_value(terms, &\"owner_stat_bonus\", 0))\n\t\t+ int(_value(terms, &\"intel_bonus\", 0))\n\t\t+ int(_value(terms, &\"event_bonus\", 0))\n\t\t- int(_value(terms, &\"target_resistance\", 0))\n\t)\n\tvar max_damage := maxi(int(_value(terms, &\"max_damage\", raw_damage)), 0)\n\tvar damage := clampi((maxi(raw_damage, 0) * (100 - penalty_percent)) / 100, 0, max_damage)\n\tvar old_value := state.shield_current\n\tstate.shield_current = maxi(old_value - damage, 0)\n\tstate.action_counts[action_id] = uses_before + 1\n\tstate.daily_attack_count += 1\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"relationship_id\": relationship_id,\n\t\t&\"action_id\": action_id,\n\t\t&\"uses_before\": uses_before,\n\t\t&\"penalty_percent\": penalty_percent,\n\t\t&\"raw_damage\": raw_damage,\n\t\t&\"damage\": damage,\n\t\t&\"old_shield\": old_value,\n\t\t&\"new_shield\": state.shield_current,\n\t\t&\"shield_broken\": old_value > 0 and state.shield_current == 0,\n\t})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + }, + { + "path": "autoload/simulation_runtime.gd", + "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 6850, + 6850 + ], + "text": "\tvar result := relationship_service.apply_shield_attack(", + "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460" + }, + { + "path": "scripts/events/event_service.gd", + "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 1039, + 1039 + ], + "text": "\t\t\tresult = _relationship_service.apply_shield_attack(", + "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a" + }, + { + "path": "scripts/relationship/placement_risk_preview_service.gd", + "sha256": "d8e974487b75fbad49ecbbe1da8e36aac23dc4e1a5cf10281a1c567c97dd59f6", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 536, + 565 + ], + "text": "func _contact_summary(\n\theroine_shifts: Array,\n\trival_shifts: Array,\n\tperiod: Dictionary\n) -> Dictionary:\n\tvar raw_overlaps: Array[Dictionary] = []\n\tfor heroine_shift: Dictionary in heroine_shifts:\n\t\tfor rival_shift: Dictionary in rival_shifts:\n\t\t\tif heroine_shift[&\"facility_id\"] != rival_shift[&\"facility_id\"]:\n\t\t\t\tcontinue\n\t\t\tvar start_at := maxi(\n\t\t\t\tmaxi(int(period[&\"start_at\"]), int(heroine_shift[&\"start_at\"])),\n\t\t\t\tint(rival_shift[&\"start_at\"])\n\t\t\t)\n\t\t\tvar end_at := mini(\n\t\t\t\tmini(int(period[&\"end_at\"]), int(heroine_shift[&\"end_at\"])),\n\t\t\t\tint(rival_shift[&\"end_at\"])\n\t\t\t)\n\t\t\t# Half-open intervals touch only when start < end. Adjacent shifts\n\t\t\t# therefore contribute zero phantom minutes.\n\t\t\tif start_at >= end_at:\n\t\t\t\tcontinue\n\t\t\tif raw_overlaps.size() >= MAX_CONTACT_INTERVALS:\n\t\t\t\tbreak\n\t\t\traw_overlaps.append({\n\t\t\t\t&\"facility_id\": heroine_shift[&\"facility_id\"],\n\t\t\t\t&\"start_at\": start_at,\n\t\t\t\t&\"end_at\": end_at,\n\t\t\t\t&\"heroine_shift_id\": heroine_shift[&\"shift_id\"],\n\t\t\t\t&\"rival_shift_id\": rival_shift[&\"shift_id\"],", + "git_blob_oid": "62fe3db04b22501b703e5836174652aaddf702c3" + }, + { + "path": "scripts/relationship/placement_risk_preview_service.gd", + "sha256": "d8e974487b75fbad49ecbbe1da8e36aac23dc4e1a5cf10281a1c567c97dd59f6", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 619, + 640 + ], + "text": "func _shield_attack_candidates(\n\trelationship: Dictionary,\n\teffects: Dictionary,\n\tcontacts: Array\n) -> Dictionary:\n\tvar attack_points: Array[Dictionary] = []\n\tfor facility: Dictionary in contacts:\n\t\tfor interval: Dictionary in facility[&\"intervals\"]:\n\t\t\tif int(interval[&\"minutes\"]) < MIN_SHIELD_CONTACT_MINUTES:\n\t\t\t\tcontinue\n\t\t\tvar trigger_at := int(interval[&\"start_at\"]) + MIN_SHIELD_CONTACT_MINUTES - 1\n\t\t\twhile trigger_at < int(interval[&\"end_at\"]):\n\t\t\t\tattack_points.append({\n\t\t\t\t\t&\"facility_id\": facility[&\"facility_id\"],\n\t\t\t\t\t&\"contact_interval\": {\n\t\t\t\t\t\t&\"start_at\": interval[&\"start_at\"],\n\t\t\t\t\t\t&\"end_at\": interval[&\"end_at\"],\n\t\t\t\t\t},\n\t\t\t\t\t&\"trigger_at\": trigger_at,\n\t\t\t\t\t&\"overlap_minutes\": interval[&\"minutes\"],\n\t\t\t\t})\n\t\t\t\ttrigger_at += SHIELD_ATTACK_INTERVAL_MINUTES", + "git_blob_oid": "62fe3db04b22501b703e5836174652aaddf702c3" + } + ] }, { "id": "zero_break", @@ -214,10 +279,47 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing; see legacy_evidence", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", - "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 264, + 312 + ], + "text": "func apply_shield_attack(\n\trelationship_id: StringName,\n\taction_id: StringName,\n\tabsolute_minute: int,\n\tterms: Dictionary\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif action_id.is_empty() or absolute_minute < 0:\n\t\treturn _invalid(\"ShieldAttack requires an Action ID and non-negative minute.\")\n\tvar day := absolute_minute / 1_440\n\t_reset_attack_day_if_needed(state, day)\n\tvar uses_before := int(state.action_counts.get(action_id, 0))\n\tvar daily_limit := maxi(int(_value(terms, &\"daily_limit\", 4)), 1)\n\tif uses_before >= daily_limit:\n\t\treturn _invalid(\"ShieldAction daily use limit reached.\", {\n\t\t\t&\"action_id\": action_id,\n\t\t\t&\"uses\": uses_before,\n\t\t\t&\"daily_limit\": daily_limit,\n\t\t})\n\tvar penalty_percent := _repetition_penalty_percent(uses_before)\n\tvar raw_damage := (\n\t\tint(_value(terms, &\"base_damage\", 0))\n\t\t+ int(_value(terms, &\"owner_stat_bonus\", 0))\n\t\t+ int(_value(terms, &\"intel_bonus\", 0))\n\t\t+ int(_value(terms, &\"event_bonus\", 0))\n\t\t- int(_value(terms, &\"target_resistance\", 0))\n\t)\n\tvar max_damage := maxi(int(_value(terms, &\"max_damage\", raw_damage)), 0)\n\tvar damage := clampi((maxi(raw_damage, 0) * (100 - penalty_percent)) / 100, 0, max_damage)\n\tvar old_value := state.shield_current\n\tstate.shield_current = maxi(old_value - damage, 0)\n\tstate.action_counts[action_id] = uses_before + 1\n\tstate.daily_attack_count += 1\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"relationship_id\": relationship_id,\n\t\t&\"action_id\": action_id,\n\t\t&\"uses_before\": uses_before,\n\t\t&\"penalty_percent\": penalty_percent,\n\t\t&\"raw_damage\": raw_damage,\n\t\t&\"damage\": damage,\n\t\t&\"old_shield\": old_value,\n\t\t&\"new_shield\": state.shield_current,\n\t\t&\"shield_broken\": old_value > 0 and state.shield_current == 0,\n\t})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + }, + { + "path": "autoload/simulation_runtime.gd", + "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 6850, + 6850 + ], + "text": "\tvar result := relationship_service.apply_shield_attack(", + "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460" + }, + { + "path": "scripts/events/event_service.gd", + "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 1039, + 1039 + ], + "text": "\t\t\tresult = _relationship_service.apply_shield_attack(", + "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a" + } + ] }, { "id": "contact_after_break", @@ -231,7 +333,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -248,10 +350,58 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing; see legacy_evidence", "owner": "P18-03", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", - "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 315, + 340 + ], + "text": "func request_route_lock(\n\trelationship_id: StringName,\n\trequested_lock: RelationshipState.RouteLock,\n\troute_id: StringName = &\"\",\n\tirreversible_event: bool = false\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif requested_lock < RelationshipStateType.RouteLock.NONE or requested_lock > RelationshipStateType.RouteLock.CLOSED:\n\t\treturn _invalid(\"Unknown Route Lock state.\")\n\tif requested_lock in [\n\t\tRelationshipStateType.RouteLock.EXCLUSIVE_PENDING,\n\t\tRelationshipStateType.RouteLock.EXCLUSIVE_LOCKED,\n\t] and route_id.is_empty():\n\t\treturn _invalid(\"Exclusive Route Lock requires a route ID.\")\n\tif requested_lock == RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED and not irreversible_event:\n\t\treturn _invalid(\"Exclusive Route cannot lock before explicit confirmation.\", {\n\t\t\t&\"required_state\": &\"EXCLUSIVE_PENDING\",\n\t\t})\n\tvar old_lock := state.route_lock\n\tstate.route_lock = requested_lock\n\tstate.route_id = route_id if requested_lock != RelationshipStateType.RouteLock.NONE else &\"\"\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"old_lock\": old_lock, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + }, + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + }, + { + "path": "autoload/simulation_runtime.gd", + "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 342, + 343 + ], + "text": "\tregister_command_executor(&\"request_route_lock\", Callable(self, \"_execute_request_route_lock\"))\n\tregister_command_executor(&\"confirm_route_lock\", Callable(self, \"_execute_confirm_route_lock\"))", + "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460" + }, + { + "path": "scripts/events/event_service.gd", + "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 1047, + 1047 + ], + "text": "\t\t\tresult = _relationship_service.request_route_lock(", + "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a" + } + ] }, { "id": "duel_types", @@ -265,7 +415,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -282,7 +432,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -299,7 +449,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -316,10 +466,25 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing; see legacy_evidence", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", - "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 246, + 261 + ], + "text": "func restore_shield(relationship_id: StringName, amount: int) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif amount < 0:\n\t\treturn _invalid(\"Shield restoration amount cannot be negative.\")\n\tvar old_value := state.shield_current\n\tstate.shield_current = clampi(old_value + amount, 0, state.shield_max)\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"old_value\": old_value,\n\t\t&\"new_value\": state.shield_current,\n\t\t&\"restored\": state.shield_current - old_value,\n\t})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, { "id": "ntr_actions", @@ -333,7 +498,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -350,7 +515,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -367,7 +532,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -384,7 +549,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -401,7 +566,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -418,7 +583,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-01", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -435,7 +600,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" @@ -466,7 +631,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -504,7 +669,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -537,7 +702,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -570,7 +735,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -587,7 +752,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "anri_love_interruption_cancellation", @@ -601,7 +768,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -614,7 +781,42 @@ "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -632,7 +834,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -665,7 +867,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -697,7 +899,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -738,7 +940,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -776,7 +978,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -809,7 +1011,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -842,7 +1044,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -859,7 +1061,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "anri_ntr_interruption_cancellation", @@ -873,7 +1077,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -886,7 +1090,42 @@ "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -904,7 +1143,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -937,7 +1176,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -969,7 +1208,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1010,7 +1249,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1048,7 +1287,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1081,7 +1320,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1114,7 +1353,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1131,7 +1370,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "anri_corruption_interruption_cancellation", @@ -1145,7 +1386,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1158,7 +1399,42 @@ "text": " * **アンリ (女将):** [看板娘の微笑] 配置フロアの全施設売上+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -1176,7 +1452,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1209,7 +1485,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1241,7 +1517,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1282,7 +1558,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1320,7 +1596,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1353,7 +1629,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1386,7 +1662,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1403,7 +1679,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "fine_love_interruption_cancellation", @@ -1417,7 +1695,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1430,7 +1708,42 @@ "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -1448,7 +1761,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1481,7 +1794,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1513,7 +1826,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1554,7 +1867,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1592,7 +1905,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1625,7 +1938,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1658,7 +1971,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1675,7 +1988,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "fine_ntr_interruption_cancellation", @@ -1689,7 +2004,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1702,7 +2017,42 @@ "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -1720,7 +2070,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1753,7 +2103,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1785,7 +2135,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1826,7 +2176,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1864,7 +2214,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1897,7 +2247,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1930,7 +2280,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1947,7 +2297,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "fine_corruption_interruption_cancellation", @@ -1961,7 +2313,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -1974,7 +2326,42 @@ "text": " * **フィーネ (メイド):** [神速の奉仕] 清掃速度3倍。暗殺確率UP。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -1992,7 +2379,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2025,7 +2412,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2057,7 +2444,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2098,7 +2485,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2136,7 +2523,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2169,7 +2556,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2202,7 +2589,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2219,7 +2606,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "tomari_love_interruption_cancellation", @@ -2233,7 +2622,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2246,7 +2635,42 @@ "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -2264,7 +2688,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2297,7 +2721,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2329,7 +2753,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2370,7 +2794,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2408,7 +2832,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2441,7 +2865,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2474,7 +2898,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2491,7 +2915,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "tomari_ntr_interruption_cancellation", @@ -2505,7 +2931,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2518,7 +2944,42 @@ "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -2536,7 +2997,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2569,7 +3030,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2601,7 +3062,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2642,7 +3103,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2680,7 +3141,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2713,7 +3174,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2746,7 +3207,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2763,7 +3224,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "tomari_corruption_interruption_cancellation", @@ -2777,7 +3240,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2790,7 +3253,42 @@ "text": " * **トマリ (騎士):** [鉄壁の守護] フロアトラブル0%。防衛スコア加算。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -2808,7 +3306,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2841,7 +3339,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2873,7 +3371,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2914,7 +3412,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2952,7 +3450,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -2985,7 +3483,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3018,7 +3516,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3035,7 +3533,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "amelia_love_interruption_cancellation", @@ -3049,7 +3549,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3062,7 +3562,42 @@ "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -3080,7 +3615,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3113,7 +3648,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3145,7 +3680,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3186,7 +3721,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3224,7 +3759,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3257,7 +3792,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3290,7 +3825,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3307,7 +3842,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "amelia_ntr_interruption_cancellation", @@ -3321,7 +3858,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3334,7 +3871,42 @@ "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -3352,7 +3924,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3385,7 +3957,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3417,7 +3989,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3458,7 +4030,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3496,7 +4068,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3529,7 +4101,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3562,7 +4134,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3579,7 +4151,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "amelia_corruption_interruption_cancellation", @@ -3593,7 +4167,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3606,7 +4180,42 @@ "text": " * **アメリア (シスター):** [聖なる寄付] 寄付金3倍。回復速度2倍。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -3624,7 +4233,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3657,7 +4266,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3689,7 +4298,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3730,7 +4339,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3768,7 +4377,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3801,7 +4410,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3834,7 +4443,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3851,7 +4460,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "liz_love_interruption_cancellation", @@ -3865,7 +4476,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3878,7 +4489,42 @@ "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -3896,7 +4542,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3929,7 +4575,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -3961,7 +4607,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4002,7 +4648,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4040,7 +4686,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4073,7 +4719,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4106,7 +4752,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4123,7 +4769,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "liz_ntr_interruption_cancellation", @@ -4137,7 +4785,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4150,7 +4798,42 @@ "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -4168,7 +4851,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4201,7 +4884,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4233,7 +4916,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4274,7 +4957,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4312,7 +4995,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4345,7 +5028,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4378,7 +5061,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4395,7 +5078,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "liz_corruption_interruption_cancellation", @@ -4409,7 +5094,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4422,7 +5107,42 @@ "text": " * **リズ (狩人):** [エルフの眼] レア素材発見率UP。高級食材消費減。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -4440,7 +5160,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4473,7 +5193,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4505,7 +5225,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4546,7 +5266,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4584,7 +5304,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4617,7 +5337,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4650,7 +5370,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4667,7 +5387,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "mimi_love_interruption_cancellation", @@ -4681,7 +5403,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4694,7 +5416,42 @@ "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -4712,7 +5469,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4745,7 +5502,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4777,7 +5534,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4818,7 +5575,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4856,7 +5613,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4889,7 +5646,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4922,7 +5679,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4939,7 +5696,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "mimi_ntr_interruption_cancellation", @@ -4953,7 +5712,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -4966,7 +5725,42 @@ "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -4984,7 +5778,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5017,7 +5811,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5049,7 +5843,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5090,7 +5884,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5128,7 +5922,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5161,7 +5955,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5194,7 +5988,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5211,7 +6005,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "mimi_corruption_interruption_cancellation", @@ -5225,7 +6021,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5238,7 +6034,42 @@ "text": " * **ミミ (商人):** [商魂たくましい] 仕入れ-20%、売却+20%。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -5256,7 +6087,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5289,7 +6120,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5321,7 +6152,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5362,7 +6193,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5400,7 +6231,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5433,7 +6264,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5466,7 +6297,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5483,7 +6314,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "satsuki_love_interruption_cancellation", @@ -5497,7 +6330,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5510,7 +6343,42 @@ "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -5528,7 +6396,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5561,7 +6429,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5593,7 +6461,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5634,7 +6502,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5672,7 +6540,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5705,7 +6573,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5738,7 +6606,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5755,7 +6623,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "satsuki_ntr_interruption_cancellation", @@ -5769,7 +6639,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5782,7 +6652,42 @@ "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -5800,7 +6705,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5833,7 +6738,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5865,7 +6770,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5906,7 +6811,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5944,7 +6849,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P18-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -5977,7 +6882,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-01", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -6010,7 +6915,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P26-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -6027,7 +6932,9 @@ }, "interruption_cancellation": { "common_rule_refs": [ - "departure" + "departure", + "threshold_route_loss", + "duel_loss" ], "character_specific": { "id": "satsuki_corruption_interruption_cancellation", @@ -6041,7 +6948,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -6054,7 +6961,42 @@ "text": " * **サツキ (雑用):** [高貴なオーラ] VIP客満足度上昇1.5倍。チップ増。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" } - } + }, + "route_termination_authorities": [ + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 148, + 148 + ], + "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 153, + 153 + ], + "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + } + ], + "legacy_classification": "legacy_not_original", + "legacy_reason": "P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.", + "legacy_evidence": [ + { + "path": "scripts/relationship/relationship_service.gd", + "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", + "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", + "lines": [ + 343, + 355 + ], + "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", + "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a" + } + ] }, "save_handling": { "common_rule_refs": [ @@ -6072,7 +7014,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -6105,7 +7047,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P19-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", @@ -6137,7 +7079,7 @@ "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" }, "status": "missing", - "implementation": "not implemented", + "implementation": "original conformance missing", "owner": "P20-02", "observation": "原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", "gap": "欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。", diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md index aa29d36..bb8d355 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md @@ -100,7 +100,7 @@ Runtimeは登録済み人物・相互対応を検証。既存カタログのヒ ### legacy_event_ui -partial / owner: P19-01 +missing / owner: P19-01 既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。 @@ -113,7 +113,11 @@ partial / owner: P19-01 * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 ``` -実装証拠: {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [89, 101], "path": "scenes/main/main.gd", "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", "text": "\t&\"NOT_UNDERGROUND\": \"地下のマスだけ掘削できます\",\n\t&\"ALREADY_EXCAVATED\": \"すでに掘削済みです\",\n\t&\"ALREADY_RESERVED\": \"このマスは掘削中です\",\n\t&\"NO_EXCAVATED_NEIGHBOR\": \"掘削済みの隣接マスから延ばしてください\",\n\t&\"NO_ENTRANCE_CONNECTION\": \"地上入口までつながる経路がありません\",\n\t&\"SUPPORT_REQUIRED\": \"硬い地盤を支える補強施設が必要です\",\n\t&\"INSUFFICIENT_RESOURCES\": \"掘削資源が不足しています\",\n\t&\"MISSING_DEPENDENCY\": \"掘削システムを利用できません\",\n}\nconst EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}"} +実装証拠: "original conformance missing; see legacy_evidence" + +旧実装: legacy_not_original / P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals. + +旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): [{"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "fff37f082d750bb91c71f2aa54d168c9e2cb8fe7", "lines": [98, 101], "path": "scenes/main/main.gd", "sha256": "92677e4ac57ed8d418a4a716bf0874cbbaea79cff893e5163c82ad1f75e7140a", "text": "const EVENT_CHOICE_NAMES := {\n\t&\"event.relationship.threshold.acknowledge\": \"向き合う\",\n\t&\"event.relationship.threshold.defer\": \"今は保留する\",\n}"}] ### defense_reduction @@ -127,7 +131,7 @@ missing / owner: P18-02 * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### post_break_metric @@ -142,7 +146,7 @@ missing / owner: P18-02 * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### barrier_block @@ -156,7 +160,7 @@ missing / owner: P18-02 * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### coassignment_attack @@ -170,7 +174,11 @@ missing / owner: P18-02 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing; see legacy_evidence" + +旧実装: legacy_not_original / P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals. + +旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): [{"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a", "lines": [264, 312], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "func apply_shield_attack(\n\trelationship_id: StringName,\n\taction_id: StringName,\n\tabsolute_minute: int,\n\tterms: Dictionary\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif action_id.is_empty() or absolute_minute < 0:\n\t\treturn _invalid(\"ShieldAttack requires an Action ID and non-negative minute.\")\n\tvar day := absolute_minute / 1_440\n\t_reset_attack_day_if_needed(state, day)\n\tvar uses_before := int(state.action_counts.get(action_id, 0))\n\tvar daily_limit := maxi(int(_value(terms, &\"daily_limit\", 4)), 1)\n\tif uses_before >= daily_limit:\n\t\treturn _invalid(\"ShieldAction daily use limit reached.\", {\n\t\t\t&\"action_id\": action_id,\n\t\t\t&\"uses\": uses_before,\n\t\t\t&\"daily_limit\": daily_limit,\n\t\t})\n\tvar penalty_percent := _repetition_penalty_percent(uses_before)\n\tvar raw_damage := (\n\t\tint(_value(terms, &\"base_damage\", 0))\n\t\t+ int(_value(terms, &\"owner_stat_bonus\", 0))\n\t\t+ int(_value(terms, &\"intel_bonus\", 0))\n\t\t+ int(_value(terms, &\"event_bonus\", 0))\n\t\t- int(_value(terms, &\"target_resistance\", 0))\n\t)\n\tvar max_damage := maxi(int(_value(terms, &\"max_damage\", raw_damage)), 0)\n\tvar damage := clampi((maxi(raw_damage, 0) * (100 - penalty_percent)) / 100, 0, max_damage)\n\tvar old_value := state.shield_current\n\tstate.shield_current = maxi(old_value - damage, 0)\n\tstate.action_counts[action_id] = uses_before + 1\n\tstate.daily_attack_count += 1\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"relationship_id\": relationship_id,\n\t\t&\"action_id\": action_id,\n\t\t&\"uses_before\": uses_before,\n\t\t&\"penalty_percent\": penalty_percent,\n\t\t&\"raw_damage\": raw_damage,\n\t\t&\"damage\": damage,\n\t\t&\"old_shield\": old_value,\n\t\t&\"new_shield\": state.shield_current,\n\t\t&\"shield_broken\": old_value > 0 and state.shield_current == 0,\n\t})"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460", "lines": [6850, 6850], "path": "autoload/simulation_runtime.gd", "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", "text": "\tvar result := relationship_service.apply_shield_attack("}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a", "lines": [1039, 1039], "path": "scripts/events/event_service.gd", "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", "text": "\t\t\tresult = _relationship_service.apply_shield_attack("}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "62fe3db04b22501b703e5836174652aaddf702c3", "lines": [536, 565], "path": "scripts/relationship/placement_risk_preview_service.gd", "sha256": "d8e974487b75fbad49ecbbe1da8e36aac23dc4e1a5cf10281a1c567c97dd59f6", "text": "func _contact_summary(\n\theroine_shifts: Array,\n\trival_shifts: Array,\n\tperiod: Dictionary\n) -> Dictionary:\n\tvar raw_overlaps: Array[Dictionary] = []\n\tfor heroine_shift: Dictionary in heroine_shifts:\n\t\tfor rival_shift: Dictionary in rival_shifts:\n\t\t\tif heroine_shift[&\"facility_id\"] != rival_shift[&\"facility_id\"]:\n\t\t\t\tcontinue\n\t\t\tvar start_at := maxi(\n\t\t\t\tmaxi(int(period[&\"start_at\"]), int(heroine_shift[&\"start_at\"])),\n\t\t\t\tint(rival_shift[&\"start_at\"])\n\t\t\t)\n\t\t\tvar end_at := mini(\n\t\t\t\tmini(int(period[&\"end_at\"]), int(heroine_shift[&\"end_at\"])),\n\t\t\t\tint(rival_shift[&\"end_at\"])\n\t\t\t)\n\t\t\t# Half-open intervals touch only when start < end. Adjacent shifts\n\t\t\t# therefore contribute zero phantom minutes.\n\t\t\tif start_at >= end_at:\n\t\t\t\tcontinue\n\t\t\tif raw_overlaps.size() >= MAX_CONTACT_INTERVALS:\n\t\t\t\tbreak\n\t\t\traw_overlaps.append({\n\t\t\t\t&\"facility_id\": heroine_shift[&\"facility_id\"],\n\t\t\t\t&\"start_at\": start_at,\n\t\t\t\t&\"end_at\": end_at,\n\t\t\t\t&\"heroine_shift_id\": heroine_shift[&\"shift_id\"],\n\t\t\t\t&\"rival_shift_id\": rival_shift[&\"shift_id\"],"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "62fe3db04b22501b703e5836174652aaddf702c3", "lines": [619, 640], "path": "scripts/relationship/placement_risk_preview_service.gd", "sha256": "d8e974487b75fbad49ecbbe1da8e36aac23dc4e1a5cf10281a1c567c97dd59f6", "text": "func _shield_attack_candidates(\n\trelationship: Dictionary,\n\teffects: Dictionary,\n\tcontacts: Array\n) -> Dictionary:\n\tvar attack_points: Array[Dictionary] = []\n\tfor facility: Dictionary in contacts:\n\t\tfor interval: Dictionary in facility[&\"intervals\"]:\n\t\t\tif int(interval[&\"minutes\"]) < MIN_SHIELD_CONTACT_MINUTES:\n\t\t\t\tcontinue\n\t\t\tvar trigger_at := int(interval[&\"start_at\"]) + MIN_SHIELD_CONTACT_MINUTES - 1\n\t\t\twhile trigger_at < int(interval[&\"end_at\"]):\n\t\t\t\tattack_points.append({\n\t\t\t\t\t&\"facility_id\": facility[&\"facility_id\"],\n\t\t\t\t\t&\"contact_interval\": {\n\t\t\t\t\t\t&\"start_at\": interval[&\"start_at\"],\n\t\t\t\t\t\t&\"end_at\": interval[&\"end_at\"],\n\t\t\t\t\t},\n\t\t\t\t\t&\"trigger_at\": trigger_at,\n\t\t\t\t\t&\"overlap_minutes\": interval[&\"minutes\"],\n\t\t\t\t})\n\t\t\t\ttrigger_at += SHIELD_ATTACK_INTERVAL_MINUTES"}] ### zero_break @@ -184,7 +192,11 @@ missing / owner: P18-02 2. **ブレイク:** 耐久値0で「心の隙間」発生。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing; see legacy_evidence" + +旧実装: legacy_not_original / P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals. + +旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): [{"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a", "lines": [264, 312], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "func apply_shield_attack(\n\trelationship_id: StringName,\n\taction_id: StringName,\n\tabsolute_minute: int,\n\tterms: Dictionary\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif action_id.is_empty() or absolute_minute < 0:\n\t\treturn _invalid(\"ShieldAttack requires an Action ID and non-negative minute.\")\n\tvar day := absolute_minute / 1_440\n\t_reset_attack_day_if_needed(state, day)\n\tvar uses_before := int(state.action_counts.get(action_id, 0))\n\tvar daily_limit := maxi(int(_value(terms, &\"daily_limit\", 4)), 1)\n\tif uses_before >= daily_limit:\n\t\treturn _invalid(\"ShieldAction daily use limit reached.\", {\n\t\t\t&\"action_id\": action_id,\n\t\t\t&\"uses\": uses_before,\n\t\t\t&\"daily_limit\": daily_limit,\n\t\t})\n\tvar penalty_percent := _repetition_penalty_percent(uses_before)\n\tvar raw_damage := (\n\t\tint(_value(terms, &\"base_damage\", 0))\n\t\t+ int(_value(terms, &\"owner_stat_bonus\", 0))\n\t\t+ int(_value(terms, &\"intel_bonus\", 0))\n\t\t+ int(_value(terms, &\"event_bonus\", 0))\n\t\t- int(_value(terms, &\"target_resistance\", 0))\n\t)\n\tvar max_damage := maxi(int(_value(terms, &\"max_damage\", raw_damage)), 0)\n\tvar damage := clampi((maxi(raw_damage, 0) * (100 - penalty_percent)) / 100, 0, max_damage)\n\tvar old_value := state.shield_current\n\tstate.shield_current = maxi(old_value - damage, 0)\n\tstate.action_counts[action_id] = uses_before + 1\n\tstate.daily_attack_count += 1\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"relationship_id\": relationship_id,\n\t\t&\"action_id\": action_id,\n\t\t&\"uses_before\": uses_before,\n\t\t&\"penalty_percent\": penalty_percent,\n\t\t&\"raw_damage\": raw_damage,\n\t\t&\"damage\": damage,\n\t\t&\"old_shield\": old_value,\n\t\t&\"new_shield\": state.shield_current,\n\t\t&\"shield_broken\": old_value > 0 and state.shield_current == 0,\n\t})"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460", "lines": [6850, 6850], "path": "autoload/simulation_runtime.gd", "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", "text": "\tvar result := relationship_service.apply_shield_attack("}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a", "lines": [1039, 1039], "path": "scripts/events/event_service.gd", "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", "text": "\t\t\tresult = _relationship_service.apply_shield_attack("}] ### contact_after_break @@ -198,7 +210,7 @@ missing / owner: P18-02 3. **NTR進行:** ライバル接触で直接NTR度が上昇。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### threshold_route_loss @@ -212,7 +224,11 @@ missing / owner: P18-03 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing; see legacy_evidence" + +旧実装: legacy_not_original / P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals. + +旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): [{"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a", "lines": [315, 340], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "func request_route_lock(\n\trelationship_id: StringName,\n\trequested_lock: RelationshipState.RouteLock,\n\troute_id: StringName = &\"\",\n\tirreversible_event: bool = false\n) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif requested_lock < RelationshipStateType.RouteLock.NONE or requested_lock > RelationshipStateType.RouteLock.CLOSED:\n\t\treturn _invalid(\"Unknown Route Lock state.\")\n\tif requested_lock in [\n\t\tRelationshipStateType.RouteLock.EXCLUSIVE_PENDING,\n\t\tRelationshipStateType.RouteLock.EXCLUSIVE_LOCKED,\n\t] and route_id.is_empty():\n\t\treturn _invalid(\"Exclusive Route Lock requires a route ID.\")\n\tif requested_lock == RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED and not irreversible_event:\n\t\treturn _invalid(\"Exclusive Route cannot lock before explicit confirmation.\", {\n\t\t\t&\"required_state\": &\"EXCLUSIVE_PENDING\",\n\t\t})\n\tvar old_lock := state.route_lock\n\tstate.route_lock = requested_lock\n\tstate.route_id = route_id if requested_lock != RelationshipStateType.RouteLock.NONE else &\"\"\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"old_lock\": old_lock, &\"new_lock\": state.route_lock})"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a", "lines": [343, 355], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "64e1d61bf2cd0acf9466605a318f7a362c793460", "lines": [342, 343], "path": "autoload/simulation_runtime.gd", "sha256": "45514aea9367ff678f4dc05166bb9b58121f240d4b5565edeb7ab258e3ded8e0", "text": "\tregister_command_executor(&\"request_route_lock\", Callable(self, \"_execute_request_route_lock\"))\n\tregister_command_executor(&\"confirm_route_lock\", Callable(self, \"_execute_confirm_route_lock\"))"}, {"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "fb70350050e8cbb3f22507057137b8b8d4c1373a", "lines": [1047, 1047], "path": "scripts/events/event_service.gd", "sha256": "d58c416d7a1126b36023fa6ba9f02338678bd54426a3b5d04ce511d9a48c0103", "text": "\t\t\tresult = _relationship_service.request_route_lock("}] ### duel_types @@ -227,7 +243,7 @@ NTR阻止のための直接的解決手段。 * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### duel_win @@ -241,7 +257,7 @@ missing / owner: P19-01 * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### duel_loss @@ -255,7 +271,7 @@ missing / owner: P19-01 * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### love_actions @@ -269,7 +285,11 @@ missing / owner: P19-01 * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing; see legacy_evidence" + +旧実装: legacy_not_original / P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals. + +旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): [{"anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a", "lines": [246, 261], "path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "text": "func restore_shield(relationship_id: StringName, amount: int) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif amount < 0:\n\t\treturn _invalid(\"Shield restoration amount cannot be negative.\")\n\tvar old_value := state.shield_current\n\tstate.shield_current = clampi(old_value + amount, 0, state.shield_max)\n\tif old_value != state.shield_current:\n\t\tshield_changed.emit(relationship_id, old_value, state.shield_current)\n\tlast_error = \"\"\n\treturn _success({\n\t\t&\"old_value\": old_value,\n\t\t&\"new_value\": state.shield_current,\n\t\t&\"restored\": state.shield_current - old_value,\n\t})"}] ### ntr_actions @@ -283,7 +303,7 @@ missing / owner: P19-01 * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### corruption_actions @@ -297,7 +317,7 @@ missing / owner: P19-01 * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### history_fields @@ -311,7 +331,7 @@ missing / owner: P19-02 * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### history_cycle_parentage @@ -325,7 +345,7 @@ missing / owner: P19-02 * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### portrait_marks @@ -339,7 +359,7 @@ missing / owner: P26-02 * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### route_skills @@ -353,7 +373,7 @@ missing / owner: P20-01 * **ルート変化:** 純愛/堕落などの進行度で習得するスキルが変化する。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ### departure @@ -367,7 +387,7 @@ missing / owner: P19-02 * **離脱:** 原則ロストしないが、防衛戦敗北での一時拉致や、特定バッドエンド確定時にのみ敵や背景オブジェクト化する。 ``` -実装証拠: "not implemented" +実装証拠: "original conformance missing" ## anri / アンリ / 純愛 @@ -375,7 +395,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] @@ -386,7 +408,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] @@ -397,7 +421,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [118, 118] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [118, 118] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [118, 118] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [118, 118] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [118, 118] @@ -408,7 +434,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] @@ -419,7 +447,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] @@ -430,7 +460,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [119, 119] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [119, 119] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [119, 119] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [119, 119] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [119, 119] @@ -441,7 +473,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] @@ -452,7 +486,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] @@ -463,7 +499,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [120, 120] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [120, 120] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [120, 120] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [120, 120] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [120, 120] @@ -474,7 +512,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] @@ -485,7 +525,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] @@ -496,7 +538,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [121, 121] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [121, 121] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [121, 121] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [121, 121] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [121, 121] @@ -507,7 +551,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] @@ -518,7 +564,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] @@ -529,7 +577,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [122, 122] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [122, 122] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [122, 122] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [122, 122] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [122, 122] @@ -540,7 +590,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] @@ -551,7 +603,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] @@ -562,7 +616,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [123, 123] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [123, 123] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [123, 123] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [123, 123] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [123, 123] @@ -573,7 +629,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] - route_selection_effects: 共通 [threshold_route_loss, love_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] @@ -584,7 +642,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] - route_selection_effects: 共通 [threshold_route_loss, ntr_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] @@ -595,7 +655,9 @@ missing / owner: P19-02 - state_conditions: 共通 [state_fields, affection_max_invariant, defense_reduction, post_break_metric, barrier_block, coassignment_attack, zero_break, contact_after_break] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P18-02 / 原本 [138, 161]・人物 [124, 124] - duel_effects: 共通 [duel_types, duel_win, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-01 / 原本 [138, 161]・人物 [124, 124] - route_selection_effects: 共通 [threshold_route_loss, corruption_actions, route_skills] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P26-02 / 原本 [138, 161]・人物 [124, 124] -- interruption_cancellation: 共通 [departure] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] +- interruption_cancellation: 共通 [departure, threshold_route_loss, duel_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] + 原本中断参照: [{"path": "docs/traceability/original/BASELINE.txt", "lines": [148, 148], "text": " 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}, {"path": "docs/traceability/original/BASELINE.txt", "lines": [153, 153], "text": " * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。", "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a"}] + 旧確定ロック legacy_not_original: [{"path": "scripts/relationship/relationship_service.gd", "sha256": "d2f6304aa643b98914c5d65bf3eb673ca8cc427476187f43e76b4b941410b1d3", "anchor": "1b07b87d3736e777932315a4bdde8b70cbf9cb23", "lines": [343, 355], "text": "func confirm_route_lock(relationship_id: StringName, route_id: StringName) -> CommandResult:\n\tvar state := get_relationship(relationship_id)\n\tif state == null:\n\t\treturn _not_found(\"Relationship\", relationship_id)\n\tif state.route_lock != RelationshipStateType.RouteLock.EXCLUSIVE_PENDING:\n\t\treturn _invalid(\"Route is not awaiting exclusive confirmation.\")\n\tif route_id.is_empty() or state.route_id != route_id:\n\t\treturn _invalid(\"Route confirmation does not match the pending route.\")\n\tvar old_lock := state.route_lock\n\tstate.route_lock = RelationshipStateType.RouteLock.EXCLUSIVE_LOCKED\n\troute_lock_changed.emit(relationship_id, old_lock, state.route_lock, state.route_id)\n\tlast_error = \"\"\n\treturn _success({&\"route_id\": route_id, &\"new_lock\": state.route_lock})", "git_blob_oid": "ba632c34d2a3fe5ebcb742746d3bbf54e06e383a"}] - save_handling: 共通 [snapshot_container] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - history_marks: 共通 [history_fields, history_cycle_parentage, portrait_marks] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P19-02 / 原本 [138, 161]・人物 [124, 124] - current_reachability: 共通 [identity_registration, threshold_route_loss] / missing / 欠損: 原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。 / owner: P20-02 / 原本 [138, 161]・人物 [124, 124] diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py b/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py index 08d1535..53cc09a 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py @@ -13,7 +13,10 @@ BASELINE = 'docs/traceability/original/BASELINE.txt' ANCHOR = '1b07b87d3736e777932315a4bdde8b70cbf9cb23' BASE = '8ca9263fee1ec4374d97c01fda82b95e1df6a977' BASE_HASH = '75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a' -SPEC_HASH = '263a01b943d8056727335fb76977c010298e1c229077f8da76e48683ba2e89bb' +SPEC_FILE_BYTES_SHA256 = '263a01b943d8056727335fb76977c010298e1c229077f8da76e48683ba2e89bb' +# Proof: build/owner-handoff/p19-review-r01/SPEC_HASH_REPRESENTATIONS.json +# Both hashes describe the same unchanged TASK_SPEC.json. +RUNNER_CONTRACT_SPEC_SHA256 = '3af3d9b931edc5449796662ad69bb6f67c80b48827a86565b1952931db68dd15' PINS_HASH = '6c778226a4cc6d0b0d682500759e7d4229c926a27bd2e247b00b9c3e5f1a2fb0' ROUTES = {'love': '純愛', 'ntr': 'NTR', 'corruption': '堕落'} PEOPLE = [('anri', 'アンリ'), ('fine', 'フィーネ'), ('tomari', 'トマリ'), @@ -26,6 +29,36 @@ SERVICE = 'scripts/relationship/relationship_service.gd' RUNTIME = 'autoload/simulation_runtime.gd' CATALOG = 'data/characters/mvp_unique_characters.json' +EVENT = 'scripts/events/event_service.gd' +PREVIEW = 'scripts/relationship/placement_risk_preview_service.gd' +LEGACY_REASON = 'P18-01 forbids one-to-one conversion; legacy numbers/daily limits are not approved originals.' +LEGACY_RANGES = { + 'coassignment_attack': [(SERVICE,264,312),(RUNTIME,6850,6850),(EVENT,1039,1039),(PREVIEW,536,565),(PREVIEW,619,640)], + 'zero_break': [(SERVICE,264,312),(RUNTIME,6850,6850),(EVENT,1039,1039)], + 'love_actions': [(SERVICE,246,261)], + 'threshold_route_loss': [(SERVICE,315,340),(SERVICE,343,355),(RUNTIME,342,343),(EVENT,1047,1047)], + 'legacy_event_ui': [('scenes/main/main.gd',98,101)], +} + + +def validate_legacy(root, document): + rules = {r['id']: r for r in document['common_rules']} + for identity, ranges in LEGACY_RANGES.items(): + rule = rules[identity] + require(rule['status'] == 'missing' and rule['legacy_classification'] == 'legacy_not_original', + 'legacy/original classification') + require(rule['implementation'] == 'original conformance missing; see legacy_evidence' + and rule['legacy_reason'] == LEGACY_REASON, 'unqualified legacy absence') + entries = rule.get('legacy_evidence') + require(type(entries) is list and len(entries) == len(ranges), 'missing legacy evidence') + for entry, (path, start, end) in zip(entries, ranges): + data = blob(root, ANCHOR, path) + oid = subprocess.check_output(['git','rev-parse',ANCHOR+':'+path],cwd=root).decode().strip() + require(entry == {'path':path,'anchor':ANCHOR,'git_blob_oid':oid, + 'sha256':sha(data),'lines':[start,end], + 'text':'\n'.join(data.decode().splitlines()[start-1:end])}, 'legacy text/blob/range') + require(data == (root/path).read_bytes(), 'legacy current source mismatch') + def sha(data): return hashlib.sha256(data).hexdigest() @@ -63,7 +96,7 @@ def selection(root): def binding(root): raw = lambda p: (root / p).read_bytes() - require(sha(raw(OUT + 'TASK_SPEC.json')) == SPEC_HASH, 'immutable spec changed') + require(sha(raw(OUT + 'TASK_SPEC.json')) == SPEC_FILE_BYTES_SHA256, 'immutable spec changed') spec = decode(raw(OUT + 'TASK_SPEC.json')) require(sha(raw(OUT + 'FROZEN_GAME_INPUT_PINS.json')) == spec['frozen_game_input_pins_sha256'] == PINS_HASH, 'frozen pins SHA differs from immutable spec') @@ -86,7 +119,9 @@ def binding(root): require(raw(p) == blob(root, ANCHOR, p), 'stale audited source: ' + p) return {'actual_commit': subprocess.check_output(['git', 'rev-parse', 'HEAD'], cwd=root).decode().strip(), 'selected_files': len(actual), 'anchor': ANCHOR, 'file_equality': True, - 'native_evidence_reuse_accepted': False} + 'native_evidence_reuse_accepted': False, + 'TASK_SPEC_file_bytes_sha256': SPEC_FILE_BYTES_SHA256, + 'Runner_git_show_stripped_UTF8_contract_spec_sha256': RUNNER_CONTRACT_SPEC_SHA256} def expected(root): @@ -108,7 +143,7 @@ def expected(root): 'lines': [start, end], 'text': '\n'.join(data.decode().splitlines()[start - 1:end])} def item(identity, start, end, note, owner, status='missing', source=None): return {'id': identity, 'authority': cite(start, end), 'status': status, - 'implementation': source or 'not implemented', 'owner': owner, + 'implementation': source or 'original conformance missing', 'owner': owner, 'observation': note, 'gap': None if status == 'implemented' else '欠損: ' + note} # Only narrow storage facts are implemented; simulation/route completion never follows. rules = [ @@ -121,7 +156,7 @@ def expected(root): item('identity_registration', 138, 138, 'Runtimeは登録済み人物・相互対応を検証。既存カタログのヒロインはアンリのみ。通常ルート入口ではない。', 'P19-01', 'partial', evidence(RUNTIME, 6791, 6812)), item('legacy_event_ui', 154, 157, '既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。', - 'P19-01', 'partial', evidence('scenes/main/main.gd', 89, 101)), + 'P19-01', 'partial', evidence('scenes/main/main.gd', 98, 101)), ] clauses = [ ('defense_reduction', 141, 141, 'P18-02'), ('post_break_metric', 142, 143, 'P18-02'), @@ -136,6 +171,17 @@ def expected(root): for identity, start, end, owner in clauses: rules.append(item(identity, start, end, '原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。', owner)) + for rule in rules: + if rule['id'] in LEGACY_RANGES: + rule.update(status='missing', implementation='original conformance missing; see legacy_evidence', + legacy_classification='legacy_not_original', legacy_reason=LEGACY_REASON) + rule['gap'] = '欠損: ' + rule['observation'] + ' ' + LEGACY_REASON + rule['legacy_evidence'] = [] + for path, start, end in LEGACY_RANGES[rule['id']]: + entry = evidence(path, start, end) + entry['git_blob_oid'] = subprocess.check_output( + ['git','rev-parse',ANCHOR+':'+path],cwd=root).decode().strip() + rule['legacy_evidence'].append(entry) # Read complete selected atomic records, not only their condition strings. atoms = decode(raw(PLAN + 'atomic_requirements.json'))['requirements'] atoms = [x for x in atoms if set(x.get('source_group_ids', [])) & {'B-7.' + str(i) for i in range(1, 7)}] @@ -156,7 +202,7 @@ def expected(root): 'post_break_metric', 'barrier_block', 'coassignment_attack', 'zero_break', 'contact_after_break'], 'duel_effects': ['duel_types', 'duel_win', 'duel_loss'], 'route_selection_effects': ['threshold_route_loss', route + '_actions', 'route_skills'], - 'interruption_cancellation': ['departure'], 'save_handling': ['snapshot_container'], + 'interruption_cancellation': ['departure', 'threshold_route_loss', 'duel_loss'], 'save_handling': ['snapshot_container'], 'history_marks': ['history_fields', 'history_cycle_parentage', 'portrait_marks'], 'current_reachability': ['identity_registration', 'threshold_route_loss']} categories = {} @@ -169,6 +215,12 @@ def expected(root): '原本未定義/D08 pending: 人物固有のイベント列・条件・中断取消・進行保存・履歴と通常到達は未制作/未証明。共通要求から固有仕様を創作しない。', owner) gap['character_authority'] = cite(118 + i) categories[category] = {'common_rule_refs': refs[category], 'character_specific': gap} + if category == 'interruption_cancellation': + categories[category].update(route_termination_authorities=[cite(148),cite(153)], + legacy_classification='legacy_not_original', legacy_reason=LEGACY_REASON, + legacy_evidence=[e for r in rules if r['id']=='threshold_route_loss' + for e in r['legacy_evidence'] if e['path']==SERVICE and e['lines']==[343,355]]) + cells.append({'character_id': key, 'name': name, 'route_id': route, 'route': route_name, 'natural_route_complete': False, 'categories': categories}) return {'task_id': 'P19-03-TABLE', 'schema_version': 1, @@ -190,8 +242,10 @@ def expected(root): 'accounting': '14/88 unchanged; formal Runner validation, independent whole-unit Opus review and normal integration/final required; no game acceptance'} -def verify(candidate, canonical): +def verify(candidate, canonical, root=None): require(type(candidate) is dict, 'document must be an object') + if root is not None: + validate_legacy(root, candidate) # Exact canonical equality also rejects additions, type coercion, invented numbers, # owner/status promotion and unsupported completion, including nested metadata. require(json.dumps(candidate, ensure_ascii=False, sort_keys=True) == @@ -215,6 +269,10 @@ def markdown(d): r['observation'], '', '原本 %s:%s–%s' % (BASELINE, *r['authority']['lines']), '', '```text', r['authority']['text'], '```', '', '実装証拠: ' + json.dumps(r['implementation'], ensure_ascii=False, sort_keys=True), ''] + if 'legacy_evidence' in r: + lines += ['旧実装: ' + r['legacy_classification'] + ' / ' + r['legacy_reason'], '', + '旧証拠 (git_blob_oid: Git blob OID; sha256: file-bytes SHA-256): ' + + json.dumps(r['legacy_evidence'], ensure_ascii=False, sort_keys=True), ''] for c in d['cells']: lines += ['## ' + c['character_id'] + ' / ' + c['name'] + ' / ' + c['route'], ''] for category, record in c['categories'].items(): @@ -222,6 +280,9 @@ def markdown(d): lines += ['- ' + category + ': 共通 [' + ', '.join(record['common_rule_refs']) + '] / missing / ' + g['gap'] + ' / owner: ' + g['owner'] + ' / 原本 ' + str(g['authority']['lines']) + '・人物 ' + str(g['character_authority']['lines'])] + if category == 'interruption_cancellation': + lines += [' 原本中断参照: ' + json.dumps(record['route_termination_authorities'], ensure_ascii=False), + ' 旧確定ロック legacy_not_original: ' + json.dumps(record['legacy_evidence'], ensure_ascii=False)] lines.append('') lines += ['## ルート別適用性', ''] for route, support in d['route_support'].items(): @@ -245,10 +306,12 @@ def main(): result = binding(root) if not args.source_binding_only: canonical = expected(root) + validate_legacy(root, canonical) if args.write: (root / OUT / 'REACHABILITY_TABLE.json').write_text(json.dumps(canonical, ensure_ascii=False, indent=2) + '\n', encoding='utf-8') (root / OUT / 'REACHABILITY_TABLE.md').write_text(markdown(canonical), encoding='utf-8') else: + validate_legacy(root, decode((root / OUT / 'REACHABILITY_TABLE.json').read_bytes())) verify_records(decode((root / OUT / 'REACHABILITY_TABLE.json').read_bytes()), canonical, (root / OUT / 'REACHABILITY_TABLE.md').read_bytes()) print(json.dumps({'audit_integrity': 'pass', 'formal_acceptance': 'pending_runner_and_independent_review', **result})) diff --git a/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py b/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py index 244aa65..05d84d8 100644 --- a/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py @@ -29,6 +29,39 @@ class AuditTests(unittest.TestCase): self.assertEqual({r['status'] for r in value['common_rules']}, {'implemented', 'partial', 'missing'}) audit.verify(value, self.canonical) + def test_independent_legacy_source_evidence(self): + import subprocess + document = audit.decode((ROOT / audit.OUT / 'REACHABILITY_TABLE.json').read_bytes()) + audit.validate_legacy(ROOT, document) + for rule in document['common_rules']: + for entry in rule.get('legacy_evidence', []): + data = subprocess.check_output(['git', 'show', audit.ANCHOR + ':' + entry['path']], cwd=ROOT) + self.assertEqual(data, (ROOT / entry['path']).read_bytes()) + self.assertEqual(entry['git_blob_oid'], subprocess.check_output( + ['git','hash-object','--stdin'], input=data, cwd=ROOT).decode().strip()) + start, end = entry['lines'] + self.assertEqual(entry['text'], '\n'.join(data.decode().splitlines()[start-1:end])) + rules = {r['id']: r for r in document['common_rules']} + self.assertIn('func restore_shield', rules['love_actions']['legacy_evidence'][0]['text']) + self.assertIn('shield_broken', rules['zero_break']['legacy_evidence'][0]['text']) + self.assertIn('EXCLUSIVE_LOCKED', rules['threshold_route_loss']['legacy_evidence'][1]['text']) + + def test_legacy_evidence_required_independently(self): + for identity in audit.LEGACY_RANGES: + for mutation in ('drop', 'empty', 'absence', 'blob', 'text'): + changed = copy.deepcopy(self.canonical) + rule = next(r for r in changed['common_rules'] if r['id'] == identity) + if mutation == 'drop': + rule.pop('legacy_evidence') + elif mutation == 'empty': + rule['legacy_evidence'] = [] + elif mutation == 'absence': + rule['implementation'] = 'not implemented' + else: + rule['legacy_evidence'][0]['git_blob_oid' if mutation == 'blob' else 'text'] = 'stale' + with self.subTest(identity=identity, mutation=mutation), self.assertRaises(ValueError): + audit.validate_legacy(ROOT, changed) + def test_exact_cell_product(self): mutations = { 'missing': lambda d: d['cells'].pop(),