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..7a15daa --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/IMPLEMENTATION_REPORT.md @@ -0,0 +1,125 @@ +# P19-03 実装提出報告 + +提出状態。受入は未確定。原受入「7名×3ルートの到達表があり、未制作内容は欠損として残る。」を維持する。14/88は変更しない。 + +## 変更範囲 + +Repair 1開始点e0420d57a381a1644357f0590536e1d47c9bca9fから、このディレクトリの指定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名を削減する理由にしていない。 + +## 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とは区別する。 + +## Repair 1の実行記録(過去のローカル確認) + +以下は正式Runner実行ではない。記録済み修復指示に基づき3登録コマンドをローカル実行した。 + +生成 — 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 --write +``` + +p19-table — 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 --check +``` + +p19-negative — 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/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: 同配置・軽減・ブレイク・接触・閾値・確定遷移。既存旧汎用モデルの閾値を原本へ転用しない。 +- 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が必要。どの完了数・元台帳も変更していない。 + + +## Repair 2: BASE定義projectionと台帳更新の分離 + +開始点Sは806de25068bc423136063791afcea811d251ee1b。編集前にACTUAL_OPUS_REPAIR2_DIRECTION.jsonとACTUAL_FAILED_INTEGRATION.json、immutable TASK_SPECと既存チェッカーを確認。最新run指示に従い、実マージ候補の作成・検証は実装担当では行わない。指定5ファイルのみを変更する。Repair 1の4修正を保持し、任意の低3指摘は延期したまま。 + +### 実差分とallowlistの根拠 + +git showによるBASE 8ca9263とmain 6e17caeのkey-level比較を行った。candidate 1875b03のwork_packages.jsonは6e17caeと完全一致。差分は次だけ(配列index 19=P19、remaining_deliverables index 2=P19-03): + +|JSON path|差分| +|---|---| +|/19/current_summary|変更| +|/19/updated_at_jst|変更| +|/19/remaining_deliverables/2/current_execution|TASK_SPEC.jsonからROOT_CURRENT_ACCEPTANCE_STATUS.jsonへの参照更新| +|/19/remaining_deliverables/2/current_summary|変更| +|/19/remaining_deliverables/2/progress_summary|変更| +|/19/remaining_deliverables/2/remaining_gaps/0, /1|通常integration/final待ちの進捗説明へ更新| +|/19/remaining_deliverables/2/evidence|1件から2件| +|/19/remaining_deliverables/2/submitted_commit|806de25068bc423136063791afcea811d251ee1bを追加| +|/19/remaining_deliverables/2/updated_at_jst|変更| + +package allowlistはstate / legacy_state / current_summary / updated_at_jst。unit allowlistはstate / current_execution / remaining_gaps / updated_at_jst / submitted_commit / current_summary / progress_summary / evidence。state系は通常進捗遷移として明示的に許可し、同じ実registerに既存のキーだけを採用した。通常finalの完了時刻・source-ref用に、BASEの他unitで既に使われるcompleted_at_jst(P13-03)、implementation_commit(P13-03)、integrated_commit(P13-02)、integration_commit(P13-03)、normal_integration_candidate(P04-01)だけをunit階層で追加許可した。キーのprefixや任意のtimestamp/source_refキーは許可しない。allowlistの値は進捗メタデータとしてprojectionから全体を除外する。 + +それ以外の全キーは未知キーを含め再帰的な値・型・有無を保ち、BASE projectionと比較する。30 package / 88 unitのID・順序・件数、全title/work/acceptance、phase/parent/depends_on/requirement_ids/decisions/supplement_ids/owner_roles/state_scope等を固定する。atomic_requirements.jsonとdecisions.jsonは実main差分なしのため引き続きbyte-exact。D05/D08のstatus/answerは変更不可。selection recordもbyte-exact。 + +所有者集合・原子要件・authority_snapshotsはBASE blobのみから読む。各snapshotはanchored_base_commit、BASE blobのsha256、projected recordsを保持する。work packagesは全30/88定義を保持し、進捗を除外した。表の21セル、共通ルール・引用・status・owner・欠損・pending/null値は変更していない。Markdownには固定参照の説明だけを追加した。--writeは1回実行、--checkは読込み専用。 + +### Repair 2 ローカル実行 + +cwdとproject-rootは /Users/korizatou114/Projects/TheTree-managed-worktrees/p19-03-reachability/P19-03-TABLE-implement。 +以下は正式Runner試験ではない。実際の呼出しは各scriptをdocs/plans/original-completion-2026-10-02/execution/p19-03/配下の相対パスで指定し、--project-rootには上記実絶対パスを指定した。 + +- python3 -B 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: exit 0。 +- p19-table: python3 -B 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: exit 0。 +- p19-source-binding: python3 -B 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: exit 0。 + +上記3呼出しのstdoutはaudit_integrity=pass、formal_acceptance=pending_runner_and_independent_review、actual_commit=806de25068bc423136063791afcea811d251ee1b、selected_files=1368、anchor=1b07b87d3736e777932315a4bdde8b70cbf9cb23、file_equality=true、native_evidence_reuse_accepted=false。spec file-bytesとRunner contractの両hashも従来値のまま。 + +実mainおよび失敗candidateの実blobをPath.read_bytes差替えで読ませる自己試験は、生成JSONとMarkdownのbyte完全一致を検証する。実registerの書換え・一時worktree・mergeは不要。合成完了/source-ref例も同じ検査を通す。各定義フィールドの変更・削除、package/unit objectの未知キー追加、package/unit/各定義listの件数/順序変更、D05/D08承認、atomic/decisions/selectionの変更を個別subtestで拒否する。既存12テストは維持。 + +実merged-candidate確認: **Root preflight pending**。新S提出と通常validation後、Rootが最新main上の実Sについてラベル付き非正式isolated preflightで同じ3チェッカーを実行する。その後に別Opus whole-original re-review、通常prepare-integration/finalが必要。今回のローカル成功やworker exit 0は受入ではない。正式進捗14/88は維持。native GUI/Windowsは本単位に適用外、global Windowsとゲーム受入はopen。 + +自己試験の探索版2回は全recordや深い履歴データの同型フィールドまで反復走査して時間がかかったため中断(各exit 130、KeyboardInterrupt)。package/unitの異なる定義キーごとに変更・削除を検査し、ネストした定義値は全体を比較する形へ整理した。BASE blobを一度実読込して負例ループ内で再利用し、各負例ごとのgit show起動を省いた。検査対象・既存controlは削除していない。shell here-documentを用いた初回の読取り差分確認は環境の一時ファイル制約で失敗(exit 1)、python3 -cで同じ確認を実行した。 + +最終p19-negative呼出し: python3 -B 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 + +exit 0、出力: Ran 16 tests in 16.285s / OK。実main/candidate正例、合成final正例、全package/unit定義フィールド負例と既存controlを含む。git diff --checkもexit 0。最終差分は指定5ファイルのみ。生成前後のJSONを比較しauthority_snapshots以外の全フィールドが一致することも静的確認した。 + +同じp19-tableコマンドを絶対scriptパスで再確認(exit 0、同じpass出力)。呼出し前後にこのディレクトリの全通常ファイルSHA-256 mapを比較し一致: Read-only byte determinism: pass。最終git diff --checkもexit 0。 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..31ef3f2 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.json @@ -0,0 +1,25780 @@ +{ + "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": "missing", + "implementation": "original conformance missing; see legacy_evidence", + "owner": "P19-01", + "observation": "既存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", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 141, + 141 + ], + "text": " * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing; see legacy_evidence", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "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", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 146, + 146 + ], + "text": " 2. **ブレイク:** 耐久値0で「心の隙間」発生。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing; see legacy_evidence", + "owner": "P18-02", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "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", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 147, + 147 + ], + "text": " 3. **NTR進行:** ライバル接触で直接NTR度が上昇。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing", + "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": "original conformance missing; see legacy_evidence", + "owner": "P18-03", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "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", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 150, + 151 + ], + "text": "NTR阻止のための直接的解決手段。\n * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing; see legacy_evidence", + "owner": "P19-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "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", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 156, + 156 + ], + "text": " * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "owner": "P20-01", + "observation": "原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。", + "gap": "欠損: 原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。" + }, + { + "id": "departure", + "authority": { + "path": "docs/traceability/original/BASELINE.txt", + "lines": [ + 135, + 135 + ], + "text": " * **離脱:** 原則ロストしないが、防衛戦敗北での一時拉致や、特定バッドエンド確定時にのみ敵や背景オブジェクト化する。", + "baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a" + }, + "status": "missing", + "implementation": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "threshold_route_loss", + "duel_loss" + ], + "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": "original conformance missing", + "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" + } + }, + "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": [ + "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": "original conformance missing", + "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": "original conformance missing", + "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": "original conformance missing", + "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", + "anchored_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", + "anchored_base_commit": "8ca9263fee1ec4374d97c01fda82b95e1df6a977", + "records": [ + { + "id": "P00", + "phase": 0, + "title": "原本・作業対象の固定", + "depends_on": [], + "size": "S", + "requirement_ids": [ + "B-1.1", + "B-14.1", + "B-14.2", + "B-14.3", + "B-14.4" + ], + "work": "指定Drive原本を再照合し差分を保存。ローカル制作コピーの全ソース・現在のセーブ形式・既存成果物を識別する。今回計画の原本は保存版であり最新取得済みとは扱わない。", + "acceptance": "原本SHAと変更履歴、制作対象、現在の実装証拠が再現可能。原本更新があれば影響要件を再評価。", + "decisions": [], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P00-01", + "title": "原本と基準ソースの継続照合", + "work": "指定原本の読取保存版と別冊AのSHA、HEAD、採用済みマップを固定し、更新時だけ影響要件を再監査する。", + "acceptance": "原本の優先順位と差分履歴が再現できる。最新Drive再取得を今回実施したとは表示しない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 1, + 3 + ], + "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": "completed", + "execution_progress": { + "scope": "evidence linked by source/time; package completion not inferred", + "progress_snapshot": "progress_snapshot.json", + "updated_at_jst": "2026-10-02T01:41:59.589881+09:00" + } + }, + { + "id": "P01", + "phase": 0, + "title": "原子要件と受入台帳", + "depends_on": [ + "P00" + ], + "size": "M", + "requirement_ids": [ + "B-1.1", + "B-1.2", + "B-1.3", + "B-1.4", + "B-1.5", + "B-1.6", + "B-14.1", + "B-14.2", + "B-14.3", + "B-14.4" + ], + "work": "75複合要件を単独判定できる条件へ分割。原本の各文、追加10項目、UI入口、Runtime、保存、試験、資産、完了責任を対応付ける。", + "acceptance": "全原本文に対応先があり、未設定・未実装・未検証が別状態。派生仕様の独自ルールを確定仕様に昇格させない。", + "decisions": [ + "D01", + "D02", + "D03", + "D04", + "D05", + "D06", + "D07", + "D08", + "D09", + "D10" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P01-01", + "title": "原子要件への分割", + "work": "原本文の複数条件を分割し、施設30件、追加10項目、7人物、図鑑、全エンド、工程4件を漏れなく対応付ける。", + "acceptance": "各原本文に対応先があり、同じ条件を重複加点しない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + }, + { + "id": "P01-02", + "title": "現在の実装と証拠の再監査", + "work": "実装、未接続、未検証、未設定、未制作を分け、現在HEADに適用できる証拠と過去証拠を識別する。", + "acceptance": "通常入口・Runtime・保存・試験・資産の対応が存在し、候補コードを採用済みとして数えない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + }, + { + "id": "P01-03", + "title": "集計基準の固定", + "work": "原子要件の分母、適用する完了条件、理由付き適用外、判定者を版管理して初回進捗を集計する。", + "acceptance": "分母と分子のID一覧から他者が再計算できる。テスト件数や部分実装への一律半点を使用しない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "current_facility_audit": { + "status": "Live audit: original30 = normal16 + definition-only1 + unmapped13; 17 mapped dimensions/layers match; customer limits unset13. Not full acceptance.", + "evidence": "execution/CURRENT_FACILITY_AUDIT.md", + "all_original_acceptance": false + } + }, + "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", + "execution_progress": { + "scope": "evidence linked by source/time; package completion not inferred", + "progress_snapshot": "progress_snapshot.json", + "updated_at_jst": "2026-10-02T01:41:59.589881+09:00" + } + }, + { + "id": "P02", + "phase": 0, + "title": "既存機能の回帰基準", + "depends_on": [ + "P00" + ], + "size": "M", + "requirement_ids": [ + "B-3.1a", + "B-3.1b", + "B-3.3", + "B-3.4a", + "B-3.4b", + "B-4.2", + "B-4.3c", + "B-5.4" + ], + "work": "時計、停止中建設、最高欲求、混雑、決算、赤字終了、救護/EV同伴/休息の既存証拠を新規開発の基準にする。必要な代表セーブを固定。 Windows基準環境と配布EXEのスモーク確認を準備し、利用不能なら未検証として記録する。", + "acceptance": "日付・入力・乱数・セーブを固定して再実行できる。既存PASS8群を新仕様導入で失わない。", + "decisions": [], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P02-01", + "title": "回帰と代表セーブの固定", + "work": "最新全回帰のソース一致を確認し、初期・営業中・移動中・日付境界・防衛中の代表セーブを選ぶ。", + "acceptance": "ログ、入力、シード、保存版、チェック数が対応し、失敗を含む履歴が追える。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p02-01-completion-acceptance-r01.json", + "bytes": 8539, + "sha256": "45845238d8a73b84fd346f2d834ee4aaa12d32b45367ea0952b523db9b2523d9" + } + }, + { + "id": "P02-02", + "title": "通常操作の基準シナリオ", + "work": "開業、雇用、配置、仕入れ、建設、保存終了再開を通常画面で通す。", + "acceptance": "デバッグ値投入の試験と自然営業の試験を区別し、画面と実状態が一致する。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。", + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p02-02-completion-acceptance-r02.json", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p02-02-completion-acceptance-r02.json", + "bytes": 14498, + "sha256": "a417392fbb9e82431cae92cc45e5bfd86d03eacdbde116958e0c9183cdb0c122" + } + }, + { + "id": "P02-03", + "title": "Windows基準環境の記録", + "work": "利用できるWindows機のOS、CPU、GPU、RAM、表示倍率、解像度、検証するビルドを記録する。", + "acceptance": "過去の実機確認を現ビルドへ転用せず、同一EXEの起動と保存再開を確認する。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。", + "blocking_conditions": [ + { + "condition": "Actual Windows environment and same current EXE ordinary start/save/exit/restart", + "state": "blocked", + "reason": "Current CUA inventory exposes Mac only. Windows control connection information requested; no measured Windows evidence exists. Export work completed independently." + } + ], + "current_source_acceptance": "Exact adopted r05 1299-file source exported and distribution integrity independently accepted; same EXE Windows native environment/start/save/restart remains unaccepted." + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "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": "in_progress", + "execution_progress": { + "scope": "evidence linked by source/time; package completion not inferred", + "progress_snapshot": "progress_snapshot.json", + "updated_at_jst": "2026-10-02T01:41:59.589881+09:00", + "current1277_checkpoint": { + "at_jst": "2026-10-02T22:55:59.434380+09:00", + "source_files": 1277, + "actual_suites": 169, + "actual_checks": 13640, + "native_phases": 171, + "normal_parse": 294, + "Root_raw_files": 4024, + "Root_private_profiles": 341, + "Root_temporal_checkpoints": 344, + "Root_review_conditions": 2470, + "failures": 0, + "root_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-full169-actual-root-review-r01/review.json", + "sha256": "285649838b71c069ce3977c2deddf1fec4cb89fb6b39e95408d93f13582e6a39" + }, + "limited_adoption": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-adoption-root-r01/adoption.json", + "sha256": "cbfca0f31ec172e5fd9fbeeeec0ee1f0431d642c06a3d86a83958ce261ddb6fe" + }, + "post_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-post-adoption-root-review-r01/review.json", + "sha256": "8a94cd96b4a439ab5dfd9381ff3332edfeb5233c5f1e128d081ffea6a76edb4f" + }, + "kitchen": { + "path": "artifacts/original-completion-2026-10-02/p09-kitchen-selected1273-limited-actual-root-review-r03/review.json", + "sha256": "b3a0f669f1d76d792531279b416e9d65c0292434e27153fd302bc0c7af3cfb19" + }, + "notification_log": { + "path": "artifacts/original-completion-2026-10-02/p20-log-limited-native-actual-root-review-r03/review.json", + "sha256": "8eec3a8492aa74f571eb21447c6911cea64d176e0f813152f226b2b4122ba387" + }, + "source_refs": 12, + "outside_refs": 2, + "game_Runtime_Save_project_changed": false, + "strict_kitchen_geometry_narrowly_verified": true, + "all_dining_or_P09_accepted": false, + "notification_natural_OS_accepted": false, + "P20_story_catalog_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + }, + "current1285_candidate_checkpoint": { + "at_jst": "2026-10-07T23:54:31.996054+09:00", + "production_source_files_at_document_update": 1277, + "candidate_source_files": 1285, + "actual_suites": 170, + "actual_checks": 13961, + "native_phases": 172, + "failures": 0, + "execution": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/execution.json", + "sha256": "a91805ea5075ad097ae48c63cdd1a0c662e80410292f24f1a3e429acaa5fa9b7" + }, + "verification": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/standard/verification.json", + "sha256": "1d2befd4b9a997960b9bc7731508d9e0f67c71eb9f7b6162e621e6343422e823" + }, + "Root_full_proof_acceptance": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-actual-full-proof-acceptance-r01.json", + "sha256": "3b5cbf125b0ad62f98e8a9414385673ee1933d7d822276b9f6b663fa289f53c0" + }, + "UI_functional_checks": 203, + "UI_parse_checks": 300, + "source_refs_planned": 18, + "outside_refs_planned": 1, + "total_refs_planned": 19, + "factual_bindings": { + "full_preparation_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-combined170-rank-full19-native-successor-prep-r01/input-seal.json", + "sha256": "6f852649c58f35c8b650d9e5074149cb92c8d09c1e4a3d1527ca79526f9de877" + }, + "full_actual_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/actual-input-seal.json", + "sha256": "916e539d1d4508ee44c1d93267c6dbd0096df052d19fd0889ba21a1320ad85d7" + }, + "full_Root_review": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-literal-actual-admission-r01/review.json", + "sha256": "4d1b2a55068b55077c17ed6a2f96ecb1f0aa5f9f0712522a1ee38afbe34829d6" + }, + "full_peer_review": { + "path": "artifacts/original-completion-2026-10-02/p17-full19-r07-literal-actual-independent-admission-r01/review.json", + "sha256": "416f139a46e8df42306a9874c5f1ba51abc689abcd46d6309b9b73f5c8eeb6af" + }, + "source_targets": 18, + "outside_targets": 1, + "total_targets": 19 + }, + "actual_source_adoption": false, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + }, + "current1285_adopted_checkpoint": { + "at_jst": "2026-10-08T00:01:03.922197+09:00", + "actual_source_adoption": true, + "production_source_files": 1285, + "source_refs_adopted": 18, + "outside_refs_adopted": 1, + "total_refs_adopted": 19, + "adoption": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/adoption.json", + "sha256": "f6ac9e3753fdf0df5966d34b50e1f51eb24ac0c3814911c1a51d6b9ff418397d" + }, + "source_after": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/source-after.json", + "sha256": "066c474908fa8840f4ed6b615d48d92245690d03b8445b113e20c7551d86e5b7" + }, + "public_runner_preparation": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/canonical170-prepare-after-adoption.json", + "sha256": "5c099c7abfa46182eb9282fcf9dee8847c7e93c04c1f58bf7ae0ac1ec0e0f520" + }, + "actual_suites": 170, + "actual_checks": 13961, + "actual_native_phases": 172, + "failures": 0, + "rollback_attempted": false, + "source_byte_map_equal_to_actual_tested_map": true, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + }, + "current_paid_role_formal_cross_pid_checkpoint": { + "at_jst": "2026-10-08T04:45:00.044556+09:00", + "source_files": 1287, + "source_mutations": 0, + "actual_writer_checks": 126, + "actual_reader_checks": 110, + "actual_checks": 236, + "actual_parse_checks": 299, + "actual_native_phases": 4, + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-formal-cross-pid-actual-root-review-r03/review.json", + "bytes": 5834, + "sha256": "48bf34aee233c1751b8b8edfbe5f33759330b1147ce5828b9a6e2307a1bc3ade" + }, + "formal_packages": 4, + "formal_files": 16, + "whole_typed_pairs": 16, + "whole_typed_buffers": 24, + "Runtime_typed_normalizations": 0, + "all16_writer_transport_reader_user_formal_members_identical": true, + "normal_Main_OS_input_accepted": false, + "old_formal_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_Windows1299_unsorted_membership_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T15:41:21.071531+09:00", + "source_files": 1299, + "evidence": { + "export": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-export-actual-root-review-r01/review.json", + "bytes": 3592, + "sha256": "29c8aaca0574c14d5663587cfd12f526456f6400ef6202bb936d5c930f77c987" + }, + "same_pck_mac": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 8489, + "sha256": "08b01689f812a128989d8e5aa9e826bf9a151ee70e0416cf6c0701850a4e4856" + }, + "kit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-native-kit-actual-root-review-r01/review.json", + "bytes": 1067, + "sha256": "ed43aa411068e8a7fff53b95a25194748c4ae895dcf040fc385eebd928e817f6" + }, + "PowerShell_mac": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2101, + "sha256": "8b3ee7f510c9c7baf3758d42ffd8981690c7be07d87484a7b0fb0d6e55fb6096" + }, + "transfer": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-native-kit-transfer-r01/transfer.json", + "bytes": 778, + "sha256": "e601cd9044fe03ad835fef334633fb397e948261ff3e578db200e05c4d8e2be7" + } + }, + "mac_same_PCK_suites": 8, + "mac_same_PCK_checks": 804, + "kit_manifest_files": 2620, + "transfer_ZIP_members": 2621, + "PowerShell_mac_parse_scripts": 2, + "Csharp_mac_compile_passed": true, + "ZIP_CRC_verified": true, + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "Windows_PowerShell_5_1_parse": "unverified", + "Windows_Csharp_compile": "unverified", + "normal_OS_input_accepted": false, + "finished_EXE_assets_accepted": false, + "whole_goal_accepted": false + }, + "current_baseline_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p02-01-completion-acceptance-r01.json", + "bytes": 8539, + "sha256": "45845238d8a73b84fd346f2d834ee4aaa12d32b45367ea0952b523db9b2523d9" + } + }, + { + "id": "P03", + "phase": 1, + "title": "保存形式と移行契約", + "depends_on": [ + "P01", + "P02" + ], + "size": "L", + "requirement_ids": [ + "B-2.1", + "B-4.1", + "B-5.2", + "B-6.3", + "B-7.2", + "B-8.1", + "B-9.1" + ], + "work": "施設、会計、客、職員、関係値、天候の新項目を版管理。原本と異なる関係値は一対一変換を仮定せず旧値を保全。移行は検証成功時のみ確定する。", + "acceptance": "旧版/欠損/未知版/破損/途中書込の試験。失敗時に元セーブを変更しない。新しい状態は途中保存から同一結果で再開。", + "decisions": [ + "D06", + "D07" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P03-01", + "title": "機能別の保存契約", + "work": "会計、施設状態、人数、欲求属性、マナ、人物、図鑑、物語に新規項目を追加する前に保存条件を固定する。", + "acceptance": "新旧版・欠損・未知版・破損を検証し、失敗時に原データが変わらない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + }, + { + "id": "P03-02", + "title": "配置と関係値の旧版移行", + "work": "寸法変更、動線喪失、旧関係値の意味を個別に確認し、移行プレビューと拒否時の復帰を用意する。", + "acceptance": "移動中、EV乗車中、搬送中、同時建設中の参照が孤立しない。推測による関係値変換をしない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。" + }, + { + "id": "P03-03", + "title": "プロセスを跨ぐ再開", + "work": "営業・配送・清掃・防衛・人物進行の途中で保存、終了、再起動して比較する。", + "acceptance": "同じ操作列の施設・財布・台帳・人物・イベントが一致し、二重効果がない。", + "evidence_policy": "各証拠のSHA/時点/実行版に限定。ゲーム原子PASSや最新ソースへの適用を自動推定しない。", + "candidate_kitchen_observation": { + "scope": "limited unadopted source/time-bound evidence only", + "r10_narrow278_inherited_game_driver_subset": true, + "r11_focused733_actual": true, + "actual_r11_narrow_rerun": false, + "all_completion_states_unchanged": true, + "updated_at_jst": "2026-10-02T08:28:41.189541+09:00" + } + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "cleaning_access_followup": { + "evidence": "execution/CLEANING_ACCESS_FOLLOWUP.md", + "status": "Alternate accessible destinations and wait/reconnect behavior implemented; cleaning-room UI corrected. Six targeted suites PASS; broad regression59503 remains active and spans this source change." + }, + "cleaning_animation_and_ordering": { + "status": "mop driven by actual active on-site work; explicit lexical cleanliness save/dispatch order fixes cross-process mismatch; related tests and rendered restart97 PASS", + "evidence": "execution/CLEANING_ANIMATION.md", + "all_original_acceptance": false + }, + "world_snapshot_cache": { + "status": "single cached geometry with detached reads and restore invalidation; 5 related suites PASS; 20000-cell same-state world serialization improved, full simulation budgets still fail", + "evidence": "execution/WORLD_SNAPSHOT_CACHE.md", + "all_original_acceptance": false + }, + "event_defense_integration": { + "status": "integrated_current_source_full_and_restart_verified", + "evidence": "artifacts/event-defense-integration-2026-09-30/", + "runtime_schema": 13, + "event_checks": 186, + "natural_producer_complete": false, + "all_original_acceptance": false, + "full_evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + } + }, + "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", + "execution_progress": { + "scope": "evidence linked by source/time; package completion not inferred", + "progress_snapshot": "progress_snapshot.json", + "updated_at_jst": "2026-10-02T01:41:59.589881+09:00", + "current1285_candidate_checkpoint": { + "at_jst": "2026-10-07T23:54:31.996054+09:00", + "production_source_files_at_document_update": 1277, + "candidate_source_files": 1285, + "actual_suites": 170, + "actual_checks": 13961, + "native_phases": 172, + "failures": 0, + "execution": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/execution.json", + "sha256": "a91805ea5075ad097ae48c63cdd1a0c662e80410292f24f1a3e429acaa5fa9b7" + }, + "verification": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/standard/verification.json", + "sha256": "1d2befd4b9a997960b9bc7731508d9e0f67c71eb9f7b6162e621e6343422e823" + }, + "Root_full_proof_acceptance": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-actual-full-proof-acceptance-r01.json", + "sha256": "3b5cbf125b0ad62f98e8a9414385673ee1933d7d822276b9f6b663fa289f53c0" + }, + "UI_functional_checks": 203, + "UI_parse_checks": 300, + "source_refs_planned": 18, + "outside_refs_planned": 1, + "total_refs_planned": 19, + "factual_bindings": { + "full_preparation_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-combined170-rank-full19-native-successor-prep-r01/input-seal.json", + "sha256": "6f852649c58f35c8b650d9e5074149cb92c8d09c1e4a3d1527ca79526f9de877" + }, + "full_actual_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/actual-input-seal.json", + "sha256": "916e539d1d4508ee44c1d93267c6dbd0096df052d19fd0889ba21a1320ad85d7" + }, + "full_Root_review": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-literal-actual-admission-r01/review.json", + "sha256": "4d1b2a55068b55077c17ed6a2f96ecb1f0aa5f9f0712522a1ee38afbe34829d6" + }, + "full_peer_review": { + "path": "artifacts/original-completion-2026-10-02/p17-full19-r07-literal-actual-independent-admission-r01/review.json", + "sha256": "416f139a46e8df42306a9874c5f1ba51abc689abcd46d6309b9b73f5c8eeb6af" + }, + "source_targets": 18, + "outside_targets": 1, + "total_targets": 19 + }, + "actual_source_adoption": false, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + }, + "current1285_adopted_checkpoint": { + "at_jst": "2026-10-08T00:01:03.922197+09:00", + "actual_source_adoption": true, + "production_source_files": 1285, + "source_refs_adopted": 18, + "outside_refs_adopted": 1, + "total_refs_adopted": 19, + "adoption": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/adoption.json", + "sha256": "f6ac9e3753fdf0df5966d34b50e1f51eb24ac0c3814911c1a51d6b9ff418397d" + }, + "source_after": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/source-after.json", + "sha256": "066c474908fa8840f4ed6b615d48d92245690d03b8445b113e20c7551d86e5b7" + }, + "public_runner_preparation": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/canonical170-prepare-after-adoption.json", + "sha256": "5c099c7abfa46182eb9282fcf9dee8847c7e93c04c1f58bf7ae0ac1ec0e0f520" + }, + "actual_suites": 170, + "actual_checks": 13961, + "actual_native_phases": 172, + "failures": 0, + "rollback_attempted": false, + "source_byte_map_equal_to_actual_tested_map": true, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + }, + "current_normal_input_checkpoint_2026_10_08": { + "recorded_UTC": "2026-10-07T16:08:47.613712+00:00", + "production_source_files": 1285, + "production_source_mutations": 0, + "full_goal_accepted": false, + "Windows_accepted": false, + "chapel": { + "functional_checks": 1265, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-native-r02-actual-root-review-r01/review.json", + "bytes": 49296, + "sha256": "c21aa3e67a70876b2caf44c69ee921aa60cb4aff16579aaf8d4cf5ca3eb733f0" + }, + "scope_integration": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-current1285-scope-integration-r01.json", + "bytes": 4426, + "sha256": "499a274b1d1dc3ab3f223298bd9b962a474598907cbd7cc9a0a0dc0e237ab2ad" + }, + "whole_A04_accepted": false + }, + "Anri_normal_Input": { + "functional_checks": 882, + "writer_checks": 653, + "reader_checks": 229, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-main-pair-actual-root-review-r01/review.json", + "bytes": 1929, + "sha256": "61b2b995b91426f4c5e07ef6c112febfc960b66e4514827355cf7c957c776564" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-normal-input-source-candidate-r05/input-seal.json", + "bytes": 2126, + "sha256": "56be2cd55ec38467c0f7f8dfe29c984d381752801c9ae1b1283ade7790656dd2" + }, + "typed_IO1_pairs": 5, + "natural_story_join_accepted": false, + "A03_actual_guest_payment_accepted": false, + "production_adoption": false + }, + "Mimi_sale_quote": { + "functional_checks": 63, + "parse_checks": 301, + "native_processes": 3, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-native-r03-actual-root-review.json", + "bytes": 2383, + "sha256": "177f76cd969d08e72ef313722862b3f9581d9a718b158327e173426c98806091" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-source-candidate-r03/input-seal.json", + "bytes": 2217, + "sha256": "3cce6dc1188f01c08a7415b43489f25d552f73bde18da1862fc3de25a2ee5d4d" + }, + "base_price_formula": null, + "production_adoption": false, + "ordinary_sale_UI_accepted": false, + "sale_ledger_accepted": false, + "formal_sale_save_accepted": false + } + }, + "current_manual_thumbnail_checkpoint_2026_10_08": { + "at_jst": "2026-10-08T01:47:45.104165+09:00", + "production_source_files": 1285, + "production_source_refs_adopted": 1, + "source_target": "scenes/main/main.gd", + "adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-manual-thumbnail-one-ref-source-adoption-r01/adoption.json", + "bytes": 1308, + "sha256": "0a849d52803d3b71da420d1ed8f5ed4a6fe6dc69fd220d0e0fea36e8c9c62b54" + }, + "source_after": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-manual-thumbnail-post-adoption-root-lineage-r01/source-after.json", + "bytes": 151038, + "sha256": "455b2bc827e1b2fd168a0d63843765959f67d45942f6072da6ad10bac7e69743" + }, + "full170_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-manual-thumbnail-full170-actual-root-review-r01/review.json", + "bytes": 110922, + "sha256": "b086446ed0a1f45aac20689735d4b4dbc9f1292ec7a7365e8a51a1b68f065583" + }, + "actual_suites": 170, + "actual_checks": 13961, + "actual_parse_checks": 298, + "actual_native_phases": 172, + "failures": 0, + "focused_save_restart_checks": 888, + "focused_parse_checks": 300, + "focused_native_phases": 4, + "focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-manual-thumbnail-anri-pair-actual-root-review-r01/review.json", + "bytes": 1953, + "sha256": "84325841e300fa2b92f33d77f07604fd3712979dce777f48f3ab7088e0401a48" + }, + "PNG_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-manual-thumbnail-actual-PNG-capture-root-review-r01.json", + "bytes": 1222, + "sha256": "9aeaa0e49b1fc669df54c64ed45a0f5ab9a580fa3336129ffc71d539aa1cdc66" + }, + "actual_saved_PNG_width": 320, + "actual_saved_PNG_height": 180, + "capture_readonly_Runtime": true, + "capture_timing_n": 10, + "capture_min_ms": 10.892, + "capture_max_ms": 14.19, + "performance_budget": null, + "source_byte_map_equal_to_actual_tested_map": true, + "rollback_attempted": false, + "private_startup_fields_adopted": 0, + "all_save_migrations_accepted": false, + "finished_assets_accepted": false, + "human_OS_accepted": false, + "native_Windows_accepted": false, + "whole_game_accepted": false + }, + "current_genuine_runtime9_migration_checkpoint": { + "at_jst": "2026-10-08T05:54:53.468674+09:00", + "source_files": 1287, + "historical_git_commit": "fb4ad23190f59ebbfc33a39e2f5210128393a971", + "historical_files": 982, + "old_schema": 9, + "current_schema": 14, + "cases": [ + "commute", + "active" + ], + "actual_checks": 271, + "actual_native": 7, + "legacy_parse_checks": 169, + "current_parse_checks": 299, + "whole_typed_buffers": 24, + "whole_typed_equal_pairs": 12, + "formal_members": 16, + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-git-runtime9-actual-root-review-r01/review.json", + "bytes": 13994, + "sha256": "3997aa469a5d7c7e23b96aa87bb4ed9d7bcd519dc22f9e16f814bf0c03b16b69" + }, + "semantic_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-git-runtime9-semantic-root-review-r01/review.json", + "bytes": 2299, + "sha256": "46d127f7f7ef3e446099c8e418bef4fd8710262c054ce34e4571df0bf01ba123" + }, + "genuine_legacy_two_case_migration_accepted": true, + "current_formal_cross_PID_two_cases_accepted": true, + "normal_Main_accepted": false, + "all_legacy_schemas_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_genuine_runtime9_Main_signal_checkpoint": { + "at_jst": "2026-10-08T06:07:52.463504+09:00", + "source_files": 1287, + "old_schema": 9, + "current_schema": 14, + "cases": [ + "commute", + "active" + ], + "actual_checks": 298, + "writer_checks": 182, + "reader_checks": 116, + "actual_native": 4, + "parse_checks": 299, + "whole_typed_buffers": 34, + "whole_typed_IO1_pairs": 6, + "formal_and_legacy_backup_members": 16, + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-runtime9-main-actual-root-review-r02/review.json", + "bytes": 45135, + "sha256": "f197670ef8f47eba99ef045ee87e39184838fef2f565ccb8d5510c93d38e34bf" + }, + "genuine_legacy9_Main_control_signal_two_case_migration_accepted": true, + "OS_mouse_key_accepted": false, + "actual_rendered_thumbnail_accepted": false, + "normal_Main_all_accepted": false, + "all_legacy_schemas_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_genuine_runtime9_backup_recovery_checkpoint": { + "at_jst": "2026-10-08T06:15:27.161003+09:00", + "source_files": 1287, + "actual_checks": 124, + "actual_native": 3, + "actual_parse_checks": 299, + "typed_buffers": 16, + "cases": [ + "commute", + "active" + ], + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-runtime9-backup-actual-root-review-r01/review.json", + "bytes": 1583, + "sha256": "ead60e2ad59faae39d17176736d4118d29b1fdd4b5b370fb64cc2bdf0db6d857" + }, + "main_control_signal_legacy_backup_recovery_accepted": true, + "damaged_formal_and_old_backup_preserved": true, + "all_failure_modes_accepted": false, + "all_legacy_schemas_accepted": false, + "OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_genuine_runtime9_no_candidate_checkpoint": { + "at_jst": "2026-10-08T06:23:40.025095+09:00", + "source_files": 1287, + "actual_checks": 188, + "actual_native": 3, + "actual_parse_checks": 299, + "typed_buffers": 20, + "cases": [ + "commute", + "active" + ], + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-runtime9-no-candidate-actual-root-review-r01/review.json", + "bytes": 1405, + "sha256": "c014ed47c7363c95d1d34102bf6123c827c77f4938634e8f8090e7c484359c53" + }, + "main_control_signal_no_valid_candidate_accepted": true, + "whole_live_state_preserved_on_two_failed_attempts": true, + "both_damaged_packages_preserved": true, + "all_failure_modes_accepted": false, + "all_legacy_schemas_accepted": false, + "OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_genuine_runtime9_domain_checkpoint": { + "at_jst": "2026-10-08T06:30:34.836247+09:00", + "source_files": 1287, + "actual_checks": 356, + "actual_native": 3, + "actual_parse_checks": 299, + "typed_buffers": 66, + "cases": [ + "commute-fallback", + "commute-reject", + "active-fallback", + "active-reject" + ], + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-runtime9-domain-actual-root-review-r01/review.json", + "bytes": 2283, + "sha256": "131d78d053b9c3488072b513de033b0213128f71b95e641a696f2d50b6400a7a" + }, + "main_control_signal_domain_fallback_and_rejection_accepted": true, + "whole_live_state_and_extra_guards_preserved_on_two_failed_attempts": true, + "both_domain_candidate_packages_preserved": true, + "all_failure_modes_accepted": false, + "all_legacy_schemas_accepted": false, + "OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_genuine_runtime9_missing_format_checkpoint": { + "at_jst": "2026-10-08T06:36:43.207084+09:00", + "source_files": 1287, + "actual_checks": 1028, + "actual_native": 3, + "actual_parse_checks": 299, + "typed_buffers": 152, + "cases": [ + "commute-world-fallback", + "commute-world-reject", + "commute-manifest-fallback", + "commute-manifest-reject", + "commute-future-fallback", + "commute-future-reject", + "active-world-fallback", + "active-world-reject", + "active-manifest-fallback", + "active-manifest-reject", + "active-future-fallback", + "active-future-reject" + ], + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p03-genuine-runtime9-missing-format-actual-root-review-r01/review.json", + "bytes": 4483, + "sha256": "93ccf6b6edd93ddddc301e302db2c16d0763d11e2c4204dfb7b1a2dd2685c1b6" + }, + "main_control_signal_missing_and_future_format_accepted": true, + "whole_live_state_and_extra_guards_preserved_on_two_failed_attempts": true, + "all_members_and_intentional_absence_preserved": true, + "future_formal_guard_before_any_backup_attempt": true, + "all_failure_modes_accepted": false, + "all_legacy_schemas_accepted": false, + "OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_defense_formal_cross_PID_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T16:38:44.611321+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-formal-cross-pid-actual-root-review-r01/review.json", + "bytes": 26324, + "sha256": "5a4025082ff58b8b6491fb418d4c3f564f47f653f7efd41a5d93741ee935d88a" + }, + "actual_native": 4, + "actual_parse": 303, + "actual_checks": 368, + "actual_defense_checkpoint_cases": 3, + "whole_typed_state_pairs": 15, + "whole_uncapped_journal_pairs": 3, + "whole_typed_buffers": 60, + "formal_packages": 3, + "formal_files": 12, + "Root_IO1_reconstructed_independently": true, + "mapped_fields": [ + "event_type", + "payload" + ], + "event_deletion_count": 0, + "all_formal_and_private_profiles_unchanged": true, + "source_files": 1299, + "source_mutations": 0, + "normal_paid_guard_and_station": true, + "natural_threats_accepted": false, + "final_defense_coefficients_accepted": false, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "old_formal_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_defense_Main_formal_cross_PID_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T16:58:50.908984+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-main-formal-actual-root-review-r01/review.json", + "bytes": 31129, + "sha256": "f03921b0fdc4d9d4ea2571d32a7e89c80444a821fea8fc7b0590ca10aa25be05" + }, + "actual_native": 4, + "actual_parse": 303, + "actual_checks": 410, + "actual_defense_checkpoint_cases": 3, + "whole_typed_state_pairs": 15, + "whole_uncapped_journal_pairs": 3, + "whole_typed_buffers": 66, + "formal_files": 12, + "Root_IO1_reconstructed_independently": true, + "mapped_fields": [ + "event_type", + "payload" + ], + "event_deletion_count": 0, + "actual_Main_save_button_and_load_menu_signals": true, + "actual_Main_Operations_ON_retained": true, + "actual_ordinary_Main_owners": 6, + "all_ordinary_Runtime_bytes_unchanged": true, + "actual_valid_staff_and_defense_selection_restored": true, + "hidden_empty_staff_selection_restoration_accepted": false, + "source_files": 1299, + "source_mutations": 0, + "natural_threats_accepted": false, + "final_defense_coefficients_accepted": false, + "max_Operations_ON_performance_accepted": false, + "normal_OS_input_accepted": false, + "old_formal_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_hidden_empty_staff_selection_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T18:20:52.255561+09:00", + "source_files": 1299, + "source_refs_adopted": 2, + "source_after": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-hidden-empty-staff-two-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "fcf91a8172e3bcbcaace1f5d7f83f3009100b7d750679599bf58d05613667bcc" + }, + "adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-hidden-empty-staff-two-ref-source-adoption-r01/adoption.json", + "bytes": 2694, + "sha256": "8a2d8b1042335028f7fbd0eae0a497f437052b7c93da1dca3c7915ceb70193f4" + }, + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-hidden-empty-staff-full172-actual-root-review-r01/review.json", + "bytes": 271155, + "sha256": "3b37fd374fd365b5876cfe6723c13005f3565d5055a491a19e95554ae0191312" + }, + "full_suites": 172, + "full_checks": 14115, + "full_native": 174, + "full_parse": 303, + "actual_empty_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-hidden-empty-staff-candidate-actual-root-review-r02/review.json", + "bytes": 31886, + "sha256": "b91f77d9c427aa1587bb03e63b9333f4acf690c5f067c67bdce0198d7461b3c3" + }, + "actual_valid_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-valid-staff-candidate-actual-root-review-r01/review.json", + "bytes": 31454, + "sha256": "dfa2ba68855e567848562113ebe6288e5e18a293639161735ceadcd745d5ca76" + }, + "empty_checks": 428, + "valid_checks": 410, + "hidden_empty_staff_selection_restoration_accepted": true, + "valid_staff_selection_restoration_accepted": true, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "marker_contracts_changed": false, + "current_Windows_rebuild_required": true, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_hidden_empty_guest_selection_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T19:33:37.847474+09:00", + "source_files": 1299, + "source_refs_adopted": 2, + "source_after": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-guest-empty-two-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "d95de2847ef3b5b1acfee7e91c105c585a5dfa41dbdee633365678b15ffc1b2a" + }, + "adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-guest-empty-two-ref-source-adoption-r01/adoption.json", + "bytes": 2716, + "sha256": "718662111c4c8f243001c96eb7b72deec5ef5481c0c4f8f9bd7316b95ab2c2d7" + }, + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-guest-empty-full172-actual-root-review-r01/review.json", + "bytes": 271365, + "sha256": "f713c364ae47f608d3b91a3d8527b65556ecabfaa180a078f8a96289dc3ccffa" + }, + "full_suites": 172, + "full_checks": 14115, + "full_native": 174, + "full_parse": 303, + "actual_empty_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-guest-empty-candidate-actual-root-review-r01/review.json", + "bytes": 31611, + "sha256": "a9fc30dff04d9e99c9d03685469bcb0667f89460930e1a2437d184beb509094e" + }, + "actual_valid_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-guest-valid-candidate-actual-root-review-r02/review.json", + "bytes": 31666, + "sha256": "844afc3de4d179c142015723377ecb6fb5f86c7c529d3b49c1fbfe4a2d8cc83d" + }, + "empty_checks": 485, + "valid_checks": 479, + "hidden_empty_guest_selection_restoration_accepted": true, + "valid_second_guest_selection_restoration_accepted": true, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "marker_contracts_changed": false, + "current_Windows_rebuild_required": true, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_hidden_empty_defense_selection_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T20:22:25.140929+09:00", + "source_files": 1299, + "source_refs_adopted": 2, + "source_after": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-empty-two-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "b161a8c16210ab42dfebba1f7c068d7d155f80222059fbc379d484f717aabec3" + }, + "adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-empty-two-ref-source-adoption-r01/adoption.json", + "bytes": 2770, + "sha256": "b6f89e3eb2c7b463115241e6b8a6033e005b6401f53826f4878a999a3da2c37b" + }, + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-empty-full172-actual-root-review-r01/review.json", + "bytes": 271372, + "sha256": "fbab319a96cff1a0d84c905e395df536e9cd77397d4064deb1450c91c6374610" + }, + "full_suites": 172, + "full_checks": 14115, + "full_native": 174, + "full_parse": 303, + "actual_empty_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-empty-candidate-actual-root-review-r01/review.json", + "bytes": 31791, + "sha256": "f178b89bec965fe0a1adebdbb577221321768c0033d89b2392c7fabd2d272d2d" + }, + "actual_valid_selection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-defense-valid-candidate-actual-root-review-r02/review.json", + "bytes": 31858, + "sha256": "a68abacc0f734863bba7b763517a0dc99858387a1ccfeeb18b4d7551e712349d" + }, + "empty_checks": 536, + "valid_checks": 551, + "hidden_empty_defense_selection_restoration_accepted": true, + "valid_second_defense_selection_restoration_accepted": true, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "marker_contracts_changed": false, + "current_Windows_rebuild_required": true, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_inflight_dimension_migration_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T20:33:38.103034+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-inflight-dimension-actual-root-review-r01/review.json", + "bytes": 160418, + "sha256": "5078abfb2653b454f4405e554997936927138bd81c56fc3fb564540a00693368" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 152, + "native": 4, + "parse": 303, + "typed_buffers": 17, + "whole_state_pairs": 5, + "uncapped_events": 12, + "event_deletions": 0, + "event_remapping": 0, + "formal_members": 12, + "original_backup_entire_four_members_exact": true, + "migration_geometry_differences": 5, + "Root_reconstructed_entire_snapshot": true, + "controlled_guest_and_legacy_definition": true, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_inflight_EV_dimension_migration_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T20:41:57.085103+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-inflight-EV-dimension-actual-root-review-r01/review.json", + "bytes": 160431, + "sha256": "6ced37bc8af78ae35310ae6d8269767d197cdaec6c7444041a0c934ac2e50c8c" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 177, + "native": 4, + "parse": 303, + "typed_buffers": 17, + "whole_state_pairs": 5, + "uncapped_events": 34, + "event_deletions": 0, + "event_remapping": 0, + "formal_members": 12, + "original_backup_entire_four_members_exact": true, + "migration_geometry_differences": 5, + "Root_reconstructed_entire_snapshot": true, + "controlled_guest_and_legacy_definition": true, + "actual_boarded_passengers": 4, + "actual_waiting_passengers": 1, + "original_request_arrivals_exactly_once": 5, + "changed_destination_refusal_accepted": false, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_EV_retarget_refusal_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T21:02:08.283246+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-EV-retarget-refusal-actual-root-review-r02/review.json", + "bytes": 12291, + "sha256": "516c8f2a5fadc3b5345d3b802a1087fe7ca4d85f8d1f00e504f27a11f5d4be09" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 193, + "native": 4, + "parse": 303, + "typed_buffers": 25, + "whole_state_pairs": 7, + "unchanged_original_states": 3, + "uncapped_events": 6, + "event_deletions": 0, + "event_remapping": 0, + "formal_proof_members": 12, + "original_and_actual_backup_members": 8, + "independent_Zstd_worlds": 3, + "repeated_refusals": 2, + "old_target": [ + -7, + 3, + 0 + ], + "new_target": [ + -7, + 2, + 0 + ], + "transport_error": "TRANSPORT_REPLAN_REQUIRED", + "isolated_batch_rollback": true, + "initial_invalid_ground_fixture_rejection": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-EV-retarget-refusal-r01-rejection/review.json", + "bytes": 642, + "sha256": "497992c8550749e659a3985c9736459b9d8657ab1c8aa4e9602b606c857b3431" + }, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_rescue_dimension_migration_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T21:12:29.966411+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-rescue-dimension-actual-root-review-r02/review.json", + "bytes": 160644, + "sha256": "5b4ad1372adda1cc830bbd455016c7c602cf26195221a6450db43cc8c5ddaeb4" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 158, + "native": 4, + "parse": 303, + "typed_buffers": 17, + "whole_state_pairs": 5, + "uncapped_events": 10, + "event_deletions": 0, + "event_remapping": 0, + "formal_members": 12, + "original_backup_entire_four_members_exact": true, + "migration_geometry_differences": 5, + "Root_reconstructed_entire_snapshot": true, + "controlled_initial_injury_and_legacy_definition": true, + "actual_rescue_transport": true, + "changed_rescue_destination_accepted": false, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_logistics_dimension_migration_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T21:24:26.261671+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-logistics-dimension-actual-root-review-r01/review.json", + "bytes": 160715, + "sha256": "91bc6e55aeee1462fbd31304d3d1c9ee0e537d8d3049ce9c4a4482829dfaa34c" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 165, + "native": 4, + "parse": 303, + "typed_buffers": 17, + "whole_state_pairs": 5, + "uncapped_events": 23, + "event_deletions": 0, + "event_remapping": 0, + "formal_members": 12, + "original_backup_entire_four_members_exact": true, + "migration_geometry_differences": 5, + "Root_reconstructed_entire_snapshot": true, + "explicit_legacy_definition": true, + "actual_paid_food_units": 8, + "actual_normally_hired_porter": true, + "actual_carried_units": 4, + "actual_reserved_units": 4, + "actual_original_requests_completed": 2, + "actual_supply_destination_unchanged": true, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_multiple_jobs_dimension_migration_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T21:32:53.663373+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-multiple-jobs-dimension-actual-root-review-r02/review.json", + "bytes": 165425, + "sha256": "e3baa038eba0bbd16126fdbb5941057f17493c363659abd5b9f668e38bcccfc9" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 158, + "native": 4, + "parse": 303, + "typed_buffers": 17, + "whole_state_pairs": 5, + "uncapped_events": 4, + "event_deletions": 0, + "event_remapping": 0, + "formal_members": 12, + "original_backup_entire_four_members_exact": true, + "migration_geometry_differences": 7, + "Root_reconstructed_entire_snapshot": true, + "explicit_legacy_definitions": true, + "actual_simultaneous_paid_jobs": 2, + "actual_initial_work_units_each": 70000, + "actual_initial_progress_each": 466, + "actual_final_distinct_facility_owners": 2, + "independent_formal_Zstd": 3, + "guest_movement_accepted": false, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_batch_later_refusal_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T21:59:34.957108+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-batch-later-refusal-actual-root-review-r02/review.json", + "bytes": 12580, + "sha256": "c3caf63ec20f584b4789beaa527da5ab77951d02a404479d3dab2834a48cd8db" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 2, + "checks": 207, + "native": 4, + "parse": 303, + "typed_buffers": 25, + "whole_state_pairs": 7, + "unchanged_original_states": 3, + "uncapped_events": 5, + "event_deletions": 0, + "event_remapping": 0, + "formal_proof_members": 12, + "original_and_actual_backup_members": 8, + "independent_Zstd_worlds": 3, + "repeated_refusals": 2, + "task_error": "TASK_DESTINATION_CHANGED", + "first_job_candidate_entire_snapshot_reconstructed": true, + "original_task_completed": true, + "isolated_batch_rollback": true, + "zero_native_admission_rejection": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-batch-later-refusal-r01-admission-rejection/review.json", + "bytes": 619, + "sha256": "08bbbe9f97398c4c6312536e79311049e6833958a82b78e7b8a28d8b5b7070e2" + }, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_real_formal_save_interruption_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T22:14:31.384243+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-current1299-real-save-interruption-actual-root-review-r04/review.json", + "bytes": 13021, + "sha256": "598f9b3376a37c1476f2da54de43dc67d53609e0cbeb99fa17b044ed030395a3" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 3, + "reader_checks": 95, + "native": 7, + "normal_strict_success_native": 3, + "intentionally_interrupted_writer_native": 4, + "parse": 303, + "typed_buffers": 20, + "whole_recovery_cases": 4, + "independent_Zstd_worlds": 8, + "private_wait_instrumentation_inverse_exact": true, + "production_instrumentation_adopted": false, + "rejected_preparation_native": 5, + "rejection_record": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-current1299-real-save-interruption-preparation-rejections-r01.json", + "bytes": 2100, + "sha256": "9788596463fe84f078de5c2a52be696ba65337ec0eaa2ec30189a2b617ffa7e5" + }, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_accepted": false, + "whole_P04_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_real_autosave_interruption_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T22:27:22.559379+09:00", + "actual_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-autosave-interruption-actual-root-review-r03/review.json", + "bytes": 33223, + "sha256": "2bec3f3f22e95ce016518d65d4746c46728169d552bfc57dda0d131fb919a1bd" + }, + "source_files": 1299, + "source_mutations": 0, + "QA_overrides": 3, + "reader_checks": 240, + "native": 7, + "normal_strict_success_native": 3, + "intentionally_interrupted_writer_native": 4, + "parse": 303, + "typed_buffers": 44, + "whole_recovery_cases": 4, + "whole_recovered_generations": 12, + "actual_interrupted_packages": 24, + "independent_Zstd_worlds": 24, + "formal_and_real_backup_preserved": true, + "private_wait_instrumentation_inverse_exact": true, + "production_instrumentation_adopted": false, + "rejected_admission_native": 1, + "rejected_misbound_native": 3, + "rejection_record": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-autosave-interruption-r01-admission-rejection.json", + "bytes": 513, + "sha256": "c8702624f3f814808b776db90034a3960b2469439934f3ec44d2392fcb8f639b" + }, + "misbinding_record": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-autosave-interruption-r02-misbound-evidence-rejection/review.json", + "bytes": 1537, + "sha256": "4efd45c230cb69798c2b1733a66db6a619de8304bf07b1f2d21a85d739e69ab9" + }, + "Operations_ON_accepted": false, + "normal_OS_input_accepted": false, + "whole_P03_accepted": false, + "whole_P04_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_save_coverage_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-save-coverage-audit-r01/review.json", + "bytes": 25673, + "sha256": "1bea6d9b54cd2a5b4d156e59a785ee6851e9152097b4d2a39aefabdc7b947c56" + }, + "current_migration_priority_defect_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T00:19:25.168167+09:00", + "source_files": 1299, + "source_refs_adopted": 2, + "focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-migration-interruption-fix-actual-root-review-r07/review.json", + "bytes": 30801, + "sha256": "2cba1a8ce99813aac3785c6ea9e98d7bba0d18a225b5d4cce95c9ec36bb9224b" + }, + "full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-migration-priority-full172-actual-root-review-r03/review.json", + "bytes": 271390, + "sha256": "703f959dca2e1c927cf1550c73654bca360fc4f5352c9cfe19e11fcfa92ffcca" + }, + "current_save_coverage": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-save-coverage-audit-r04/review.json", + "bytes": 29551, + "sha256": "d61a45e2248d64e6a63fb52baef40d1285095cc62c45f0d49ed36cad0ac6cae0" + }, + "adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p03-current1299-migration-priority-two-ref-source-adoption-r01/adoption.json", + "bytes": 2041, + "sha256": "381ff0b73d8e2a36b9ad9d78b70aa27e134c53c10d9b759a927d6ed0bf462c2d" + }, + "focused_native": 10, + "owned_SIGKILL": 4, + "reader_checks": 164, + "reader_failures": 0, + "save_operations_checks": 171, + "recovery_preservation_checks": 234, + "preflight_checks": 128, + "independent_Zstd": 20, + "full_native": 174, + "full_suites": 172, + "full_checks": 14159, + "full_failures": 0, + "parse_checks": 303, + "known_reproduced_migration_priority_unresolved": 0, + "whole_defect_count_established": false, + "candidate_source_adopted": true, + "private_wait_instrumentation_adopted": false, + "whole_P03_accepted": false, + "whole_goal_accepted": false + }, + "current_real_command_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T00:35:08.597915+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-real-command-restart-root-review-r05/review.json", + "bytes": 257780, + "sha256": "5f728110c613b89c0461fec6cdc59a6fbd3311a58e68a7c8a8ae720a072d4579" + }, + "actual_native": 4, + "actual_checks": 88, + "actual_parse": 303, + "typed_buffers": 30, + "whole_duplicate_noop_pairs": 8, + "source_adoption": 0, + "failed_trials_native": 7, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Explicit notification-failure fixture; ordinary paid warehouse; queued purchase and gold/materials cost; exact current formal package copy into fresh reader profile; Operations OFF/direct Runtime. No Main/OS, all old schemas/features or Windows hardware acceptance." + }, + "current_event_observer_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:07:11.114159+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-observer-full172-actual-root-review-r03/review.json", + "bytes": 271109, + "sha256": "fdfbbaf5792b28aa449b378752d624d698d016f0bb26d39d34e5d339c9b95694" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-notification-candidate-root-review-r01/review.json", + "bytes": 398972, + "sha256": "26d76d17223444d87d90921062e35d37f32d9d3f23cb2b878b411fe712e367a1" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-observer-four-ref-source-adoption-r01/adoption.json", + "bytes": 1698, + "sha256": "43e0ccd8a356ee2d432e0269f1d38707f25393c18aee2dc12929df7d3e299eb2" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14263, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 488, + "new_regression_checks": 104, + "source_refs_adopted": 4, + "known_reproduced_event_observer_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "current_event_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:13:40.010018+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-formal-restart-root-review-r02/review.json", + "bytes": 342228, + "sha256": "1a66b88c40cbcd877dbd026388e6b7bf3a3d64ec4b6d316f2237277f2070ec04" + }, + "actual_native": 4, + "actual_checks": 555, + "actual_parse": 303, + "typed_buffers": 112, + "whole_duplicate_and_cache_noop_pairs": 12, + "formal_packages": 16, + "formal_members": 64, + "source_adoption": 0, + "failed_trials_native": 4, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Eight isolated existing event-policy/action/cost cases; pending and completed formal SaveService packages copied whole into fresh reader profile; separate PID entire Runtime and observer equality. Operations OFF/direct Runtime; not Main/OS, all schemas, all events or Windows hardware." + }, + "historical_event_rollback_refusal_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:25:52.383176+09:00", + "candidate_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-candidate-root-review-r02/review.json", + "bytes": 400000, + "sha256": "58747ef5c8bd86db9b38f674524acfd561551276d2849aa7e8f4e75a1bd607de" + }, + "baseline_negative_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-baseline-rejection-r01/review.json", + "bytes": 233534, + "sha256": "7806226bb04dcb3841c127f345c1a544bc493a91a35841e29795bd27046d9375" + }, + "actual_native": 7, + "actual_checks": 552, + "actual_parse": 303, + "candidate_game_refs": 2, + "candidate_regression_refs": 1, + "candidate_new_regression_checks": 61, + "source_adoption": 0, + "production_reproduced_failure_boundary_unresolved": 1, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "full_regression_accepted": false, + "scope": "Explicit participant restore refusal; fatal propagation candidate and7regression cases. Current production still has this failure-boundary defect; not a naturally observed normal-play failure." + }, + "current_event_rollback_refusal_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:50:54.493265+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-full172-actual-root-review-r01/review.json", + "bytes": 271420, + "sha256": "8bf571808b8cd121386cd44211f64fa50668233cdcc0a7790e54c6a0b957e850" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-candidate-root-review-r02/review.json", + "bytes": 400000, + "sha256": "58747ef5c8bd86db9b38f674524acfd561551276d2849aa7e8f4e75a1bd607de" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-three-ref-source-adoption-r01/adoption.json", + "bytes": 1683, + "sha256": "0b0a2dca71b30fbc8559eac7ac8d9942a704a9268f579076866926d263c14e55" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14324, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 552, + "new_regression_checks": 61, + "source_refs_adopted": 3, + "known_reproduced_event_rollback_refusal_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_fatal_event_restart_and_cost_release_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:10:39.778600+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-fatal-event-restart-root-review-r01/review.json", + "bytes": 353628, + "sha256": "a90dd09b615ba7bc55b02e91d3c4d52ccbc3fadc0bf250205a6c55075260e696" + }, + "actual_native": 4, + "actual_checks": 619, + "actual_parse": 303, + "typed_buffers": 128, + "whole_duplicate_and_cache_noop_pairs": 12, + "formal_packages": 16, + "formal_members": 64, + "source_adoption": 0, + "cost_release_refusal_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-cost-release-refusal-baseline-rejection-r01/review.json", + "bytes": 233717, + "sha256": "3b98bfb1666767b6e92343b945e915dc7a73060b1b04cf27c651e621d8e2e492" + }, + "cost_release_negative_native": 3, + "cost_release_negative_checks": 16, + "cost_release_negative_failures": 3, + "known_reproduced_cost_release_boundary_unresolved": 1, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Eight explicit fatal event cases, whole formal save restart with retained partial state. Separate negative release refusal remains unresolved; not all events/Main/OS/Windows." + }, + "current_cost_release_refusal_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:39:01.640644+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-full172-actual-root-review-r01/review.json", + "bytes": 271352, + "sha256": "9d0402a4c56888dfcf5c2543b494634823534e966a6239e8f1f5057f466ed4d3" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-candidate-root-review-r01/review.json", + "bytes": 399869, + "sha256": "87120ee5d2e2268e720d930cd76a851b03ef8022a8f3dff6426d8ca8383a75e9" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-two-ref-source-adoption-r01/adoption.json", + "bytes": 1619, + "sha256": "fab928bcf12eb75a99af7eaa8f7f41af1735e1aa04feb016d60c26d9e9673174" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14402, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 630, + "new_regression_checks": 78, + "source_refs_adopted": 2, + "known_reproduced_cost_release_boundary_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_cost_choice_lifecycle_r106_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:54:28.866606+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-lifecycle-baseline-rejection-r01/review.json", + "bytes": 241585, + "sha256": "4b2c73d5e20a64b24691c52788d89ab5eecadc21e2b734331df62e0caee2f361" + }, + "actual_native": 3, + "actual_checks": 33, + "actual_failures": 3, + "actual_parse": 303, + "typed_buffers": 14, + "source_adoption": 0, + "known_reproduced_cost_lifecycle_boundary_unresolved": 2, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Three registered fixture cases through ordinary public Runtime callbacks, no refusal injection. Shared cost ledger key and prior failed choice cache block another valid choice. Not original story/Main/OS/Windows." + }, + "historical_cost_choice_lifecycle_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:14:02.296156+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-lifecycle-baseline-rejection-r02/review.json", + "bytes": 244990, + "sha256": "f96c2be97d03bf908b2944205265c7d8ba6a30cc77a62c56b4c8c5618454e3dc" + }, + "actual_native": 3, + "actual_checks": 43, + "actual_failures": 4, + "actual_parse": 303, + "typed_buffers": 18, + "source_adoption": 0, + "candidate_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-candidate-root-review-r04/review.json", + "bytes": 410801, + "sha256": "1591daeecb2ad4343b74ad8c37b034698254ed54e95a2bb223434176f1b66cf7" + }, + "candidate_focused_checks": 743, + "candidate_new_permanent_regressions": 86, + "known_reproduced_cost_lifecycle_boundary_unresolved": 3, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Three registered fixture cases through ordinary public Runtime callbacks, no refusal injection. Shared cost ledger key and prior failed choice cache block another valid choice. Not original story/Main/OS/Windows." + }, + "current_cost_choice_lifecycle_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:37:24.686078+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-full172-actual-root-review-r01/review.json", + "bytes": 271270, + "sha256": "256b2b4af3a4c361470c2c2b3dba3537567857dbb5ee562cb6a5b5c0512f96d4" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-candidate-root-review-r04/review.json", + "bytes": 410801, + "sha256": "1591daeecb2ad4343b74ad8c37b034698254ed54e95a2bb223434176f1b66cf7" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-three-ref-source-adoption-r01/adoption.json", + "bytes": 1663, + "sha256": "caa0278a7d6a6940074e292eeb49fedabf2718dd9422fe279a9663449bfc404f" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14488, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 743, + "new_regression_checks": 86, + "source_refs_adopted": 3, + "known_reproduced_cost_choice_lifecycle_boundary_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_cost_release_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:41:21.964210+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-formal-restart-root-review-r01/review.json", + "bytes": 306472, + "sha256": "29f5b2a53b06ffd62aaa650b130162b7bee5ab5a68cdd9c533019426e7e1dcb4" + }, + "actual_native": 4, + "actual_checks": 347, + "actual_parse": 303, + "typed_buffers": 80, + "whole_duplicate_and_cache_noop_pairs": 8, + "formal_packages": 8, + "formal_members": 32, + "source_adoption": 0, + "failed_trials_native": 0, + "actual_refund_recovery_accepted": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Four explicit paid cost release refusal/missing callback cases, before/after formal whole save restart with retained100G escrow/token, eight whole replay noop pairs. Not refunded costs/all events/Main/OS/Windows." + }, + "current_cost_choice_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:39:05.588592+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-formal-restart-root-review-r01/review.json", + "bytes": 307927, + "sha256": "9402a0a71fc1ea85645ba73181aec52c002cf71e66f27df340b6695971018a6c" + }, + "actual_native": 4, + "actual_checks": 409, + "actual_parse": 303, + "typed_buffers": 78, + "whole_duplicate_and_cache_noop_pairs": 8, + "formal_packages": 10, + "formal_members": 40, + "source_adoption": 0, + "failed_trials_native": 0, + "actual_refund_recovery_accepted": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Five explicit paid choice fixtures with two reservations, fully refunded retry, mixed resource rollback and legacy token commit/cancel. Ten whole formal saves and separate PIDs; full ordered notifications and eight duplicate/cache noop pairs. Not all old schemas/events/Main/OS/Windows." + }, + "historical_principal_financing_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:01:34.100727+09:00", + "actual_baseline_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ledger-boundary-root-review-r01/review.json", + "bytes": 232131, + "sha256": "263457b7371c1a9ee0c309c0439fa6f6b17125d32afd8a7a3525ad78734e936d" + }, + "baseline_native": 3, + "baseline_checks": 10, + "baseline_failures": 1, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "focused_native": 7, + "focused_checks": 979, + "focused_parse": 303, + "typed_buffers": 5, + "new_regression_checks": 28, + "candidate_game_refs": 3, + "candidate_regression_refs": 1, + "source_adoption": 0, + "principal_classification_unresolved_in_production": 1, + "whole_goal_accepted": false, + "all_P05_accepted": false, + "production_terms_set": 0 + }, + "current_principal_financing_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:26:08.896165+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-full172-actual-root-review-r01/review.json", + "bytes": 271441, + "sha256": "9edd301b7bedb433638e851c6399716e9e9d28fc5d6020d56521290aa51e84ac" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-four-ref-source-adoption-r01/adoption.json", + "bytes": 1803, + "sha256": "4e1660c4312db3ccf76b0ec0a5fe54b62c98c9394cfc1add9b193e626a0c6848" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14516, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 979, + "new_regression_checks": 28, + "source_refs_adopted": 4, + "game_refs_adopted": 3, + "test_refs_adopted": 1, + "known_reproduced_principal_classification_boundary_unresolved": 0, + "optional_financing_category_shape_extended": true, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_API_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:32:48.164159+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-full172-actual-root-review-r01/review.json", + "bytes": 271375, + "sha256": "c14250e2f441b34427f97b596850f9261bfb0fd4363b3d6956f6707e7b11c8c7" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-candidate-root-review-r02/review.json", + "bytes": 281489, + "sha256": "227386fe6079da1630ad4e0779ce1f9613378f0405ffd1b6890740c673b0560c" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "8b87db6b958b4c14c71023ce60238f2ab47f9086970c221348493553085c0c9d" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14540, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1064, + "new_regression_checks": 24, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_API_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_command_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:11:26.397156+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-full172-actual-root-review-r01/review.json", + "bytes": 271371, + "sha256": "e49f57fa885dbb79155222af681bbf11241bb523afe703509ba40000a3754b85" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-candidate-root-review-r02/review.json", + "bytes": 294967, + "sha256": "4f553976263b1ea97a362d27cab4c7f0a8840a573e1135ddc14b65cf916c7f4f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "47c3c58031713cbaff44bebff2fd561e8ba01021b0fec85471901b8a06a7e4d6" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14567, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1113, + "new_regression_checks": 27, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_command_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "existing_liability_command_executor_accepted": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "historical_before_original_profit_fix_original_principal_profit_reproduction_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:29:13.140774+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-baseline-root-review-r01/review.json", + "bytes": 235748, + "sha256": "7e72ee93c3df320a98b4ac483366498daf294b51eadc911e5e093f9976e60760" + }, + "actual_native": 3, + "actual_checks": 36, + "actual_failures": 10, + "actual_parse": 303, + "whole_typed_buffers": 8, + "known_original_profit_cause_unresolved": 1, + "actual_net_profits": [ + 0, + 0, + 0 + ], + "required_original_net_profits": [ + -500, + -500, + -500 + ], + "actual_loss_streaks": [ + 0, + 0, + 0 + ], + "required_original_loss_streaks": [ + 1, + 2, + 3 + ], + "actual_after_terminal_clock": 4820, + "required_after_terminal_clock": 4320, + "actual_after_terminal_command": "OK", + "actual_after_terminal_faith_delta": 1, + "fault_injection": false, + "source_refs_adopted": 0, + "original_daily_profit_and_terminal_accepted": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "historical_before_original_profit_fix_principal_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:34:28.117044+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-formal-restart-root-review-r01/review.json", + "bytes": 280586, + "sha256": "2e84b0e9cbe908d8de7e4ec29f99eac0238cf83912b9660eea57285ce14916a5" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime principal fixtures: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_API_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:40:11.456491+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-formal-restart-root-review-r01/review.json", + "bytes": 281222, + "sha256": "2e4a87f134df60f9c5b41212e229eb069a0d8766c4c6e7fb2eaa354d737b3239" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime repayment API fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_command_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:21:26.568979+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-formal-restart-root-review-r01/review.json", + "bytes": 294051, + "sha256": "90d29f0143081d50c762f9cc9872c55d2d267f26474ad94aa8395f755a577201" + }, + "actual_native": 4, + "actual_checks": 2281, + "actual_parse": 303, + "typed_buffers": 56, + "whole_principal_duplicate_noop_pairs": 8, + "formal_packages": 10, + "formal_members": 40, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five ordinary repayment command fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Ten whole formal packages and separate PIDs; not approved production bank producer/terms or all P05.", + "original_daily_profit_accepted": false, + "known_original_profit_difference_unresolved": 1, + "original_source_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-source-reaudit-r01/review.json", + "bytes": 11163, + "sha256": "5d5e9d294ecb84088bac403d1d5225e27281cf54926011a3624a0f0d852968e2" + } + }, + "current_original_principal_profit_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:00:19.900637+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full172-actual-root-review-r02/review.json", + "bytes": 271181, + "sha256": "6e30abb83f870f84127e7c34f24ae0bfbd055f180de95ed92cb9a63b4bc3bf1d" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-candidate-root-review-r01/review.json", + "bytes": 7871, + "sha256": "18af2f1d09cd0f07c1138f60fa4fbfb58376e156c1fe8632a566efb7f13661e7" + }, + "genuine_v4_migration_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-genuine-v4-root-review-r01/review.json", + "bytes": 29826, + "sha256": "9101ba65182b0a7d52a27b29e7fd89638c6e48ece9cdfabe5f402481af66b3e7" + }, + "genuine_v4_prior_loss_unit_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-legacy-streak-root-review-r01/review.json", + "bytes": 2623, + "sha256": "d0049007fceb5896b7955f143f5353e8a3cd2a40bc78cba241e0adf7bb6b9ca1" + }, + "corrected_synthetic_v3_fixture_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-upkeep-fixture-focused-root-review-r01/review.json", + "bytes": 156289, + "sha256": "b55a2997503ad28dc6db09852144e0c8292f9807dd49fbb3635177b7e727fb1b" + }, + "first_full_rejection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full-first-rejection-root-r01/review.json", + "bytes": 11932, + "sha256": "f8ce3fceb7ec9cb50d62e3cff96f4d49540a81c60964e712a4840139bbcf85dc" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-five-ref-source-adoption-r01/adoption.json", + "bytes": 3191, + "sha256": "d72a9a19589c39a3d082376e1e1cd3b87a7d8e077618f22ca7236e93944b87a8" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14580, + "actual_full_parse": 303, + "focused_native": 8, + "focused_checks": 1108, + "genuine_v4_migration_native": 7, + "genuine_v4_migration_checks": 321, + "genuine_v4_formal_input_packages": 10, + "genuine_v4_typed_states": 40, + "new_regression_checks": 13, + "source_refs_adopted": 5, + "game_refs_adopted": 2, + "test_refs_adopted": 3, + "Operations_snapshot_before": 4, + "Operations_snapshot_after": 5, + "legacy_marker": "legacy_principal_profit_last_day", + "Runtime_version_unchanged": true, + "TTWB_format_unchanged": true, + "known_original_principal_profit_difference_unresolved": 0, + "all_legacy_closed_reports_preserved_in_tested_cases": true, + "latest_v5_formal_cross_PID_restart_accepted": true, + "normal_OS_input_accepted": false, + "normal_bank_UI_accepted": false, + "production_terms_set": false, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_defect_count_established": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "current_original_principal_profit_v5_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:14:11.886945+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-current-v5-restart-root-review-r01/review.json", + "bytes": 308122, + "sha256": "a9905589427b4ed418546c7d46ca6d361d9974b8b1d6ded0b9e559bc1ef61149" + }, + "actual_native": 4, + "actual_checks": 2552, + "actual_parse": 303, + "typed_buffers": 68, + "whole_principal_duplicate_noop_pairs": 10, + "formal_packages": 12, + "formal_members": 48, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "mixed_six_day_history_and_terminal_cross_PID_accepted": true, + "Operations_snapshot_version": 5, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five current v5 principal command fixtures and one genuinely migrated v4 mixed-history terminal fixture. Twelve whole formal packages and separate PIDs, full original debt expense and loss boundary; not production bank producer/terms or all schema acceptance.", + "original_daily_profit_accepted_in_tested_cases": true, + "known_original_profit_difference_unresolved": 0, + "source_applicability": "Historical preceding adopted source. Whole raw evidence preserved; new six-ref adopted source has separately accepted limited UI cross-PID lifecycle proof, not an automatic reacceptance of all previous formal cases." + }, + "current_existing_principal_ui_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:14:44.468993+09:00", + "focused_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-focused-root-review-r01/review.json", + "bytes": 13136, + "sha256": "5e5e18fc3fd3f2306f9286ba99ad079768afe8e15cd7f4e37b8598fa1f6e9d24" + }, + "full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-full172-actual-root-review-r01/review.json", + "bytes": 271519, + "sha256": "cfde6addb3734ecf644fee2ab2ad70070eac5465b6691ce226732692c8c86786" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-six-ref-source-adoption-r01/adoption.json", + "bytes": 1815, + "sha256": "58ee82d3f24f24c254416eab7831fc7ad440253885483b7e0eb2dbd559d1efab" + }, + "focused_checks": 535, + "focused_native": 7, + "full_suites": 172, + "full_checks": 14626, + "full_native": 174, + "parse": 303, + "source_refs_adopted": 6, + "game_refs_adopted": 4, + "permanent_test_refs_adopted": 1, + "policy_source_binding_refs_adopted": 1, + "new_permanent_checks": 46, + "typed_buffers": 9, + "formal_packages": 2, + "formal_members": 8, + "exact_SaveService_continuation": true, + "facade_IO_receipt_explicitly_attested": true, + "pointer_and_key_input": "engine viewport only", + "normal_OS_accepted": false, + "Windows_hardware": false, + "loan_issuance_accepted": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "cross_PID_formal_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-formal-reader-root-review-r01/review.json", + "bytes": 9872, + "sha256": "78ffa34f6ceb62c1803aff6bdc172765fcc7b145c34af0f96369a19b8338e393" + }, + "cross_PID_formal_checks": 42, + "cross_PID_formal_native": 3, + "exact_SaveService_cross_PID_continuation": true, + "new_post_restart_payment_accepted": true, + "reader_typed_buffers": 8 + }, + "current_principal_ui_original_terminal_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:28:20.568581+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ui-terminal-root-review-r01/review.json", + "bytes": 16658, + "sha256": "4edbd419acfb68b500d9811cca80fb2ddd6183a3e0b17bae7dff0d8c0371c4cc" + }, + "actual_checks": 71, + "actual_native": 4, + "parse": 303, + "whole_typed_buffers": 15, + "whole_exact_pairs": 12, + "whole_terminal_noop_pairs": 3, + "formal_packages": 2, + "formal_members": 8, + "writer_pid": 78851, + "reader_pid": 79161, + "original_principal_UI_three_loss_boundary": [ + { + "day": 1, + "cash": 6000, + "debt": 1000, + "profit": -500, + "loss_streak": 1 + }, + { + "day": 2, + "cash": 5500, + "debt": 500, + "profit": -500, + "loss_streak": 2 + }, + { + "day": 3, + "cash": 5000, + "debt": 0, + "profit": -500, + "loss_streak": 3 + } + ], + "exact_whole_cross_PID_terminal_continuation": true, + "source_refs_adopted": 0, + "production_bank_terms_set": 0, + "normal_OS_accepted": false, + "Windows_hardware": false, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + } + }, + { + "id": "P04", + "phase": 1, + "title": "更新順序・責務の整理", + "depends_on": [ + "P03" + ], + "size": "M", + "requirement_ids": [ + "B-1.3", + "B-1.4", + "B-3.2", + "B-9.2" + ], + "work": "一分更新、00:00決算、時間帯・天候更新、施設稼働判定、客選択の適用順を仕様化。新機能は分離サービスで実装しRuntimeから接続。全体の一括書換えはしない。", + "acceptance": "同一Tickでの閉店/停電/退出/課金順が決定的。コマンド再送で二重課金・二重生成しない。", + "decisions": [ + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P04-01", + "title": "同時発生の更新規約", + "work": "閉店、停電、破壊、退出、課金、シフト交代、00:00決算の順序を明記する。", + "acceptance": "順序境界で停止中課金、二重決算、予約の孤立がない。", + "remaining_conditions": [ + "owner choices for destruction order and midnight-sale day, plus explicit disposition of reason label and command/AI exit", + "after actual answers, normal batched checker destruction-authority pin / registry / approval record / stale current metadata correction", + "final gates as listed; previous full178 f5 receipt is not full final checker a61 evidence; no relabeling" + ], + "current_recheck": "execution/p04-01-current-recheck-20261017/CURRENT_ACCEPTANCE_STATUS.json", + "policy_candidate": "execution/p04-01-current-recheck-20261017/D05_REMAINING_ORDER_CANDIDATE.md", + "owner_policy_update": { + "approved": true, + "reference": "docs/plans/original-completion-2026-10-02/execution/p04-01-current-recheck-20261015/D05_OWNER_APPROVAL.json", + "scope": "two owner policy selections only; no acceptance credit", + "remaining": "condition-specific evidence applicability, missing boundaries, independent review, ordinary integration/final", + "actual_commander": "execution/p04-01-current-recheck-20261017/ACTUAL_OPUS_LATEST29_DECISION.json", + "runner_state": "repair_pending", + "repairs": 29, + "worker_model": null, + "model_selected_by": "actual Claude Opus 5.5 run decision", + "run_decision": null, + "submitted": "2dde7596a87c43f7bf0bf704b7479f2fa06a5b1c", + "registered_validation": "91d92e164b164bb091ae90e384da5636", + "root_work_continues": true, + "native_shift_proof": "execution/p04-01-current-recheck-20261015/ROOT_APPROVED_SHIFT_CURRENT_RESULT.json", + "incomplete_checkpoint": "execution/p04-01-current-recheck-20261015/REPAIR7_PRESERVED_WORK.json", + "dependency_midnight_proof": "execution/p04-01-current-recheck-20261015/ROOT_APPROVED_DEPENDENCY_MIDNIGHT_RESULT.json", + "duplicate_probe_worker_dispatched": false, + "formal_dependency_proof": "execution/p04-01-current-recheck-20261015/ROOT_APPROVED_DEPENDENCY_FORMAL_RESULT.json", + "timeout_adapter": "execution/p04-01-current-recheck-20261015/OWNER_P04_LLM_TIMEOUT_ADAPTER.json", + "actual_run": null, + "current_scope": "Latest29 audited; no worker or repair launched. Owner D05 answers pending; normal bounded authority/record correction only after actual answer. Existing two approvals unchanged.", + "paid_shift_midnight_formal_proof": "execution/p04-01-current-recheck-20261015/ROOT_PAID_SHIFT_MIDNIGHT_FORMAL_RESULT.json", + "same_minute_formal_proof": "execution/p04-01-current-recheck-20261015/ROOT_SAME_MINUTE_RESEND_FORMAL_RESULT.json", + "corrected_c_bundle": "execution/p04-01-current-recheck-20261015/ROOT_CORRECTED_C_BUNDLE_LOCAL_PASS.json", + "product_composition_proof": "execution/p04-01-current-recheck-20261015/ROOT_PROSPECTIVE_PRODUCT_COMPOSITION_R01.json", + "current_native_result": "execution/p04-01-current-recheck-20261015/ROOT_S3_NATIVE_R01_RESULT.json", + "prior_native_failure": "execution/p04-01-current-recheck-20261015/ROOT_S1_NATIVE_R01_RESULT.json", + "previous_native_results": [ + "execution/p04-01-current-recheck-20261015/ROOT_S2B_NATIVE_R02_RESULT.json", + "execution/p04-01-current-recheck-20261015/ROOT_S2B_NATIVE_R01_RESULT.json", + "execution/p04-01-current-recheck-20261015/ROOT_S2A_NATIVE_R03_RESULT.json" + ], + "historical_runner_context_before_current_reaudit": { + "runner_state": "repair_ready", + "repairs": 19, + "submitted": "accd07c91d4e34d9b7c7fc20e389df2424b167e1", + "registered_validation": "0689f0070bd54d4f8b5849bb63bb36a8", + "worker_model": "gpt-6-astra", + "actual_commander": "execution/p04-01-current-recheck-20261015/OPUS_REPAIR18_FULL_INPUT_CONTINUATION_DECISION.json", + "run_decision": "execution/p04-01-current-recheck-20261015/OPUS_REPAIR18_FULL_INPUT_CONTINUATION_DECISION.json", + "current_scope": "Preserved executable R; next actual Opus direction for missing raw joins/getter type correction and real candidate A/fixtures. No new registered validation of unchanged accd." + } + }, + "historical_initial_recheck": "execution/p04-01-current-recheck-20261015/recheck.json" + }, + { + "id": "P04-02", + "title": "トランザクションと再送", + "work": "課金・補給・依存判定・イベント効果の失敗時原状保持と再送時の一回反映を接続する。", + "acceptance": "途中失敗後の状態・帳簿・再試行結果が一致する。", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-02-completion-acceptance-r01.json", + "bytes": 14047, + "sha256": "4b41ea1d4d2f9f7407e38bcb8f4a797e66babb5f9f8bd1318357c6dd2829c6de" + }, + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-02-completion-acceptance-r01.json" + }, + { + "id": "P04-03", + "title": "Runtimeの負荷監視", + "work": "新サービス導入ごとにTick・snapshot・経路・描画更新を同一条件で測る。", + "acceptance": "状態や乱数を変える軽量化を受け入れず、性能結果と意味的同等性を別に判定する。", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-03-completion-acceptance-r01.json", + "bytes": 9280, + "sha256": "77a732a2f9e97414d0311e8398a5b0b67bec9b0d547bce7ac207bf554713166c" + }, + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-03-completion-acceptance-r01.json", + "started_and_closed_in_current_work": true + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "fine_cleaning_effect": { + "status": "triple work rate and single-owner cleaning progression implemented; six related suites PASS; normal recruitment pending user values", + "evidence": "execution/FINE_CLEANING_EFFECT.md", + "all_original_acceptance": false + }, + "staff_task_clock": { + "status": "Removed redundant rejected per-tick progress calls; normal task time unchanged; 6 suites / 574 checks PASS", + "evidence": "execution/STAFF_TASK_CLOCK.md", + "all_original_acceptance": false + }, + "event_defense_integration": { + "status": "integrated_current_source_full_and_restart_verified", + "evidence": "artifacts/event-defense-integration-2026-09-30/", + "runtime_schema": 13, + "event_checks": 186, + "natural_producer_complete": false, + "all_original_acceptance": false, + "full_evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + } + }, + "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", + "current_command_ownership_checkpoint": { + "at_jst": "2026-10-08T05:22:00.955124+09:00", + "source_files": 1287, + "source_targets": [ + "scripts/core/command_queue.gd", + "tests/s0/test_command_transaction.gd" + ], + "actual_full_checks": 13972, + "actual_full_suites": 170, + "actual_native_phases": 172, + "actual_parse_checks": 299, + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p04-command-ownership-full170-actual-root-review-r01/review.json", + "bytes": 263749, + "sha256": "f84248f3bc4a1a3cacc04c7a63dfbc6e7f20085e2196685f9abd596403878826" + }, + "actual_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p04-command-ownership-two-ref-source-adoption-r01/adoption.json", + "bytes": 1846, + "sha256": "453c470fe5573452c16f82ccf6afb5fd6bed906d0204bb9a256f1568f8132b84" + }, + "focused_checks_each": 51, + "original_checks_each": 40, + "additional_ownership_checks_each": 11, + "source_adopted": true, + "normal_Main_accepted": false, + "formal_cross_PID_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_transaction_rollback_alias_checkpoint": { + "at_jst": "2026-10-08T07:33:08.022977+09:00", + "source_files": 1287, + "current_full_checks": 13984, + "current_full_suites": 170, + "current_full_native": 172, + "current_full_parse": 299, + "source_targets": [ + "scripts/core/state_transaction.gd", + "tests/s0/test_command_transaction.gd" + ], + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p04-transaction-rollback-alias-full170-actual-root-review-r01/review.json", + "bytes": 263711, + "sha256": "ba7a901f85e5d36a222923ed43b1e57f1522c407c6a232302bf05315fdbec8e1" + }, + "actual_focused_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p04-transaction-rollback-alias-actual-root-review-r01/review.json", + "bytes": 1283, + "sha256": "dc45e9ea116dc3f6446e7e94415075eeb01697b42c7a26ab158cd1d396cbdac4" + }, + "actual_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p04-transaction-rollback-alias-two-ref-source-adoption-r01/adoption.json", + "bytes": 1930, + "sha256": "cea1b974af2f8cccae86a6329a5ca779461cd1524024c3fc63733c98bed6b759" + }, + "source_adopted": true, + "original_checks": 51, + "additional_checks": 12, + "current_source_Windows_build_required": true, + "current_native_kit_update_required": true, + "StateTransaction_current_Runtime_callers": 0, + "Runtime_transaction_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_update_order_recovery_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-current1299-update-order-recovery-audit-r02/review.json", + "bytes": 229353, + "sha256": "18cbb17efe06464781f12051b2096dbd5629c5ca45cf6333b607ab538e09a595" + }, + "current_real_command_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T00:35:08.597915+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-real-command-restart-root-review-r05/review.json", + "bytes": 257780, + "sha256": "5f728110c613b89c0461fec6cdc59a6fbd3311a58e68a7c8a8ae720a072d4579" + }, + "actual_native": 4, + "actual_checks": 88, + "actual_parse": 303, + "typed_buffers": 30, + "whole_duplicate_noop_pairs": 8, + "source_adoption": 0, + "failed_trials_native": 7, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Explicit notification-failure fixture; ordinary paid warehouse; queued purchase and gold/materials cost; exact current formal package copy into fresh reader profile; Operations OFF/direct Runtime. No Main/OS, all old schemas/features or Windows hardware acceptance." + }, + "current_event_observer_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:07:11.114159+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-observer-full172-actual-root-review-r03/review.json", + "bytes": 271109, + "sha256": "fdfbbaf5792b28aa449b378752d624d698d016f0bb26d39d34e5d339c9b95694" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-notification-candidate-root-review-r01/review.json", + "bytes": 398972, + "sha256": "26d76d17223444d87d90921062e35d37f32d9d3f23cb2b878b411fe712e367a1" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-observer-four-ref-source-adoption-r01/adoption.json", + "bytes": 1698, + "sha256": "43e0ccd8a356ee2d432e0269f1d38707f25393c18aee2dc12929df7d3e299eb2" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14263, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 488, + "new_regression_checks": 104, + "source_refs_adopted": 4, + "known_reproduced_event_observer_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "current_event_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:13:40.010018+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-formal-restart-root-review-r02/review.json", + "bytes": 342228, + "sha256": "1a66b88c40cbcd877dbd026388e6b7bf3a3d64ec4b6d316f2237277f2070ec04" + }, + "actual_native": 4, + "actual_checks": 555, + "actual_parse": 303, + "typed_buffers": 112, + "whole_duplicate_and_cache_noop_pairs": 12, + "formal_packages": 16, + "formal_members": 64, + "source_adoption": 0, + "failed_trials_native": 4, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Eight isolated existing event-policy/action/cost cases; pending and completed formal SaveService packages copied whole into fresh reader profile; separate PID entire Runtime and observer equality. Operations OFF/direct Runtime; not Main/OS, all schemas, all events or Windows hardware." + }, + "historical_event_rollback_refusal_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:25:52.383176+09:00", + "candidate_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-candidate-root-review-r02/review.json", + "bytes": 400000, + "sha256": "58747ef5c8bd86db9b38f674524acfd561551276d2849aa7e8f4e75a1bd607de" + }, + "baseline_negative_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-baseline-rejection-r01/review.json", + "bytes": 233534, + "sha256": "7806226bb04dcb3841c127f345c1a544bc493a91a35841e29795bd27046d9375" + }, + "actual_native": 7, + "actual_checks": 552, + "actual_parse": 303, + "candidate_game_refs": 2, + "candidate_regression_refs": 1, + "candidate_new_regression_checks": 61, + "source_adoption": 0, + "production_reproduced_failure_boundary_unresolved": 1, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "full_regression_accepted": false, + "scope": "Explicit participant restore refusal; fatal propagation candidate and7regression cases. Current production still has this failure-boundary defect; not a naturally observed normal-play failure." + }, + "current_event_rollback_refusal_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T02:50:54.493265+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-full172-actual-root-review-r01/review.json", + "bytes": 271420, + "sha256": "8bf571808b8cd121386cd44211f64fa50668233cdcc0a7790e54c6a0b957e850" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-candidate-root-review-r02/review.json", + "bytes": 400000, + "sha256": "58747ef5c8bd86db9b38f674524acfd561551276d2849aa7e8f4e75a1bd607de" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-rollback-refusal-three-ref-source-adoption-r01/adoption.json", + "bytes": 1683, + "sha256": "0b0a2dca71b30fbc8559eac7ac8d9942a704a9268f579076866926d263c14e55" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14324, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 552, + "new_regression_checks": 61, + "source_refs_adopted": 3, + "known_reproduced_event_rollback_refusal_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_fatal_event_restart_and_cost_release_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:10:39.778600+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-fatal-event-restart-root-review-r01/review.json", + "bytes": 353628, + "sha256": "a90dd09b615ba7bc55b02e91d3c4d52ccbc3fadc0bf250205a6c55075260e696" + }, + "actual_native": 4, + "actual_checks": 619, + "actual_parse": 303, + "typed_buffers": 128, + "whole_duplicate_and_cache_noop_pairs": 12, + "formal_packages": 16, + "formal_members": 64, + "source_adoption": 0, + "cost_release_refusal_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-event-cost-release-refusal-baseline-rejection-r01/review.json", + "bytes": 233717, + "sha256": "3b98bfb1666767b6e92343b945e915dc7a73060b1b04cf27c651e621d8e2e492" + }, + "cost_release_negative_native": 3, + "cost_release_negative_checks": 16, + "cost_release_negative_failures": 3, + "known_reproduced_cost_release_boundary_unresolved": 1, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Eight explicit fatal event cases, whole formal save restart with retained partial state. Separate negative release refusal remains unresolved; not all events/Main/OS/Windows." + }, + "current_cost_release_refusal_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:39:01.640644+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-full172-actual-root-review-r01/review.json", + "bytes": 271352, + "sha256": "9d0402a4c56888dfcf5c2543b494634823534e966a6239e8f1f5057f466ed4d3" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-candidate-root-review-r01/review.json", + "bytes": 399869, + "sha256": "87120ee5d2e2268e720d930cd76a851b03ef8022a8f3dff6426d8ca8383a75e9" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-two-ref-source-adoption-r01/adoption.json", + "bytes": 1619, + "sha256": "fab928bcf12eb75a99af7eaa8f7f41af1735e1aa04feb016d60c26d9e9673174" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14402, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 630, + "new_regression_checks": 78, + "source_refs_adopted": 2, + "known_reproduced_cost_release_boundary_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_cost_choice_lifecycle_r106_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:54:28.866606+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-lifecycle-baseline-rejection-r01/review.json", + "bytes": 241585, + "sha256": "4b2c73d5e20a64b24691c52788d89ab5eecadc21e2b734331df62e0caee2f361" + }, + "actual_native": 3, + "actual_checks": 33, + "actual_failures": 3, + "actual_parse": 303, + "typed_buffers": 14, + "source_adoption": 0, + "known_reproduced_cost_lifecycle_boundary_unresolved": 2, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Three registered fixture cases through ordinary public Runtime callbacks, no refusal injection. Shared cost ledger key and prior failed choice cache block another valid choice. Not original story/Main/OS/Windows." + }, + "historical_cost_choice_lifecycle_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:14:02.296156+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-lifecycle-baseline-rejection-r02/review.json", + "bytes": 244990, + "sha256": "f96c2be97d03bf908b2944205265c7d8ba6a30cc77a62c56b4c8c5618454e3dc" + }, + "actual_native": 3, + "actual_checks": 43, + "actual_failures": 4, + "actual_parse": 303, + "typed_buffers": 18, + "source_adoption": 0, + "candidate_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-candidate-root-review-r04/review.json", + "bytes": 410801, + "sha256": "1591daeecb2ad4343b74ad8c37b034698254ed54e95a2bb223434176f1b66cf7" + }, + "candidate_focused_checks": 743, + "candidate_new_permanent_regressions": 86, + "known_reproduced_cost_lifecycle_boundary_unresolved": 3, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Three registered fixture cases through ordinary public Runtime callbacks, no refusal injection. Shared cost ledger key and prior failed choice cache block another valid choice. Not original story/Main/OS/Windows." + }, + "current_cost_choice_lifecycle_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:37:24.686078+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-full172-actual-root-review-r01/review.json", + "bytes": 271270, + "sha256": "256b2b4af3a4c361470c2c2b3dba3537567857dbb5ee562cb6a5b5c0512f96d4" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-candidate-root-review-r04/review.json", + "bytes": 410801, + "sha256": "1591daeecb2ad4343b74ad8c37b034698254ed54e95a2bb223434176f1b66cf7" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-three-ref-source-adoption-r01/adoption.json", + "bytes": 1663, + "sha256": "caa0278a7d6a6940074e292eeb49fedabf2718dd9422fe279a9663449bfc404f" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14488, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 743, + "new_regression_checks": 86, + "source_refs_adopted": 3, + "known_reproduced_cost_choice_lifecycle_boundary_unresolved": 0, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false + }, + "historical_cost_release_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T03:41:21.964210+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-release-formal-restart-root-review-r01/review.json", + "bytes": 306472, + "sha256": "29f5b2a53b06ffd62aaa650b130162b7bee5ab5a68cdd9c533019426e7e1dcb4" + }, + "actual_native": 4, + "actual_checks": 347, + "actual_parse": 303, + "typed_buffers": 80, + "whole_duplicate_and_cache_noop_pairs": 8, + "formal_packages": 8, + "formal_members": 32, + "source_adoption": 0, + "failed_trials_native": 0, + "actual_refund_recovery_accepted": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Four explicit paid cost release refusal/missing callback cases, before/after formal whole save restart with retained100G escrow/token, eight whole replay noop pairs. Not refunded costs/all events/Main/OS/Windows." + }, + "current_cost_choice_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T04:39:05.588592+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-cost-choice-formal-restart-root-review-r01/review.json", + "bytes": 307927, + "sha256": "9402a0a71fc1ea85645ba73181aec52c002cf71e66f27df340b6695971018a6c" + }, + "actual_native": 4, + "actual_checks": 409, + "actual_parse": 303, + "typed_buffers": 78, + "whole_duplicate_and_cache_noop_pairs": 8, + "formal_packages": 10, + "formal_members": 40, + "source_adoption": 0, + "failed_trials_native": 0, + "actual_refund_recovery_accepted": false, + "whole_goal_accepted": false, + "all_P03_P04_accepted": false, + "scope": "Five explicit paid choice fixtures with two reservations, fully refunded retry, mixed resource rollback and legacy token commit/cancel. Ten whole formal saves and separate PIDs; full ordered notifications and eight duplicate/cache noop pairs. Not all old schemas/events/Main/OS/Windows." + }, + "historical_principal_financing_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:01:34.100727+09:00", + "actual_baseline_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ledger-boundary-root-review-r01/review.json", + "bytes": 232131, + "sha256": "263457b7371c1a9ee0c309c0439fa6f6b17125d32afd8a7a3525ad78734e936d" + }, + "baseline_native": 3, + "baseline_checks": 10, + "baseline_failures": 1, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "focused_native": 7, + "focused_checks": 979, + "focused_parse": 303, + "typed_buffers": 5, + "new_regression_checks": 28, + "candidate_game_refs": 3, + "candidate_regression_refs": 1, + "source_adoption": 0, + "principal_classification_unresolved_in_production": 1, + "whole_goal_accepted": false, + "all_P05_accepted": false, + "production_terms_set": 0 + }, + "current_principal_financing_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:26:08.896165+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-full172-actual-root-review-r01/review.json", + "bytes": 271441, + "sha256": "9edd301b7bedb433638e851c6399716e9e9d28fc5d6020d56521290aa51e84ac" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-four-ref-source-adoption-r01/adoption.json", + "bytes": 1803, + "sha256": "4e1660c4312db3ccf76b0ec0a5fe54b62c98c9394cfc1add9b193e626a0c6848" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14516, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 979, + "new_regression_checks": 28, + "source_refs_adopted": 4, + "game_refs_adopted": 3, + "test_refs_adopted": 1, + "known_reproduced_principal_classification_boundary_unresolved": 0, + "optional_financing_category_shape_extended": true, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_API_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:32:48.164159+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-full172-actual-root-review-r01/review.json", + "bytes": 271375, + "sha256": "c14250e2f441b34427f97b596850f9261bfb0fd4363b3d6956f6707e7b11c8c7" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-candidate-root-review-r02/review.json", + "bytes": 281489, + "sha256": "227386fe6079da1630ad4e0779ce1f9613378f0405ffd1b6890740c673b0560c" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "8b87db6b958b4c14c71023ce60238f2ab47f9086970c221348493553085c0c9d" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14540, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1064, + "new_regression_checks": 24, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_API_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_command_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:11:26.397156+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-full172-actual-root-review-r01/review.json", + "bytes": 271371, + "sha256": "e49f57fa885dbb79155222af681bbf11241bb523afe703509ba40000a3754b85" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-candidate-root-review-r02/review.json", + "bytes": 294967, + "sha256": "4f553976263b1ea97a362d27cab4c7f0a8840a573e1135ddc14b65cf916c7f4f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "47c3c58031713cbaff44bebff2fd561e8ba01021b0fec85471901b8a06a7e4d6" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14567, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1113, + "new_regression_checks": 27, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_command_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "existing_liability_command_executor_accepted": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "historical_before_original_profit_fix_original_principal_profit_reproduction_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:29:13.140774+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-baseline-root-review-r01/review.json", + "bytes": 235748, + "sha256": "7e72ee93c3df320a98b4ac483366498daf294b51eadc911e5e093f9976e60760" + }, + "actual_native": 3, + "actual_checks": 36, + "actual_failures": 10, + "actual_parse": 303, + "whole_typed_buffers": 8, + "known_original_profit_cause_unresolved": 1, + "actual_net_profits": [ + 0, + 0, + 0 + ], + "required_original_net_profits": [ + -500, + -500, + -500 + ], + "actual_loss_streaks": [ + 0, + 0, + 0 + ], + "required_original_loss_streaks": [ + 1, + 2, + 3 + ], + "actual_after_terminal_clock": 4820, + "required_after_terminal_clock": 4320, + "actual_after_terminal_command": "OK", + "actual_after_terminal_faith_delta": 1, + "fault_injection": false, + "source_refs_adopted": 0, + "original_daily_profit_and_terminal_accepted": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "historical_before_original_profit_fix_principal_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:34:28.117044+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-formal-restart-root-review-r01/review.json", + "bytes": 280586, + "sha256": "2e84b0e9cbe908d8de7e4ec29f99eac0238cf83912b9660eea57285ce14916a5" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime principal fixtures: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_API_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:40:11.456491+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-formal-restart-root-review-r01/review.json", + "bytes": 281222, + "sha256": "2e4a87f134df60f9c5b41212e229eb069a0d8766c4c6e7fb2eaa354d737b3239" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime repayment API fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_command_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:21:26.568979+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-formal-restart-root-review-r01/review.json", + "bytes": 294051, + "sha256": "90d29f0143081d50c762f9cc9872c55d2d267f26474ad94aa8395f755a577201" + }, + "actual_native": 4, + "actual_checks": 2281, + "actual_parse": 303, + "typed_buffers": 56, + "whole_principal_duplicate_noop_pairs": 8, + "formal_packages": 10, + "formal_members": 40, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five ordinary repayment command fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Ten whole formal packages and separate PIDs; not approved production bank producer/terms or all P05.", + "original_daily_profit_accepted": false, + "known_original_profit_difference_unresolved": 1, + "original_source_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-source-reaudit-r01/review.json", + "bytes": 11163, + "sha256": "5d5e9d294ecb84088bac403d1d5225e27281cf54926011a3624a0f0d852968e2" + } + }, + "current_original_principal_profit_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:00:19.900637+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full172-actual-root-review-r02/review.json", + "bytes": 271181, + "sha256": "6e30abb83f870f84127e7c34f24ae0bfbd055f180de95ed92cb9a63b4bc3bf1d" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-candidate-root-review-r01/review.json", + "bytes": 7871, + "sha256": "18af2f1d09cd0f07c1138f60fa4fbfb58376e156c1fe8632a566efb7f13661e7" + }, + "genuine_v4_migration_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-genuine-v4-root-review-r01/review.json", + "bytes": 29826, + "sha256": "9101ba65182b0a7d52a27b29e7fd89638c6e48ece9cdfabe5f402481af66b3e7" + }, + "genuine_v4_prior_loss_unit_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-legacy-streak-root-review-r01/review.json", + "bytes": 2623, + "sha256": "d0049007fceb5896b7955f143f5353e8a3cd2a40bc78cba241e0adf7bb6b9ca1" + }, + "corrected_synthetic_v3_fixture_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-upkeep-fixture-focused-root-review-r01/review.json", + "bytes": 156289, + "sha256": "b55a2997503ad28dc6db09852144e0c8292f9807dd49fbb3635177b7e727fb1b" + }, + "first_full_rejection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full-first-rejection-root-r01/review.json", + "bytes": 11932, + "sha256": "f8ce3fceb7ec9cb50d62e3cff96f4d49540a81c60964e712a4840139bbcf85dc" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-five-ref-source-adoption-r01/adoption.json", + "bytes": 3191, + "sha256": "d72a9a19589c39a3d082376e1e1cd3b87a7d8e077618f22ca7236e93944b87a8" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14580, + "actual_full_parse": 303, + "focused_native": 8, + "focused_checks": 1108, + "genuine_v4_migration_native": 7, + "genuine_v4_migration_checks": 321, + "genuine_v4_formal_input_packages": 10, + "genuine_v4_typed_states": 40, + "new_regression_checks": 13, + "source_refs_adopted": 5, + "game_refs_adopted": 2, + "test_refs_adopted": 3, + "Operations_snapshot_before": 4, + "Operations_snapshot_after": 5, + "legacy_marker": "legacy_principal_profit_last_day", + "Runtime_version_unchanged": true, + "TTWB_format_unchanged": true, + "known_original_principal_profit_difference_unresolved": 0, + "all_legacy_closed_reports_preserved_in_tested_cases": true, + "latest_v5_formal_cross_PID_restart_accepted": true, + "normal_OS_input_accepted": false, + "normal_bank_UI_accepted": false, + "production_terms_set": false, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_defect_count_established": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "current_original_principal_profit_v5_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:14:11.886945+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-current-v5-restart-root-review-r01/review.json", + "bytes": 308122, + "sha256": "a9905589427b4ed418546c7d46ca6d361d9974b8b1d6ded0b9e559bc1ef61149" + }, + "actual_native": 4, + "actual_checks": 2552, + "actual_parse": 303, + "typed_buffers": 68, + "whole_principal_duplicate_noop_pairs": 10, + "formal_packages": 12, + "formal_members": 48, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "mixed_six_day_history_and_terminal_cross_PID_accepted": true, + "Operations_snapshot_version": 5, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five current v5 principal command fixtures and one genuinely migrated v4 mixed-history terminal fixture. Twelve whole formal packages and separate PIDs, full original debt expense and loss boundary; not production bank producer/terms or all schema acceptance.", + "original_daily_profit_accepted_in_tested_cases": true, + "known_original_profit_difference_unresolved": 0, + "source_applicability": "Historical preceding adopted source. Whole raw evidence preserved; new six-ref adopted source has separately accepted limited UI cross-PID lifecycle proof, not an automatic reacceptance of all previous formal cases." + }, + "current_existing_principal_ui_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:14:44.468993+09:00", + "focused_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-focused-root-review-r01/review.json", + "bytes": 13136, + "sha256": "5e5e18fc3fd3f2306f9286ba99ad079768afe8e15cd7f4e37b8598fa1f6e9d24" + }, + "full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-full172-actual-root-review-r01/review.json", + "bytes": 271519, + "sha256": "cfde6addb3734ecf644fee2ab2ad70070eac5465b6691ce226732692c8c86786" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-six-ref-source-adoption-r01/adoption.json", + "bytes": 1815, + "sha256": "58ee82d3f24f24c254416eab7831fc7ad440253885483b7e0eb2dbd559d1efab" + }, + "focused_checks": 535, + "focused_native": 7, + "full_suites": 172, + "full_checks": 14626, + "full_native": 174, + "parse": 303, + "source_refs_adopted": 6, + "game_refs_adopted": 4, + "permanent_test_refs_adopted": 1, + "policy_source_binding_refs_adopted": 1, + "new_permanent_checks": 46, + "typed_buffers": 9, + "formal_packages": 2, + "formal_members": 8, + "exact_SaveService_continuation": true, + "facade_IO_receipt_explicitly_attested": true, + "pointer_and_key_input": "engine viewport only", + "normal_OS_accepted": false, + "Windows_hardware": false, + "loan_issuance_accepted": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "cross_PID_formal_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-formal-reader-root-review-r01/review.json", + "bytes": 9872, + "sha256": "78ffa34f6ceb62c1803aff6bdc172765fcc7b145c34af0f96369a19b8338e393" + }, + "cross_PID_formal_checks": 42, + "cross_PID_formal_native": 3, + "exact_SaveService_cross_PID_continuation": true, + "new_post_restart_payment_accepted": true, + "reader_typed_buffers": 8 + }, + "current_principal_ui_original_terminal_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:28:20.568581+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ui-terminal-root-review-r01/review.json", + "bytes": 16658, + "sha256": "4edbd419acfb68b500d9811cca80fb2ddd6183a3e0b17bae7dff0d8c0371c4cc" + }, + "actual_checks": 71, + "actual_native": 4, + "parse": 303, + "whole_typed_buffers": 15, + "whole_exact_pairs": 12, + "whole_terminal_noop_pairs": 3, + "formal_packages": 2, + "formal_members": 8, + "writer_pid": 78851, + "reader_pid": 79161, + "original_principal_UI_three_loss_boundary": [ + { + "day": 1, + "cash": 6000, + "debt": 1000, + "profit": -500, + "loss_streak": 1 + }, + { + "day": 2, + "cash": 5500, + "debt": 500, + "profit": -500, + "loss_streak": 2 + }, + { + "day": 3, + "cash": 5000, + "debt": 0, + "profit": -500, + "loss_streak": 3 + } + ], + "exact_whole_cross_PID_terminal_continuation": true, + "source_refs_adopted": 0, + "production_bank_terms_set": 0, + "normal_OS_accepted": false, + "Windows_hardware": false, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + } + }, + { + "id": "P05", + "phase": 2, + "title": "全収支・維持費・税・借入", + "depends_on": [ + "P04" + ], + "size": "L", + "requirement_ids": [ + "B-3.4a", + "B-3.4b", + "B-9.1", + "B-9.2", + "B-9.3" + ], + "work": "表/裏収入区分、維持費、返済元本/利息、税、未払いを帳簿に接続。金庫上限・購買・銀行のサービス契約を先に作る。決算損益と現金収支を区別。", + "acceptance": "3営業日の費目別総額が台帳・施設別・資金と一致。借入元本を売上にしない。支払い失敗/再送/復元/3赤字を検証。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P05-01", + "title": "自動仕入れ候補の受入", + "work": "1394基準の補正候補を現1396基準へ限定リベースし、見積・数量・単価・領収書・配送と通常UIへ接続する。", + "acceptance": "手動購入互換、資金不足、二重課金、返送、停電、隔離、途中再起動を検証してから採用する。", + "current_source_authority": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p04-01-overdue-exit-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "df8328ea8b6a7bc400caad8a52f6ead710c01942a726e5a6b530b82411c55da5" + }, + "current_condition_matrix": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-01-current-condition-audit-r01/condition-matrix.json", + "bytes": 13402, + "sha256": "bcf608e6ec402b9ecd4ab05d06201dd4880e566646aca00fc3c21fc0ac656f44" + }, + "current_limited_OS_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-01-normal-os-actual-independent-review-r01.json", + "bytes": 5226, + "sha256": "4042d35bbf4beab718ea6392385602aaf1f6a31bc511278bfee63bac8a2499f1" + }, + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-01-completion-acceptance-r01.json", + "bytes": 13451, + "sha256": "26b5461bba195b89cd95916f6cee171d5907b3fea28e2da81bef811d4fb842e6" + }, + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-01-completion-acceptance-r01.json" + }, + { + "id": "P05-02", + "title": "全費目と資金区分", + "work": "表金・裏金、維持費未払い、仕入れ、人件費、元本、利息、税を帳簿へ接続する。", + "acceptance": "3営業日で資金増減と台帳が一致し、借入元本を売上に含めない。" + }, + { + "id": "P05-03", + "title": "金庫と銀行の通常営業", + "work": "金庫容量、購買窓口、借入、返済、滞納を通常画面から操作する。", + "acceptance": "上限・不足・期限・保存・赤字終了と、滞納から脅威への接続を確認する。" + } + ], + "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": "in_progress", + "execution_progress": { + "current1285_candidate_checkpoint": { + "at_jst": "2026-10-07T23:54:31.996054+09:00", + "production_source_files_at_document_update": 1277, + "candidate_source_files": 1285, + "actual_suites": 170, + "actual_checks": 13961, + "native_phases": 172, + "failures": 0, + "execution": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/execution.json", + "sha256": "a91805ea5075ad097ae48c63cdd1a0c662e80410292f24f1a3e429acaa5fa9b7" + }, + "verification": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/standard/verification.json", + "sha256": "1d2befd4b9a997960b9bc7731508d9e0f67c71eb9f7b6162e621e6343422e823" + }, + "Root_full_proof_acceptance": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-actual-full-proof-acceptance-r01.json", + "sha256": "3b5cbf125b0ad62f98e8a9414385673ee1933d7d822276b9f6b663fa289f53c0" + }, + "UI_functional_checks": 203, + "UI_parse_checks": 300, + "source_refs_planned": 18, + "outside_refs_planned": 1, + "total_refs_planned": 19, + "factual_bindings": { + "full_preparation_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-combined170-rank-full19-native-successor-prep-r01/input-seal.json", + "sha256": "6f852649c58f35c8b650d9e5074149cb92c8d09c1e4a3d1527ca79526f9de877" + }, + "full_actual_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/actual-input-seal.json", + "sha256": "916e539d1d4508ee44c1d93267c6dbd0096df052d19fd0889ba21a1320ad85d7" + }, + "full_Root_review": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-literal-actual-admission-r01/review.json", + "sha256": "4d1b2a55068b55077c17ed6a2f96ecb1f0aa5f9f0712522a1ee38afbe34829d6" + }, + "full_peer_review": { + "path": "artifacts/original-completion-2026-10-02/p17-full19-r07-literal-actual-independent-admission-r01/review.json", + "sha256": "416f139a46e8df42306a9874c5f1ba51abc689abcd46d6309b9b73f5c8eeb6af" + }, + "source_targets": 18, + "outside_targets": 1, + "total_targets": 19 + }, + "actual_source_adoption": false, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + }, + "current1285_adopted_checkpoint": { + "at_jst": "2026-10-08T00:01:03.922197+09:00", + "actual_source_adoption": true, + "production_source_files": 1285, + "source_refs_adopted": 18, + "outside_refs_adopted": 1, + "total_refs_adopted": 19, + "adoption": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/adoption.json", + "sha256": "f6ac9e3753fdf0df5966d34b50e1f51eb24ac0c3814911c1a51d6b9ff418397d" + }, + "source_after": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/source-after.json", + "sha256": "066c474908fa8840f4ed6b615d48d92245690d03b8445b113e20c7551d86e5b7" + }, + "public_runner_preparation": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/canonical170-prepare-after-adoption.json", + "sha256": "5c099c7abfa46182eb9282fcf9dee8847c7e93c04c1f58bf7ae0ac1ec0e0f520" + }, + "actual_suites": 170, + "actual_checks": 13961, + "actual_native_phases": 172, + "failures": 0, + "rollback_attempted": false, + "source_byte_map_equal_to_actual_tested_map": true, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + }, + "historical_principal_financing_pending_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:01:34.100727+09:00", + "actual_baseline_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ledger-boundary-root-review-r01/review.json", + "bytes": 232131, + "sha256": "263457b7371c1a9ee0c309c0439fa6f6b17125d32afd8a7a3525ad78734e936d" + }, + "baseline_native": 3, + "baseline_checks": 10, + "baseline_failures": 1, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "focused_native": 7, + "focused_checks": 979, + "focused_parse": 303, + "typed_buffers": 5, + "new_regression_checks": 28, + "candidate_game_refs": 3, + "candidate_regression_refs": 1, + "source_adoption": 0, + "principal_classification_unresolved_in_production": 1, + "whole_goal_accepted": false, + "all_P05_accepted": false, + "production_terms_set": 0 + }, + "current_principal_financing_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:26:08.896165+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-full172-actual-root-review-r01/review.json", + "bytes": 271441, + "sha256": "9edd301b7bedb433638e851c6399716e9e9d28fc5d6020d56521290aa51e84ac" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-candidate-root-review-r01/review.json", + "bytes": 411582, + "sha256": "3f1bf1b1a9e7340cc31fe1a8031f5e20222f50e1ebd554852959838d39fe850f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-four-ref-source-adoption-r01/adoption.json", + "bytes": 1803, + "sha256": "4e1660c4312db3ccf76b0ec0a5fe54b62c98c9394cfc1add9b193e626a0c6848" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14516, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 979, + "new_regression_checks": 28, + "source_refs_adopted": 4, + "game_refs_adopted": 3, + "test_refs_adopted": 1, + "known_reproduced_principal_classification_boundary_unresolved": 0, + "optional_financing_category_shape_extended": true, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_API_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:32:48.164159+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-full172-actual-root-review-r01/review.json", + "bytes": 271375, + "sha256": "c14250e2f441b34427f97b596850f9261bfb0fd4363b3d6956f6707e7b11c8c7" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-candidate-root-review-r02/review.json", + "bytes": 281489, + "sha256": "227386fe6079da1630ad4e0779ce1f9613378f0405ffd1b6890740c673b0560c" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "8b87db6b958b4c14c71023ce60238f2ab47f9086970c221348493553085c0c9d" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14540, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1064, + "new_regression_checks": 24, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_API_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "current_principal_repayment_command_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:11:26.397156+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-full172-actual-root-review-r01/review.json", + "bytes": 271371, + "sha256": "e49f57fa885dbb79155222af681bbf11241bb523afe703509ba40000a3754b85" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-candidate-root-review-r02/review.json", + "bytes": 294967, + "sha256": "4f553976263b1ea97a362d27cab4c7f0a8840a573e1135ddc14b65cf916c7f4f" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-two-ref-source-adoption-r01/adoption.json", + "bytes": 1734, + "sha256": "47c3c58031713cbaff44bebff2fd561e8ba01021b0fec85471901b8a06a7e4d6" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14567, + "actual_full_parse": 303, + "reused_focused_native": 7, + "reused_focused_checks": 1113, + "new_regression_checks": 27, + "source_refs_adopted": 2, + "game_refs_adopted": 1, + "test_refs_adopted": 1, + "known_reproduced_principal_repayment_command_boundary_unresolved": 0, + "optional_financing_category_shape_extended": false, + "legacy_no_loan_shape_preserved": true, + "existing_liability_command_executor_accepted": true, + "formal_restart_accepted": false, + "production_loan_command_accepted": false, + "bank_UI_accepted": false, + "tax_and_loan_terms_accepted": false, + "whole_defect_count_established": false, + "whole_goal_accepted": false, + "all_P05_accepted": false + }, + "historical_before_original_profit_fix_original_principal_profit_reproduction_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:29:13.140774+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-baseline-root-review-r01/review.json", + "bytes": 235748, + "sha256": "7e72ee93c3df320a98b4ac483366498daf294b51eadc911e5e093f9976e60760" + }, + "actual_native": 3, + "actual_checks": 36, + "actual_failures": 10, + "actual_parse": 303, + "whole_typed_buffers": 8, + "known_original_profit_cause_unresolved": 1, + "actual_net_profits": [ + 0, + 0, + 0 + ], + "required_original_net_profits": [ + -500, + -500, + -500 + ], + "actual_loss_streaks": [ + 0, + 0, + 0 + ], + "required_original_loss_streaks": [ + 1, + 2, + 3 + ], + "actual_after_terminal_clock": 4820, + "required_after_terminal_clock": 4320, + "actual_after_terminal_command": "OK", + "actual_after_terminal_faith_delta": 1, + "fault_injection": false, + "source_refs_adopted": 0, + "original_daily_profit_and_terminal_accepted": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "historical_before_original_profit_fix_principal_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T05:34:28.117044+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-formal-restart-root-review-r01/review.json", + "bytes": 280586, + "sha256": "2e84b0e9cbe908d8de7e4ec29f99eac0238cf83912b9660eea57285ce14916a5" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime principal fixtures: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_API_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T06:40:11.456491+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-repayment-formal-restart-root-review-r01/review.json", + "bytes": 281222, + "sha256": "2e4a87f134df60f9c5b41212e229eb069a0d8766c4c6e7fb2eaa354d737b3239" + }, + "actual_native": 4, + "actual_checks": 1825, + "actual_parse": 303, + "typed_buffers": 44, + "whole_principal_duplicate_noop_pairs": 6, + "formal_packages": 8, + "formal_members": 32, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Four real Runtime repayment API fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Eight whole formal packages and separate PIDs; not approved production bank producer/terms or all P05." + }, + "historical_before_original_profit_fix_principal_repayment_command_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T07:21:26.568979+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-command-formal-restart-root-review-r01/review.json", + "bytes": 294051, + "sha256": "90d29f0143081d50c762f9cc9872c55d2d267f26474ad94aa8395f755a577201" + }, + "actual_native": 4, + "actual_checks": 2281, + "actual_parse": 303, + "typed_buffers": 56, + "whole_principal_duplicate_noop_pairs": 8, + "formal_packages": 10, + "formal_members": 40, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five ordinary repayment command fixtures against explicit initial debt: no-loan shape, partial-to-full repayment, independent multiple liabilities and post-midnight posting. Ten whole formal packages and separate PIDs; not approved production bank producer/terms or all P05.", + "original_daily_profit_accepted": false, + "known_original_profit_difference_unresolved": 1, + "original_source_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-source-reaudit-r01/review.json", + "bytes": 11163, + "sha256": "5d5e9d294ecb84088bac403d1d5225e27281cf54926011a3624a0f0d852968e2" + } + }, + "current_original_principal_profit_fix_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:00:19.900637+09:00", + "actual_full_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full172-actual-root-review-r02/review.json", + "bytes": 271181, + "sha256": "6e30abb83f870f84127e7c34f24ae0bfbd055f180de95ed92cb9a63b4bc3bf1d" + }, + "actual_focused_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-candidate-root-review-r01/review.json", + "bytes": 7871, + "sha256": "18af2f1d09cd0f07c1138f60fa4fbfb58376e156c1fe8632a566efb7f13661e7" + }, + "genuine_v4_migration_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-genuine-v4-root-review-r01/review.json", + "bytes": 29826, + "sha256": "9101ba65182b0a7d52a27b29e7fd89638c6e48ece9cdfabe5f402481af66b3e7" + }, + "genuine_v4_prior_loss_unit_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-legacy-streak-root-review-r01/review.json", + "bytes": 2623, + "sha256": "d0049007fceb5896b7955f143f5353e8a3cd2a40bc78cba241e0adf7bb6b9ca1" + }, + "corrected_synthetic_v3_fixture_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-upkeep-fixture-focused-root-review-r01/review.json", + "bytes": 156289, + "sha256": "b55a2997503ad28dc6db09852144e0c8292f9807dd49fbb3635177b7e727fb1b" + }, + "first_full_rejection_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-full-first-rejection-root-r01/review.json", + "bytes": 11932, + "sha256": "f8ce3fceb7ec9cb50d62e3cff96f4d49540a81c60964e712a4840139bbcf85dc" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-five-ref-source-adoption-r01/adoption.json", + "bytes": 3191, + "sha256": "d72a9a19589c39a3d082376e1e1cd3b87a7d8e077618f22ca7236e93944b87a8" + }, + "actual_full_native": 174, + "actual_full_suites": 172, + "actual_full_checks": 14580, + "actual_full_parse": 303, + "focused_native": 8, + "focused_checks": 1108, + "genuine_v4_migration_native": 7, + "genuine_v4_migration_checks": 321, + "genuine_v4_formal_input_packages": 10, + "genuine_v4_typed_states": 40, + "new_regression_checks": 13, + "source_refs_adopted": 5, + "game_refs_adopted": 2, + "test_refs_adopted": 3, + "Operations_snapshot_before": 4, + "Operations_snapshot_after": 5, + "legacy_marker": "legacy_principal_profit_last_day", + "Runtime_version_unchanged": true, + "TTWB_format_unchanged": true, + "known_original_principal_profit_difference_unresolved": 0, + "all_legacy_closed_reports_preserved_in_tested_cases": true, + "latest_v5_formal_cross_PID_restart_accepted": true, + "normal_OS_input_accepted": false, + "normal_bank_UI_accepted": false, + "production_terms_set": false, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_defect_count_established": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "current_original_principal_profit_v5_formal_restart_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T09:14:11.886945+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-original-principal-profit-current-v5-restart-root-review-r01/review.json", + "bytes": 308122, + "sha256": "a9905589427b4ed418546c7d46ca6d361d9974b8b1d6ded0b9e559bc1ef61149" + }, + "actual_native": 4, + "actual_checks": 2552, + "actual_parse": 303, + "typed_buffers": 68, + "whole_principal_duplicate_noop_pairs": 10, + "formal_packages": 12, + "formal_members": 48, + "source_refs_adopted": 0, + "actual_three_day_Runtime_Operations_ON": true, + "mixed_six_day_history_and_terminal_cross_PID_accepted": true, + "Operations_snapshot_version": 5, + "normal_bank_UI": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "Operations_ON_maximum_accepted": false, + "Windows_hardware": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "scope": "Five current v5 principal command fixtures and one genuinely migrated v4 mixed-history terminal fixture. Twelve whole formal packages and separate PIDs, full original debt expense and loss boundary; not production bank producer/terms or all schema acceptance.", + "original_daily_profit_accepted_in_tested_cases": true, + "known_original_profit_difference_unresolved": 0, + "source_applicability": "Historical preceding adopted source. Whole raw evidence preserved; new six-ref adopted source has separately accepted limited UI cross-PID lifecycle proof, not an automatic reacceptance of all previous formal cases." + }, + "current_existing_principal_ui_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:14:44.468993+09:00", + "focused_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-focused-root-review-r01/review.json", + "bytes": 13136, + "sha256": "5e5e18fc3fd3f2306f9286ba99ad079768afe8e15cd7f4e37b8598fa1f6e9d24" + }, + "full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-full172-actual-root-review-r01/review.json", + "bytes": 271519, + "sha256": "cfde6addb3734ecf644fee2ab2ad70070eac5465b6691ce226732692c8c86786" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-six-ref-source-adoption-r01/adoption.json", + "bytes": 1815, + "sha256": "58ee82d3f24f24c254416eab7831fc7ad440253885483b7e0eb2dbd559d1efab" + }, + "focused_checks": 535, + "focused_native": 7, + "full_suites": 172, + "full_checks": 14626, + "full_native": 174, + "parse": 303, + "source_refs_adopted": 6, + "game_refs_adopted": 4, + "permanent_test_refs_adopted": 1, + "policy_source_binding_refs_adopted": 1, + "new_permanent_checks": 46, + "typed_buffers": 9, + "formal_packages": 2, + "formal_members": 8, + "exact_SaveService_continuation": true, + "facade_IO_receipt_explicitly_attested": true, + "pointer_and_key_input": "engine viewport only", + "normal_OS_accepted": false, + "Windows_hardware": false, + "loan_issuance_accepted": false, + "production_terms_set": 0, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false, + "cross_PID_formal_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-normal-principal-ui-formal-reader-root-review-r01/review.json", + "bytes": 9872, + "sha256": "78ffa34f6ceb62c1803aff6bdc172765fcc7b145c34af0f96369a19b8338e393" + }, + "cross_PID_formal_checks": 42, + "cross_PID_formal_native": 3, + "exact_SaveService_cross_PID_continuation": true, + "new_post_restart_payment_accepted": true, + "reader_typed_buffers": 8 + }, + "current_principal_ui_original_terminal_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:28:20.568581+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p05-principal-ui-terminal-root-review-r01/review.json", + "bytes": 16658, + "sha256": "4edbd419acfb68b500d9811cca80fb2ddd6183a3e0b17bae7dff0d8c0371c4cc" + }, + "actual_checks": 71, + "actual_native": 4, + "parse": 303, + "whole_typed_buffers": 15, + "whole_exact_pairs": 12, + "whole_terminal_noop_pairs": 3, + "formal_packages": 2, + "formal_members": 8, + "writer_pid": 78851, + "reader_pid": 79161, + "original_principal_UI_three_loss_boundary": [ + { + "day": 1, + "cash": 6000, + "debt": 1000, + "profit": -500, + "loss_streak": 1 + }, + { + "day": 2, + "cash": 5500, + "debt": 500, + "profit": -500, + "loss_streak": 2 + }, + { + "day": 3, + "cash": 5000, + "debt": 0, + "profit": -500, + "loss_streak": 3 + } + ], + "exact_whole_cross_PID_terminal_continuation": true, + "source_refs_adopted": 0, + "production_bank_terms_set": 0, + "normal_OS_accepted": false, + "Windows_hardware": false, + "all_schema_feature_acceptance": false, + "whole_P05_accepted": false, + "whole_goal_accepted": false + }, + "historical_current_summary_before_P05_01_reaudit_r01": "有料自動仕入れの既採用範囲を保持。読み取りコールバックが契約を破った場合の維持費2状態の復元漏れを補強し、同4case132/0と合成全165/13368で限定採用。全費目・税・借入・自然脅威・全P05は未完。 ミミ配置の新購入quoteと通常仕入れ入力の247機能+298parseを候補で限定照合。本体への今回反映、全費目/自然営業は未受入。 最新:検証済み18 source+outside1の計19 refsを本体source1285へ採用済み。全170/13961/0の実行ソースと全SHA一致。原本全受入は未完。 最新: 元本決算分類の現本体10/1失敗を再現。候補979/0・28恒久回帰を独立照合、本体採用0・全回帰/別PID保存未受入。全P05未完。 最新: 元本分類の再現1原因を修正。集中979/0、全172/14516/0を独立照合後4refs採用・28恒久回帰追加。この再現残件0、正式保存再開・本番融資操作は未受入、全P05未完。 最新: 元本4ケース・8正式保存を別PID再開し1825項目/0。全状態/通知/元本台帳・6再送noopを限定受入。本番銀行操作と全P05は未完。 最新: 既存負債の元本返済APIの欠落を修正。集中1064/0、全172/14540/0を独立照合後2refs採用・24恒久回帰追加。この再現残件0、新APIの正式保存再開・本番銀行操作は未受入、全P05未完。 最新: 元本返済API4ケース・8正式保存を別PID再開し1825項目/0。全状態/通知/元本台帳・6再送noopを限定受入。元本返済APIは限定受入。本番銀行操作と全P05は未完。 最新: 既存負債の返済を通常コマンドへ接続。集中1113/0・全172/14567/0を独立照合後2refs採用・27恒久回帰追加。この再現残件0、新コマンドの正式保存再開と本番銀行UIは未受入、全P05未完。 最新: 通常返済commandの5ケース・10正式保存を別PID再開2281/0で限定受入。原本3.4と9.2に対する元本返済経費の除外差異1を実Writer6日で確認し未修正。決算式・赤字判定と旧v4移行を通常UIより先に修正する。全P05未完。 最新: 実Runtime36項目/10失敗で元本返済経費の除外、3連続赤字の未発生、終了未移行、時間/操作の継続を再現。既知原因1未修正。原本決算と旧v4移行を通常UIより先に修正する。 最新: 原本の返済経費・3連続赤字・終了を集中1108/0、実旧v4の10正式保存移行と旧赤字回数の単体境界で検証。全172/14580/0後5refs採用・13恒久回帰追加。この既知原因残件0。Ops保存v5、新v5の別PID保存再開は未受入、全P05未完。 最新: 新v5の12正式保存・48memberを別PID再開2552/0で限定受入。実旧v4からの混在6日履歴、返済経費・3連続赤字・終了、10組の全状態不変を確認。全P05未完。 最新: 既存元本返済UIの集中535/0・全172/14626/0を照合し6参照を採用。融資条件・OS・Windows・全P05は未受入。 最新: 通常Mainの元本返済から原本3連続赤字終了まで進め、別PIDの2正式保存、15全状態、3終了後全状態不変を71/0で限定受入。本体変更0、全P05は未完。" + }, + { + "id": "P06", + "phase": 2, + "title": "マナ枯渇と全館停止", + "depends_on": [ + "P04" + ], + "size": "L", + "requirement_ids": [ + "B-2.6", + "B-9.1", + "B-10.6", + "B-10.7" + ], + "work": "供給/蓄積/消費と世界樹初期源の扱いを整理。全館停止時のサービス、EV、物流、救護、入館と安全な復帰を接続。休止状態は停電復旧で解除しない。", + "acceptance": "残量境界、停止中利用者、EV乗車中、搬送中、同日復旧を試験。停止中の売上や生産が無条件に継続しない。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P06-01", + "title": "供給と蓄積の契約", + "work": "世界樹、マナ炉、消費施設の生成・蓄積・消費と旧ゼロ値保存の意味を整理する。", + "acceptance": "初期値や係数の根拠を区別し、旧版移行と残量境界で矛盾がない。" + }, + { + "id": "P06-02", + "title": "全館停止の統合", + "work": "利用中、EV、ワープ、物流、救護、清掃、入館へ同じ停止判定を接続する。", + "acceptance": "停電中の無条件売上・生産がなく、乗客と搬送対象が消えない。" + }, + { + "id": "P06-03", + "title": "復帰と表示", + "work": "供給復帰時の予約・在庫・運行を再開し、HUDへ供給、消費、蓄積を表示する。", + "acceptance": "破壊・摘発の休止を停電復旧で解除しない。途中保存後も復帰結果が一致する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "evidence": "execution/MANA_INTEGRATION.md", + "status": "Production outage logic, kitchen and paired rescue recovery, HUD outage display verified; make check passed", + "remaining": [ + "finite reserve policy and Runtime generation/consumption", + "new reserve model save migration and legacy-zero-save boundary", + "supply/consumption HUD values after policy integration", + "natural gameplay and Windows acceptance" + ], + "no_landing_evidence": "artifacts/mana-2026-09-29/no-landing-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", + "current_controlled_supply_outage_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:37:43.610273+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p06-current-supply-outage-root-review-r01/review.json", + "bytes": 19655, + "sha256": "771078fabaea725cc7d115f51f6333be2dd8991097a69b16417aacb30817d8c5" + }, + "actual_checks": 460, + "actual_native": 4, + "parse": 303, + "whole_typed_buffers": 16, + "whole_exact_pairs": 8, + "formal_packages": 2, + "formal_members": 8, + "writer_pid": 84522, + "reader_pid": 84554, + "controlled_outage_boundary": [ + { + "label": "cargo", + "start_minute": 631, + "stop_end": 641, + "recovery_end": 646, + "held_cargo": { + "carrier": "staff_gina", + "inventory": "cargo:staff_gina", + "stacks": [ + { + "stack_id": "stack_00000002", + "owner_inventory_id": "cargo:staff_gina", + "item_id": "ingredient/raw_food", + "quality": 100, + "quantity": 4, + "reserved_quantity": 0, + "created_at": 620, + "expires_at": 2060, + "unit_weight": 1 + } + ] + }, + "whole_batches": [], + "recovery_batches": [ + { + "batch_id": "kitchen.batch:00000001", + "facility_id": "facility_00000005", + "inventory_id": "facility.inventory:facility_00000005", + "started_at": 642, + "progress_minutes": 4, + "quality": 55, + "reservation_ids": [ + "reservation_00000003" + ] + } + ], + "prior_service_sales": 0, + "active_services_at_outage": 0, + "active_service_interruption_accepted": false, + "entire_cargo_and_batch_preserved": true, + "zero_facility_power": true, + "completed_before": [], + "completed_recovered": [ + "supply.logistics_request.000000000001" + ] + }, + { + "label": "batch", + "start_minute": 648, + "stop_end": 658, + "recovery_end": 663, + "held_cargo": { + "carrier": "staff_gina", + "inventory": "", + "stacks": [] + }, + "whole_batches": [ + { + "batch_id": "kitchen.batch:00000001", + "facility_id": "facility_00000005", + "inventory_id": "facility.inventory:facility_00000005", + "started_at": 642, + "progress_minutes": 5, + "quality": 55, + "reservation_ids": [ + "reservation_00000003" + ] + } + ], + "recovery_batches": [ + { + "batch_id": "kitchen.batch:00000001", + "facility_id": "facility_00000005", + "inventory_id": "facility.inventory:facility_00000005", + "started_at": 642, + "progress_minutes": 10, + "quality": 55, + "reservation_ids": [ + "reservation_00000003" + ] + } + ], + "prior_service_sales": 0, + "active_services_at_outage": 0, + "active_service_interruption_accepted": false, + "entire_cargo_and_batch_preserved": true, + "zero_facility_power": true, + "completed_before": [ + "supply.logistics_request.000000000001" + ], + "completed_recovered": [ + "supply.logistics_request.000000000001" + ] + } + ], + "exact_whole_cross_PID_outage_continuation": true, + "source_refs_adopted": 0, + "mana_generation_coefficients_set": false, + "natural_depletion_accepted": false, + "active_service_interruption_accepted": false, + "normal_OS_accepted": false, + "Windows_hardware": false, + "all_schema_feature_acceptance": false, + "whole_P06_accepted": false, + "whole_goal_accepted": false + }, + "current_active_service_outage_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-09T10:46:38.784861+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p06-active-service-outage-root-review-r01/review.json", + "bytes": 31076, + "sha256": "45a8f2015a7191629e6fb9842abc242548e1611d55cec009d3e7981f1a82dea0" + }, + "actual_checks": 1906, + "actual_native": 4, + "parse": 303, + "whole_typed_buffers": 28, + "whole_exact_pairs": 14, + "formal_packages": 2, + "formal_members": 8, + "writer_pid": 94777, + "reader_pid": 94866, + "controlled_active_service_boundaries": [ + { + "label": "cafeteria", + "service_id": "service_00000003", + "start_minute": 683, + "stop_end": 693, + "recovery_end": 698, + "completed_minute": 737, + "elapsed_before": 1, + "elapsed_after_stop": 1, + "elapsed_after_recovery": 6, + "duration": 45, + "price": 25, + "guest_ids": [ + "guest-auto-00000022" + ], + "whole_held_reservations": [ + { + "reservation_id": "reservation_00000010", + "stack_id": "stack_00000008", + "owner_inventory_id": "facility.inventory:facility_00000003", + "item_id": "ingredient/basic_meal", + "quantity": 1, + "requester_id": "service_request.000000000003", + "purpose": "facility_service", + "created_at": 680, + "expires_at": 920, + "state": "ACTIVE", + "terminal_at": -1 + } + ], + "payment_entries": [ + { + "transaction_id": "ledger_00000044", + "absolute_minute": 737, + "debit_account": "FACILITY_REVENUE:facility_00000003", + "credit_account": "GUEST_WALLET:guest-auto-00000022", + "amount": 25, + "category": "SERVICE_SALE", + "source_entity_id": "facility_00000003", + "related_transaction_id": "", + "memo_key": "" + }, + { + "transaction_id": "ledger_00000044", + "absolute_minute": 737, + "debit_account": "PLAYER_CASH", + "credit_account": "FACILITY_REVENUE:facility_00000003", + "amount": 25, + "category": "SERVICE_CASH_SWEEP", + "source_entity_id": "facility_00000003", + "related_transaction_id": "", + "memo_key": "" + } + ], + "paused_service_whole_equal": true + }, + { + "label": "standard_room", + "service_id": "service_00000001", + "start_minute": 739, + "stop_end": 749, + "recovery_end": 754, + "completed_minute": 1396, + "elapsed_before": 73, + "elapsed_after_stop": 73, + "elapsed_after_recovery": 78, + "duration": 720, + "price": 120, + "guest_ids": [ + "guest-auto-00000019" + ], + "whole_held_reservations": [], + "payment_entries": [ + { + "transaction_id": "ledger_00000128", + "absolute_minute": 1396, + "debit_account": "FACILITY_REVENUE:facility_00000007", + "credit_account": "GUEST_WALLET:guest-auto-00000019", + "amount": 120, + "category": "SERVICE_SALE", + "source_entity_id": "facility_00000007", + "related_transaction_id": "", + "memo_key": "" + }, + { + "transaction_id": "ledger_00000128", + "absolute_minute": 1396, + "debit_account": "PLAYER_CASH", + "credit_account": "FACILITY_REVENUE:facility_00000007", + "amount": 120, + "category": "SERVICE_CASH_SWEEP", + "source_entity_id": "facility_00000007", + "related_transaction_id": "", + "memo_key": "" + } + ], + "paused_service_whole_equal": true + } + ], + "suspension_boundaries": [ + { + "label": "cafeteria", + "service_id": "service_00000003", + "facility_suspension_retained": true, + "facility_state": "BROKEN", + "service_state": "FAILED", + "failure_reason": "BROKEN", + "elapsed_unchanged": true, + "no_payment": true, + "reservations_released": true, + "guests_preserved_crosslink_cleared": true, + "current_bug_hypothesis_disproved": true + }, + { + "label": "standard_room", + "service_id": "service_00000001", + "facility_suspension_retained": true, + "facility_state": "BROKEN", + "service_state": "FAILED", + "failure_reason": "BROKEN", + "elapsed_unchanged": true, + "no_payment": true, + "reservations_released": true, + "guests_preserved_crosslink_cleared": true, + "current_bug_hypothesis_disproved": true + } + ], + "rejected_QA_preserved": [ + { + "revision": "r01", + "accepted": false, + "execution_sha256": "295c30987bd9b329e20f64eb8d4497c2d21d84da7903411a7ac93e4771881fb9", + "native_log_sha256": "d315433be73ea46693f1039dd7aefb33a337d9fb8e38476ea233514ebc30d8f0", + "actual_native": 3, + "wrong_QA_expectation": true, + "invalid_ledger_property": true, + "engines_ended": true + }, + { + "revision": "r02", + "accepted": false, + "execution_sha256": "a2c843143e0336edd357fe443a5cc2b75e9e251d9b21979e3599f84b7225ed3f", + "native_log_sha256": "09b640becfc3a8869be4dfc8da7e498a6736f514c009f52e0b1aaaa355f1a151", + "actual_native": 3, + "wrong_QA_expectation": true, + "invalid_ledger_property": false, + "engines_ended": true + } + ], + "exact_whole_cross_PID_outage_continuation": true, + "source_refs_adopted": 0, + "mana_generation_coefficients_set": false, + "natural_depletion_accepted": false, + "two_existing_service_stop_recovery_accepted": true, + "normal_OS_accepted": false, + "Windows_hardware": false, + "all_schema_feature_acceptance": false, + "whole_P06_accepted": false, + "whole_goal_accepted": false + } + }, + { + "id": "P07", + "phase": 2, + "title": "天候・流行・環境", + "depends_on": [ + "P04" + ], + "size": "L", + "requirement_ids": [ + "B-2.3", + "B-2.6", + "B-3.2", + "B-3.5", + "B-4.5", + "B-11.1" + ], + "work": "雨/嵐/マナ霧、流行ニュース、ゾーンの採光/遮音/隠蔽、景観/清潔/騒音を段階導入。係数と乱数系列を保存しHUDと予測へ表示。", + "acceptance": "嵐で新規入館0、雨で来客減/滞在延長。天候変化の瞬間と保存再開が一致。環境変更に応じて満足度と対象売上が変わる。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P07-01", + "title": "雨と霧と自然天候", + "work": "雨の来客減・滞在延長、マナ霧、自然変化を実営業へ接続する。", + "acceptance": "天候切替直前後、途中保存、自然来客の差を同条件で説明できる。" + }, + { + "id": "P07-02", + "title": "環境と客反応", + "work": "景観・清潔・騒音、採光・遮音・隠蔽を満足度、客特性、売上へ接続する。", + "acceptance": "異なる環境で実際の選択と満足度が変化し、清潔伝播も保存される。" + }, + { + "id": "P07-03", + "title": "流行ニュースと可視化", + "work": "流行の効果、期限、通知、将来需要の説明を通常画面へ出す。", + "acceptance": "通知文と需要変化が一致し、再読込でニュースや効果が重複しない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "evidence": "execution/WEATHER_INTEGRATION.md", + "status": "Runtime11 migration, storm boundary, disk save/retry and native HUD verified; related11 script gate passed after fixture corrections.", + "remaining": [ + "natural weather generation policy", + "rain and fog effects", + "trend news and environmental effects", + "normal gameplay and Windows acceptance" + ], + "cleaning_approved_foundation": { + "evidence": "execution/CLEANING_APPROVED_FOUNDATION.md", + "status": "User approved trial room/policy values; standalone cleanliness model and strict policy validator:47 checks PASS. Runtime/scheduler/UI/save migration remain unconnected; not normal-play completion." + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + } + }, + "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": "P08", + "phase": 3, + "title": "施設寸法・既存配置の整合", + "depends_on": [ + "P03", + "P01" + ], + "size": "M", + "requirement_ids": [ + "B-2.1", + "B-8.1", + "B-10.1", + "B-10.2", + "B-10.3", + "B-10.4", + "B-10.5", + "B-10.6", + "B-10.7" + ], + "work": "上級客室4×1、宿舎2×1、闇市場4×2へ原本準拠。30施設を正規IDで管理し類似施設を代用扱いしない。旧占有・支持・接続の移行を検証。", + "acceptance": "新規建設の寸法/層/地上地下が全30件で一致。旧施設の拡縮で重複・経路断を起こさず、解消不能な移行は元データを保つ。", + "decisions": [ + "D06" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P08-01", + "title": "全30施設の配置条件", + "work": "未定義13件と闇市場を含め、正規ID・寸法・層・地上地下・高層・背面条件を固定する。", + "acceptance": "30件の原本対応と個別建設条件が一致し、類似施設で代用しない。", + "selection_audit": { + "path": "docs/plans/original-completion-2026-10-02/checkpoints/p08-01-feasibility-r01/feasibility.json", + "sha256": "6c360ba3708a2ed9d50ca64a9acd275a960e94a06a281f28cf194195e186bd6f", + "scope": "Pre-selection feasibility only; delivery implementation not started; no original acceptance." + } + }, + { + "id": "P08-02", + "title": "旧配置の安全な変更", + "work": "混合建設、占有変更、役者の実位置、救護・物流・EVをまとめて移行する。", + "acceptance": "重複、孤立、消失がない。解消不能時は元配置とセーブを保つ。" + }, + { + "id": "P08-03", + "title": "配置の通常操作受入", + "work": "通常パレットから支持・接続・不正位置・撤去・再建築を操作する。", + "acceptance": "拒否理由と実判定が一致し、パン・ズーム・保存再開後も同じ位置を扱う。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "evidence": "execution/FACILITY_DIMENSION_MIGRATION.md", + "status": "Migration review/load UI added; native UI13,dashboard136,batch23 checks PASS; P08 remains in progress", + "remaining": [ + "coordinated layout ordering and broader mixed-job acceptance", + "physical actors on removed cells and coordinated task retargeting", + "in-flight elevators and working rescue/logistics acceptance", + "all30 normal building/save acceptance", + "OS pointer and Windows migration UI acceptance" + ], + "current_facility_audit": { + "status": "Live audit: original30 = normal16 + definition-only1 + unmapped13; 17 mapped dimensions/layers match; customer limits unset13. Not full acceptance.", + "evidence": "execution/CURRENT_FACILITY_AUDIT.md", + "all_original_acceptance": false + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "original_room_zones": { + "status": "removed unsupported above-ground-only restriction from standard/premium/staff dormitory; 6 suites and rendered41 PASS", + "evidence": "execution/ORIGINAL_ROOM_ZONES.md", + "all_original_acceptance": false + } + }, + "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": "P09", + "phase": 3, + "title": "施設共通契約と追加10項目", + "depends_on": [ + "P05", + "P06", + "P08" + ], + "size": "L", + "requirement_ids": [ + "B-8.1", + "B-8.2", + "B-8.3", + "B-8.5", + "B-9.2" + ], + "work": "人数専用上限、staff_min/max、3稼働状態、関連施設、サービス属性、価格、施設レベルを統合。全37既存定義を点検し原本30施設の値を台帳化。", + "acceptance": "本番UI→コマンド→Runtime→人数/料金→台帳→保存まで接続。不一致属性でも利用可能。待機者と利用者を混同せず、人数超過/停止中課金/勝手な休止復帰を防ぐ。", + "decisions": [ + "D01", + "D02", + "D03", + "D04", + "D05" + ], + "supplement_ids": [ + "F-01", + "F-02", + "F-03", + "F-04", + "F-05", + "F-06", + "F-07", + "F-08", + "F-09", + "F-10" + ], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P09-01", + "title": "施設10項目の統合", + "work": "人数専用上限とcapacity、職員上限と最低人数、単一関連施設と稼働フラグ、3状態を区別して全定義へ適用する。", + "acceptance": "待機者を利用人数に数えず、関連施設が配置だけで稼働扱いにならず、休止は自動復帰しない。", + "candidate_kitchen_observation": { + "scope": "limited unadopted source/time-bound evidence only", + "r10_narrow278_inherited_game_driver_subset": true, + "r11_focused733_actual": true, + "actual_r11_narrow_rerun": false, + "all_completion_states_unchanged": true, + "updated_at_jst": "2026-10-02T08:28:41.189541+09:00" + } + }, + { + "id": "P09-02", + "title": "欲求一致加算の接続", + "work": "不足基準、料金加算、施設属性の必須未確定値を整理し、確定後に見積から実徴収・台帳までつなぐ。", + "acceptance": "一致時のみ指定加算、不一致でも利用可。財布減額と収入が一致し、アンリ補正との順序と丸めを確認する。" + }, + { + "id": "P09-03", + "title": "施設レベルと営業設定", + "work": "Lv1からLv3の価格、人数、解放条件、営業Policyと説明を接続する。", + "acceptance": "通常操作、利用中変更、人数超過、停止、日跨ぎ、途中保存で契約が一致する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "current_facility_audit": { + "status": "Live audit: original30 = normal16 + definition-only1 + unmapped13; 17 mapped dimensions/layers match; customer limits unset13. Not full acceptance.", + "evidence": "execution/CURRENT_FACILITY_AUDIT.md", + "all_original_acceptance": false + }, + "business_customer_counts": { + "status": "implemented; business72 headless/native and chapel16 passed; original controls in evidence", + "evidence": "execution/BUSINESS_CUSTOMER_COUNTS.md", + "remaining": [ + "customer limit values for unspecified facilities", + "other original facility parameters and end-to-end acceptance" + ] + }, + "cleaning_approved_foundation": { + "evidence": "execution/CLEANING_APPROVED_FOUNDATION.md", + "status": "User approved trial room/policy values; standalone cleanliness model and strict policy validator:47 checks PASS. Runtime/scheduler/UI/save migration remain unconnected; not normal-play completion." + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "original_room_zones": { + "status": "removed unsupported above-ground-only restriction from standard/premium/staff dormitory; 6 suites and rendered41 PASS", + "evidence": "execution/ORIGINAL_ROOM_ZONES.md", + "all_original_acceptance": false + }, + "service_start_slots": { + "status": "Start index separated from customer headcount and fixed before notification callbacks. New25 and related220 checks PASS; rendered two-process opening/restart97 PASS, gameplay equal and source unchanged. Not full140-suite or original acceptance.", + "evidence": "execution/SERVICE_START_SLOTS.md", + "all_original_acceptance": false + } + }, + "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", + "execution_progress": { + "current1277_checkpoint": { + "at_jst": "2026-10-02T22:55:59.434380+09:00", + "source_files": 1277, + "actual_suites": 169, + "actual_checks": 13640, + "native_phases": 171, + "normal_parse": 294, + "Root_raw_files": 4024, + "Root_private_profiles": 341, + "Root_temporal_checkpoints": 344, + "Root_review_conditions": 2470, + "failures": 0, + "root_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-full169-actual-root-review-r01/review.json", + "sha256": "285649838b71c069ce3977c2deddf1fec4cb89fb6b39e95408d93f13582e6a39" + }, + "limited_adoption": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-adoption-root-r01/adoption.json", + "sha256": "cbfca0f31ec172e5fd9fbeeeec0ee1f0431d642c06a3d86a83958ce261ddb6fe" + }, + "post_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-post-adoption-root-review-r01/review.json", + "sha256": "8a94cd96b4a439ab5dfd9381ff3332edfeb5233c5f1e128d081ffea6a76edb4f" + }, + "kitchen": { + "path": "artifacts/original-completion-2026-10-02/p09-kitchen-selected1273-limited-actual-root-review-r03/review.json", + "sha256": "b3a0f669f1d76d792531279b416e9d65c0292434e27153fd302bc0c7af3cfb19" + }, + "notification_log": { + "path": "artifacts/original-completion-2026-10-02/p20-log-limited-native-actual-root-review-r03/review.json", + "sha256": "8eec3a8492aa74f571eb21447c6911cea64d176e0f813152f226b2b4122ba387" + }, + "source_refs": 12, + "outside_refs": 2, + "game_Runtime_Save_project_changed": false, + "strict_kitchen_geometry_narrowly_verified": true, + "all_dining_or_P09_accepted": false, + "notification_natural_OS_accepted": false, + "P20_story_catalog_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + }, + "current_normal_input_checkpoint_2026_10_08": { + "recorded_UTC": "2026-10-07T16:08:47.613712+00:00", + "production_source_files": 1285, + "production_source_mutations": 0, + "full_goal_accepted": false, + "Windows_accepted": false, + "chapel": { + "functional_checks": 1265, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-native-r02-actual-root-review-r01/review.json", + "bytes": 49296, + "sha256": "c21aa3e67a70876b2caf44c69ee921aa60cb4aff16579aaf8d4cf5ca3eb733f0" + }, + "scope_integration": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-current1285-scope-integration-r01.json", + "bytes": 4426, + "sha256": "499a274b1d1dc3ab3f223298bd9b962a474598907cbd7cc9a0a0dc0e237ab2ad" + }, + "whole_A04_accepted": false + }, + "Anri_normal_Input": { + "functional_checks": 882, + "writer_checks": 653, + "reader_checks": 229, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-main-pair-actual-root-review-r01/review.json", + "bytes": 1929, + "sha256": "61b2b995b91426f4c5e07ef6c112febfc960b66e4514827355cf7c957c776564" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-normal-input-source-candidate-r05/input-seal.json", + "bytes": 2126, + "sha256": "56be2cd55ec38467c0f7f8dfe29c984d381752801c9ae1b1283ade7790656dd2" + }, + "typed_IO1_pairs": 5, + "natural_story_join_accepted": false, + "A03_actual_guest_payment_accepted": false, + "production_adoption": false + }, + "Mimi_sale_quote": { + "functional_checks": 63, + "parse_checks": 301, + "native_processes": 3, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-native-r03-actual-root-review.json", + "bytes": 2383, + "sha256": "177f76cd969d08e72ef313722862b3f9581d9a718b158327e173426c98806091" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-source-candidate-r03/input-seal.json", + "bytes": 2217, + "sha256": "3cce6dc1188f01c08a7415b43489f25d552f73bde18da1862fc3de25a2ee5d4d" + }, + "base_price_formula": null, + "production_adoption": false, + "ordinary_sale_UI_accepted": false, + "sale_ledger_accepted": false, + "formal_sale_save_accepted": false + } + }, + "current_public_bath_role_checkpoint": { + "at_jst": "2026-10-08T03:06:54.417175+09:00", + "source_files": 1287, + "adopted_product_refs": 1, + "actual_baseline_checks": 11, + "actual_candidate_checks": 130, + "actual_focused_native": 6, + "actual_full_suites": 170, + "actual_full_checks": 13961, + "actual_full_parse": 299, + "actual_full_native": 172, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-full170-actual-root-review-r01/review.json", + "bytes": 263642, + "sha256": "1c616e22477a8437bc765155a61ecc4c19bbdc07e0e8e2aea2f44c13c3639302" + }, + "actual_focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-actual-root-review-r02/review.json", + "bytes": 3331, + "sha256": "26a03daaa3b005ce9d2fc4a638fa20f65bfe6c39ffba1495bcbd545383f6bbe4" + }, + "actual_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-one-ref-source-adoption-r01/adoption.json", + "bytes": 1723, + "sha256": "ae3b16bd24096b636e1a4ca25945bb6eee846a489656b83141ee9825e619c892" + }, + "Runtime_changed": true, + "SaveService_changed": false, + "formal_schema_changed": false, + "existing_roles_definitions_prices_wages_rewritten": false, + "failed_Main_attempt": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-anri-bath-normal-input-payment-owned-native-r01-2c0b663da012454283208fb0cc505c1e/execution.json", + "bytes": 34839, + "sha256": "4466e69fe0f30b8690b4b18cff6d91fd8e2cfc931e2c9a70893daa0624a880f3" + }, + "Mac_lock_observation": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-normal-Main-Mac-lock-observation-r01.json", + "bytes": 953, + "sha256": "c7a1f3e6aa619f5b0918af658d777c5ae1cbd093b6fa1d5d83a67860534087df" + }, + "Main_actual_payment_accepted": false, + "formal_cross_PID_accepted": false, + "mandatory_staff_min_max_D02_confirmed": false, + "two_atom_facet_candidate": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-public-bath-two-atomic-facet-candidate-r02/candidate.json", + "bytes": 8585, + "sha256": "a11e20ef6153c1c4ac98eeccbe6332a29e7b71aee9ee2171426a0330a94c3bfb" + }, + "canonical_atoms_completed_added": 0, + "all_finished_assets_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_paid_role_compatibility_checkpoint": { + "at_jst": "2026-10-08T03:41:36.737061+09:00", + "source_files": 1287, + "adopted_product_refs": 1, + "actual_baseline_checks": 18, + "actual_candidate_checks": 26, + "actual_focused_native": 6, + "actual_full_suites": 170, + "actual_full_checks": 13961, + "actual_full_parse": 299, + "actual_full_native": 172, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-full170-actual-root-review-r01/review.json", + "bytes": 263718, + "sha256": "661f60774e621fd925ccc632958e5402b99442a10431eddf7186b0465f96e3c4" + }, + "actual_focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-actual-root-review-r01/review.json", + "bytes": 2665, + "sha256": "d8c1e08088f27a4c09f37e12f259c0ee0c84a2fa58fdfddafcfe4e0004964d4c" + }, + "actual_source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-one-ref-source-adoption-r01/adoption.json", + "bytes": 1702, + "sha256": "a77e13f6910206aafbc028237de0a593b06c8efc8f2dc0920ac6b0236e97305b" + }, + "whole_goal_accepted": false, + "normal_Main_accepted": false, + "formal_cross_PID_accepted": false, + "native_Windows_accepted": false, + "all_facility_fields_accepted": false, + "role_ids_definitions_prices_wages_schema_unchanged": true, + "snapshot_scope": "GDScript whole dictionary equality; not raw pre/post typed equality or formal migration", + "remaining_paid_role": "adult_private_room/service_attendant has no canonical paid hire candidate" + } + }, + { + "id": "P10", + "phase": 3, + "title": "宿泊・飲食施設の完成", + "depends_on": [ + "P09" + ], + "size": "L", + "requirement_ids": [ + "B-8.2", + "B-10.1", + "B-10.2" + ], + "work": "一般/上級/VIP/ドミトリー、食堂/レストラン/酒場/屋台を建設・厨房・在庫・従業員・客AI・UIへ接続。高層/景観要件と厨房依存を含む。", + "acceptance": "各施設を通常パレットから建設して一営業日利用し、必要条件喪失と再開、売上、人数上限、保存を検証。", + "decisions": [ + "D04" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P10-01", + "title": "宿泊4種類の完了", + "work": "VIPスイートとドミトリーを追加し、一般・上級を含む宿泊条件、精算、景観、人数をそろえる。", + "acceptance": "4種類を通常建設し自然客が利用、前払い・退店・停止・保存を検証する。" + }, + { + "id": "P10-02", + "title": "飲食4種類の完了", + "work": "レストラン、屋台を追加し、食堂、酒場と厨房、食材、職種、物流を統合する。", + "acceptance": "厨房の稼働喪失・在庫不足・届く前の利用拒否・営業収支を確認する。" + }, + { + "id": "P10-03", + "title": "営業と中期収支", + "work": "通常初期資金で新設施設を運用し、複数シードと序盤・中盤の需要で試す。", + "acceptance": "施設別売上と費用、依存、人数、移動、保存が一致する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "evidence": "execution/PREMIUM_ROOM_INTEGRATION.md", + "status": "Premium natural opening day via synthesized GUI input:440G lodging, midnight close, UI save/load, next30minute exact replay; opening guide now recognizes all FRONT lodging. Native36 and standard opening48 checks PASS; final headless36 checks including construction guide PASS; make check exit0.", + "remaining": [ + "OS pointer and Windows same-build acceptance", + "other original lodging and dining facilities", + "broader arrival seeds, full-day outages and long-term balance" + ], + "distribution_evidence": "execution/ORIGINAL_FACILITIES_EXPORT.md", + "original_room_zones": { + "status": "removed unsupported above-ground-only restriction from standard/premium/staff dormitory; 6 suites and rendered41 PASS", + "evidence": "execution/ORIGINAL_ROOM_ZONES.md", + "all_original_acceptance": false + } + }, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "Windows部分実機確認。不可なら未検証を残す", + "初期/中盤/終盤に対応するプレイ試行で収支・操作・到達性を確認" + ], + "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": "P11", + "phase": 3, + "title": "衛生・娯楽・礼拝施設", + "depends_on": [ + "P09", + "P07" + ], + "size": "L", + "requirement_ids": [ + "B-8.2", + "B-10.3" + ], + "work": "浴場/カジノ/闘技場/礼拝堂の役割、利用、収支、職種、信仰への接続を実装。機能ごとの通常UIを用意。", + "acceptance": "4施設が定義だけでなく通常営業できる。礼拝の信仰をランク条件へ接続し、停止・退店・精算を再現。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P11-01", + "title": "娯楽2施設の営業", + "work": "カジノと闘技場の定義、従業員、利用、会計、解放、設定を接続する。", + "acceptance": "通常建設から利用、収益、退出、停止、保存再開まで成立する。" + }, + { + "id": "P11-02", + "title": "浴場と礼拝の統合", + "work": "浴場と承認済み礼拝堂を人数・清潔・職種・信仰・ランクへ接続する。", + "acceptance": "寄付、信仰、人物補正、営業停止が一回だけ反映される。" + }, + { + "id": "P11-03", + "title": "4施設の境界受入", + "work": "同時利用限界、職員離席、停電、破壊、関連条件喪失を試す。", + "acceptance": "表示された稼働理由・利用可否と実状態が一致する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "chapel_service_boundary": { + "status": "Normal catalog, cleric hire, assignment, autonomous worship, payment/Faith and UI connected; broader acceptance pending", + "evidence": "execution/CHAPEL_APPROVED_INTEGRATION.md", + "remaining": [ + "long-term economic balance", + "final chapel art", + "Windows" + ] + }, + "chapel_normal_gameplay": { + "status": "Native17 checks passed; pre-final UI suite and catalog/content regression passed", + "evidence": "execution/CHAPEL_APPROVED_INTEGRATION.md" + }, + "chapel_capacity_and_two_day": { + "status": "Capacity8/queue, real cleric unassignment, no reward on interruption/failure, exact save/replay, two-day normal arrival and maintenance settlement verified", + "checks": 46, + "evidence": "execution/CHAPEL_APPROVED_INTEGRATION.md" + }, + "catalog_lookup": { + "status": "Fixed chapel lookup omission; normal catalog query coverage310 checks PASS", + "evidence": "execution/CHAPEL_FULL_REGRESSION.md" + }, + "amelia_donations": { + "status": "Placement-based triple chapel donation connected to quotes, actual payment, ledger and UI; native39 and related136 checks PASS; normal recruitment and healing remain", + "evidence": "execution/AMELIA_DONATIONS.md", + "all_original_acceptance": false + } + }, + "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", + "current_public_bath_role_checkpoint": { + "at_jst": "2026-10-08T03:06:54.417175+09:00", + "source_files": 1287, + "adopted_product_refs": 1, + "actual_baseline_checks": 11, + "actual_candidate_checks": 130, + "actual_focused_native": 6, + "actual_full_suites": 170, + "actual_full_checks": 13961, + "actual_full_parse": 299, + "actual_full_native": 172, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-full170-actual-root-review-r01/review.json", + "bytes": 263642, + "sha256": "1c616e22477a8437bc765155a61ecc4c19bbdc07e0e8e2aea2f44c13c3639302" + }, + "actual_focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-actual-root-review-r02/review.json", + "bytes": 3331, + "sha256": "26a03daaa3b005ce9d2fc4a638fa20f65bfe6c39ffba1495bcbd545383f6bbe4" + }, + "actual_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-public-bath-role-one-ref-source-adoption-r01/adoption.json", + "bytes": 1723, + "sha256": "ae3b16bd24096b636e1a4ca25945bb6eee846a489656b83141ee9825e619c892" + }, + "Runtime_changed": true, + "SaveService_changed": false, + "formal_schema_changed": false, + "existing_roles_definitions_prices_wages_rewritten": false, + "failed_Main_attempt": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-anri-bath-normal-input-payment-owned-native-r01-2c0b663da012454283208fb0cc505c1e/execution.json", + "bytes": 34839, + "sha256": "4466e69fe0f30b8690b4b18cff6d91fd8e2cfc931e2c9a70893daa0624a880f3" + }, + "Mac_lock_observation": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-normal-Main-Mac-lock-observation-r01.json", + "bytes": 953, + "sha256": "c7a1f3e6aa619f5b0918af658d777c5ae1cbd093b6fa1d5d83a67860534087df" + }, + "Main_actual_payment_accepted": false, + "formal_cross_PID_accepted": false, + "mandatory_staff_min_max_D02_confirmed": false, + "two_atom_facet_candidate": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-public-bath-two-atomic-facet-candidate-r02/candidate.json", + "bytes": 8585, + "sha256": "a11e20ef6153c1c4ac98eeccbe6332a29e7b71aee9ee2171426a0330a94c3bfb" + }, + "canonical_atoms_completed_added": 0, + "all_finished_assets_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_paid_role_compatibility_checkpoint": { + "at_jst": "2026-10-08T03:41:36.737061+09:00", + "source_files": 1287, + "adopted_product_refs": 1, + "actual_baseline_checks": 18, + "actual_candidate_checks": 26, + "actual_focused_native": 6, + "actual_full_suites": 170, + "actual_full_checks": 13961, + "actual_full_parse": 299, + "actual_full_native": 172, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-full170-actual-root-review-r01/review.json", + "bytes": 263718, + "sha256": "661f60774e621fd925ccc632958e5402b99442a10431eddf7186b0465f96e3c4" + }, + "actual_focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-actual-root-review-r01/review.json", + "bytes": 2665, + "sha256": "d8c1e08088f27a4c09f37e12f259c0ee0c84a2fa58fdfddafcfe4e0004964d4c" + }, + "actual_source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-one-ref-source-adoption-r01/adoption.json", + "bytes": 1702, + "sha256": "a77e13f6910206aafbc028237de0a593b06c8efc8f2dc0920ac6b0236e97305b" + }, + "whole_goal_accepted": false, + "normal_Main_accepted": false, + "formal_cross_PID_accepted": false, + "native_Windows_accepted": false, + "all_facility_fields_accepted": false, + "role_ids_definitions_prices_wages_schema_unchanged": true, + "snapshot_scope": "GDScript whole dictionary equality; not raw pre/post typed equality or formal migration", + "remaining_paid_role": "adult_private_room/service_attendant has no canonical paid hire candidate" + }, + "current_paid_role_formal_cross_pid_checkpoint": { + "at_jst": "2026-10-08T04:45:00.044556+09:00", + "source_files": 1287, + "source_mutations": 0, + "actual_writer_checks": 126, + "actual_reader_checks": 110, + "actual_checks": 236, + "actual_parse_checks": 299, + "actual_native_phases": 4, + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p11-paid-role-formal-cross-pid-actual-root-review-r03/review.json", + "bytes": 5834, + "sha256": "48bf34aee233c1751b8b8edfbe5f33759330b1147ce5828b9a6e2307a1bc3ade" + }, + "formal_packages": 4, + "formal_files": 16, + "whole_typed_pairs": 16, + "whole_typed_buffers": 24, + "Runtime_typed_normalizations": 0, + "all16_writer_transport_reader_user_formal_members_identical": true, + "normal_Main_OS_input_accepted": false, + "old_formal_migration_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + } + }, + { + "id": "P12", + "phase": 3, + "title": "バックヤード施設完成", + "depends_on": [ + "P09" + ], + "size": "L", + "requirement_ids": [ + "B-2.4", + "B-5.3", + "B-5.4", + "B-8.3", + "B-10.5", + "B-3.3" + ], + "work": "宿舎・清掃員室を追加し厨房/倉庫/待機/警備/医務を統一契約へ移行。リネンシュート・隠し扉の動線も個別に追跡する。", + "acceptance": "7施設と追加設備の職員行動、客の侵入禁止、在庫/清掃/休息/救護を通常プレイで検証。重複救護と孤立物資が残らない。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P12-01", + "title": "裏方7施設の完成", + "work": "厨房・倉庫・待機・宿舎・清掃・警備・医務の配置、職種、仕事、停止をそろえる。", + "acceptance": "客侵入を防ぎ、実出勤から実作業・休息・帰宅まで成立する。" + }, + { + "id": "P12-02", + "title": "専用動線と設備", + "work": "リネンシュート、隠し扉、従業員ドアを物流、清掃、救護経路へ接続する。", + "acceptance": "孤立入口、経路喪失、交代、撤去で人員・物資・救護対象が消えない。" + }, + { + "id": "P12-03", + "title": "全シフトの運用", + "work": "昼夜の交代、休息、清掃、配送、救護が重なる通常一日を操作する。", + "acceptance": "人数と予約が上限内で、停止・保存再開を跨いでも重複業務がない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "evidence": "execution/STAFF_DORMITORY_INTEGRATION.md", + "status": "Dormitory normal registration/palette plus physical staff access/rest/outage/restore;18 focused checks PASS", + "remaining": [ + "ordinary full shift/rest-day and physical UI construction acceptance", + "staff/transport-safe legacy migration", + "remaining backyard facilities and special equipment", + "Windows native acceptance" + ], + "distribution_evidence": "execution/ORIGINAL_FACILITIES_EXPORT.md", + "shift_cycle_status": "16 checks PASS: ordinary repeating NIGHT shift, natural06:00 end, dormitory rest via physical stairs, exact60-minute checkpoint replay, next18:00 return. One seed/worker; UI/Windows and other shift scenarios remain.", + "cleaning_approved_foundation": { + "evidence": "execution/CLEANING_APPROVED_FOUNDATION.md", + "status": "User approved trial room/policy values; standalone cleanliness model and strict policy validator:47 checks PASS. Runtime/scheduler/UI/save migration remain unconnected; not normal-play completion." + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "cleaning_access_followup": { + "evidence": "execution/CLEANING_ACCESS_FOLLOWUP.md", + "status": "Alternate accessible destinations and wait/reconnect behavior implemented; cleaning-room UI corrected. Six targeted suites PASS; broad regression59503 remains active and spans this source change." + }, + "original_room_zones": { + "status": "removed unsupported above-ground-only restriction from standard/premium/staff dormitory; 6 suites and rendered41 PASS", + "evidence": "execution/ORIGINAL_ROOM_ZONES.md", + "all_original_acceptance": false + }, + "fine_cleaning_effect": { + "status": "triple work rate and single-owner cleaning progression implemented; six related suites PASS; normal recruitment pending user values", + "evidence": "execution/FINE_CLEANING_EFFECT.md", + "all_original_acceptance": false + } + }, + "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": "P13", + "phase": 3, + "title": "特殊・地下施設の非描写システム接続", + "depends_on": [ + "P09", + "P12" + ], + "size": "L", + "requirement_ids": [ + "B-1.6", + "B-2.5", + "B-8.2", + "B-8.3", + "B-10.4", + "B-10.6" + ], + "work": "原本にある地下/特殊施設の配置、アクセス制御、役割、会計、イベント状態を接続。覗き部屋は対象施設背面と裏通路寸断、地下牢/マナ炉は明示状態遷移として追跡。表現資産は別工程。", + "acceptance": "特殊条件が建設時と運用時の両方で効く。無効配置や失われた対象への操作を拒否。イベント状態を保存でき、実装範囲と未制作内容を分けて報告。", + "decisions": [ + "D04", + "D05", + "D08" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P13-01", + "title": "特殊施設とアクセス", + "work": "原本の特殊・地下施設を配置、職員アクセス、役割、会計の非描写状態として接続する。", + "acceptance": "特殊条件の建設時・運用時判定が一致し、無効配置が通らない。" + }, + { + "id": "P13-02", + "title": "背面条件と対象参照", + "work": "覗き部屋の対象背面、通路寸断、対象喪失と証拠IDを状態として実装する。", + "acceptance": "対象撤去、重複収集、停止、途中保存で状態と参照が整合する。", + "worker_model": "gpt-6-astra", + "model_selected_by_actual_opus": "19f00667226d42dd8e9b3a4ae99aaa68", + "backend_batch_state": "completed" + }, + { + "id": "P13-03", + "title": "内容差異の記録", + "work": "地下牢、マナ炉等のイベント接続と未制作の表現資産を別に管理する。", + "acceptance": "状態処理の完成を内容制作の完成として加点しない。" + } + ], + "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" + }, + { + "id": "P14", + "phase": 3, + "title": "垂直交通・ワープ完成", + "depends_on": [ + "P06", + "P09" + ], + "size": "L", + "requirement_ids": [ + "B-2.4", + "B-4.3a", + "B-4.3b", + "B-4.3c", + "B-8.4", + "B-10.7" + ], + "work": "客/業務EV、階段にマナワープと費用を追加。待ち時間の経路費用、容量、職員アクセス、停止時退避を統一。魔法砲台はP21で接続。", + "acceptance": "全交通を通常建設し経路選択・実移動を検証。待ち時間増で別経路を選択。ワープ中/EV中保存、マナ不足、救護同伴時の人数を検証。", + "decisions": [ + "D04", + "D05" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P14-01", + "title": "交通の失敗時契約", + "work": "不正transitキーでsnapshot全体を拒否する修正と不完全Pathの保存拒否を採用済み。現1299版の既存最終証拠を独立レビューし、全条件が揃った後に正式受入を反映する。", + "acceptance": "部分成功を返さず、正常順序・型・所有権・保存・経路が基準と一致する。" + }, + { + "id": "P14-02", + "title": "ワープの通常接続", + "work": "マナワープの建設、対象、待ち時間、消費、停止、実移動を接続する。", + "acceptance": "途中保存、マナ不足、到着不能時に移動や費用が二重反映されない。" + }, + { + "id": "P14-03", + "title": "混雑と経路選択", + "work": "客用・業務用EV、階段、ワープの待ち時間をA*費用へ反映する。", + "acceptance": "ラッシュ、相乗り、50%減速、救護同伴、経路喪失を実位置と人数で検証する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "cleaning_access_followup": { + "evidence": "execution/CLEANING_ACCESS_FOLLOWUP.md", + "status": "Alternate accessible destinations and wait/reconnect behavior implemented; cleaning-room UI corrected. Six targeted suites PASS; broad regression59503 remains active and spans this source change." + } + }, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "既存代表負荷の性能回帰を計測", + "Windows部分実機確認。不可なら未検証を残す" + ], + "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": "P15", + "phase": 4, + "title": "客の全パラメータ・時間帯AI", + "depends_on": [ + "P07", + "P10", + "P11", + "P14", + "P13" + ], + "size": "L", + "requirement_ids": [ + "B-3.2", + "B-4.1", + "B-4.2", + "B-4.4", + "B-4.5", + "B-9.4" + ], + "work": "戦利品、清潔度と汚染伝播、クラス/種族反応、朝夕の移動目的、依存と信用限度の非描写状態処理を追加。最大欲求選択を維持。", + "acceptance": "一般/貴族/聖職者/エルフ/魔族等で期待行動を再現。朝下り/夕上りの目的地分布、清潔伝播、装備処分・破産状態を保存再開まで検証。", + "decisions": [ + "D04", + "D05", + "D08" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P15-01", + "title": "時間帯と欲求", + "work": "朝の下り、夕の上り、夜の目的地を四欲求、距離、行列、価格へ接続する。", + "acceptance": "最大欲求を維持し、日付・天候・施設変化で目的地分布が説明できる。" + }, + { + "id": "P15-02", + "title": "種族と環境", + "work": "クラス・種族、忍耐、清潔、汚染伝播、戦利品を実来客モデルへ接続する。", + "acceptance": "原本の客種ごとに反応が異なり、再読込で属性が再抽選されない。" + }, + { + "id": "P15-03", + "title": "依存と信用の状態", + "work": "依存、装備処分、信用超過、退店判断、破産を非描写状態として処理する。", + "acceptance": "金額と所持品を保全し、途中中断・再送・保存でも一回だけ遷移する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "guest_decision_history": { + "status": "Actual completed guest choices recorded in bounded saved event history and exposed through normal HUD. New headless20/rendered21 PASS; existing observer22, GuestService137, runtime cycle40 PASS; rendered operating restart97 PASS. Not full thought-history or original acceptance.", + "evidence": "execution/GUEST_DECISION_LOG.md", + "all_original_acceptance": false + }, + "guest_candidate_rejections": { + "status": "Actual rejection reason counts and up to8 facility examples retained in saved decision event; includes missing supplies without unnecessary path queries. Headless28/rendered29, related241, rendered restart97 checks PASS. Not whole-original acceptance.", + "evidence": "execution/GUEST_REJECTION_LOG.md", + "all_original_acceptance": false + } + }, + "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": "P16", + "phase": 4, + "title": "雇用・職種・労務完成", + "depends_on": [ + "P12", + "P15", + "P13" + ], + "size": "L", + "requirement_ids": [ + "B-5.1", + "B-5.2", + "B-5.3", + "B-5.4", + "B-5.5", + "B-3.3" + ], + "work": "雇用区分別費用、全職種業務、生成時特性、獲得/退職/処分の非描写状態処理を整理。乱数特性は生成時に固定しセーブへ保存。", + "acceptance": "求人から配置・業務・休息・精算・退職まで通常UIで通る。費用/忠誠/特性効果の変化が可視化され、ロードで特性が再抽選されない。", + "decisions": [ + "D04", + "D05", + "D08" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P16-01", + "title": "獲得と費用の区分", + "work": "求人、市場、原本の雇用区分ごとの費用と獲得・退職を非描写状態として整理する。", + "acceptance": "求人から配置・精算・退職まで通常操作でき、ユニーク禁止操作を維持する。" + }, + { + "id": "P16-02", + "title": "特性と全職種", + "work": "生成時特性、体力、ストレス、忠誠、技能と全職種の仕事を接続する。", + "acceptance": "同一保存で特性が固定され、配置しても仕事内容がない職種を残さない。" + }, + { + "id": "P16-03", + "title": "労務と交代", + "work": "勤務、休息、給与、気絶、救護、退職時参照除去を横断検証する。", + "acceptance": "人員上限、未払い、交代中の予約・移動が整合し、消失や二重精算がない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "cleaning_approved_foundation": { + "evidence": "execution/CLEANING_APPROVED_FOUNDATION.md", + "status": "User approved trial room/policy values; standalone cleanliness model and strict policy validator:47 checks PASS. Runtime/scheduler/UI/save migration remain unconnected; not normal-play completion." + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "staff_task_clock": { + "status": "Removed redundant rejected per-tick progress calls; normal task time unchanged; 6 suites / 574 checks PASS", + "evidence": "execution/STAFF_TASK_CLOCK.md", + "all_original_acceptance": false + } + }, + "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": "P17", + "phase": 4, + "title": "ユニーク7名・固有効果・成長", + "depends_on": [ + "P16", + "P05", + "P11" + ], + "size": "L", + "requirement_ids": [ + "B-1.5", + "B-6.1", + "B-6.2", + "B-6.3", + "B-6.4", + "B-6.5" + ], + "work": "7ヒロインと指定ライバル、無料/削除禁止、業務EXP/Lv99、固有パッシブを実装。アンリの配置階売上+20%など原本の明示数値を優先。衣装/超過勤務/離脱を状態として接続。 ヒロイン7名とライバルを別集合で集計する。", + "acceptance": "7名全員で固有効果の適用前後、配置変更/同時配置、99上限、削除禁止を試験。24時間警告から継続/中止ができ、保存復元で効果を重複適用しない。", + "decisions": [ + "D04", + "D07", + "D08" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P17-01", + "title": "7名の加入と固有効果", + "work": "アンリ、フィーネ、トマリ、アメリア、リズ、ミミ、サツキとライバルを区別し、加入と固有効果を通常営業へ接続する。", + "acceptance": "7名それぞれ配置前後・同時配置・配置変更の効果を確認し、無料・削除禁止を維持する。" + }, + { + "id": "P17-02", + "title": "業務成長と技能", + "work": "実業務EXP、Lv99、基礎技能、パッシブ、能動スキル、ルート別解放を接続する。", + "acceptance": "上限と取得条件、財布や台帳への補正、保存再開で効果が一致する。" + }, + { + "id": "P17-03", + "title": "衣装と勤務と離脱", + "work": "24時間警告、継続・中止、衣装補正、限定的離脱と復帰を通常UIへ接続する。", + "acceptance": "警告を操作でき、原本外の恒久ロストを起こさず、未設定加入条件は捏造しない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "anri_original_effect": { + "status": "Definition correction followed by implemented recruitment, placement and floor pricing; see subsequent evidence", + "evidence": "execution/ANRI_ORIGINAL_EFFECT.md", + "remaining": [ + "all seven characters", + "broader gameplay acceptance and Windows" + ] + }, + "unique_employment_protection": { + "status": "Implemented service non-removal and zero new wages; full unique gameplay incomplete", + "evidence": "execution/UNIQUE_EMPLOYMENT_PROTECTION.md", + "checks": [ + 209, + 87, + 59 + ] + }, + "unique_runtime_protection": { + "checks": 116, + "evidence": "execution/UNIQUE_EMPLOYMENT_PROTECTION.md" + }, + "anri_user_decisions": { + "recruitment": "Player selects free recruitment in staff UI", + "revenue": "Increase guest price by 20 percent; wallet debit equals facility revenue", + "evidence": "execution/ANRI_APPROVED_INTEGRATION.md", + "implemented": true, + "implementation_status": "Free UI recruitment and approved floor pricing implemented; broader acceptance pending" + }, + "anri_recruitment": { + "status": "Implemented staff-screen free recruitment and save/load", + "evidence": "execution/ANRI_RECRUITMENT.md", + "remaining": [ + "all seven characters and broader P17", + "Windows" + ] + }, + "anri_floor_pricing": { + "status": "Implemented placement, pricing, UI and targeted payment/save tests", + "evidence": "execution/ANRI_FLOOR_PRICING.md", + "remaining": [ + "random arrival through departure acceptance", + "additional shift/placement boundaries", + "other six heroines", + "full P17 and Windows" + ] + }, + "anri_autonomous_guest_flow": { + "status": "Controlled guest spawn followed by autonomous selection, stairs, lodging and equal payment/revenue verified; movement save replay exact", + "checks": { + "runtime": 36, + "recruitment_ui_headless": 17 + }, + "evidence": "execution/ANRI_FLOOR_PRICING.md" + }, + "anri_placement_boundaries": { + "status": "Cross-floor DAY to NIGHT transfer, invalid zero-capacity target, demolition guard and repeated save restore verified", + "runtime_checks": 48, + "evidence": "execution/ANRI_FLOOR_PRICING.md" + }, + "anri_integrated_ui_regression": { + "status": "make test-ui passed, source hashes stable; full original acceptance remains incomplete", + "evidence": "execution/ANRI_INTEGRATED_UI_REGRESSION.md", + "direct_script_checks": 992 + }, + "anri_opening_guide_role": { + "status": "Fixed guide counting manager as receptionist; regression reproduced before fix and targeted UI passes", + "evidence": "execution/ANRI_OPENING_GUIDE_ROLE.md" + }, + "fine_cleaning_effect": { + "status": "triple work rate and single-owner cleaning progression implemented; six related suites PASS; normal recruitment pending user values", + "evidence": "execution/FINE_CLEANING_EFFECT.md", + "all_original_acceptance": false + }, + "amelia_donations": { + "status": "Placement-based triple chapel donation connected to quotes, actual payment, ledger and UI; native39 and related136 checks PASS; normal recruitment and healing remain", + "evidence": "execution/AMELIA_DONATIONS.md", + "all_original_acceptance": false + } + }, + "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", + "execution_progress": { + "current1277_checkpoint": { + "source_review": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-placement-source-root-review-r04/review.json", + "sha256": "84c9c63c0eb292954c6fa506675a431cebd3c10872bae974d44d03ab71bcb755" + }, + "native_checks": null, + "production_adopted": false, + "original_placement_condition_corrected_in_candidate": true, + "natural_join_accepted": false, + "sale20pct_implemented": false + }, + "current1285_candidate_checkpoint": { + "at_jst": "2026-10-07T23:54:31.996054+09:00", + "production_source_files_at_document_update": 1277, + "candidate_source_files": 1285, + "actual_suites": 170, + "actual_checks": 13961, + "native_phases": 172, + "failures": 0, + "execution": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/execution.json", + "sha256": "a91805ea5075ad097ae48c63cdd1a0c662e80410292f24f1a3e429acaa5fa9b7" + }, + "verification": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/standard/verification.json", + "sha256": "1d2befd4b9a997960b9bc7731508d9e0f67c71eb9f7b6162e621e6343422e823" + }, + "Root_full_proof_acceptance": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-actual-full-proof-acceptance-r01.json", + "sha256": "3b5cbf125b0ad62f98e8a9414385673ee1933d7d822276b9f6b663fa289f53c0" + }, + "UI_functional_checks": 203, + "UI_parse_checks": 300, + "source_refs_planned": 18, + "outside_refs_planned": 1, + "total_refs_planned": 19, + "factual_bindings": { + "full_preparation_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-combined170-rank-full19-native-successor-prep-r01/input-seal.json", + "sha256": "6f852649c58f35c8b650d9e5074149cb92c8d09c1e4a3d1527ca79526f9de877" + }, + "full_actual_seal": { + "path": "artifacts/original-completion-2026-10-02/p17-mimi-main-save-pointer-rank-combined170-native-root-r07-d1ca99466ded424ead65819f6e6300cd/actual-input-seal.json", + "sha256": "916e539d1d4508ee44c1d93267c6dbd0096df052d19fd0889ba21a1320ad85d7" + }, + "full_Root_review": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-literal-actual-admission-r01/review.json", + "sha256": "4d1b2a55068b55077c17ed6a2f96ecb1f0aa5f9f0712522a1ee38afbe34829d6" + }, + "full_peer_review": { + "path": "artifacts/original-completion-2026-10-02/p17-full19-r07-literal-actual-independent-admission-r01/review.json", + "sha256": "416f139a46e8df42306a9874c5f1ba51abc689abcd46d6309b9b73f5c8eeb6af" + }, + "source_targets": 18, + "outside_targets": 1, + "total_targets": 19 + }, + "actual_source_adoption": false, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + }, + "current1285_adopted_checkpoint": { + "at_jst": "2026-10-08T00:01:03.922197+09:00", + "actual_source_adoption": true, + "production_source_files": 1285, + "source_refs_adopted": 18, + "outside_refs_adopted": 1, + "total_refs_adopted": 19, + "adoption": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/adoption.json", + "sha256": "f6ac9e3753fdf0df5966d34b50e1f51eb24ac0c3814911c1a51d6b9ff418397d" + }, + "source_after": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/source-after.json", + "sha256": "066c474908fa8840f4ed6b615d48d92245690d03b8445b113e20c7551d86e5b7" + }, + "public_runner_preparation": { + "path": "artifacts/original-completion-2026-10-02/root-full19-r07-limited19-source-adoption-r01/canonical170-prepare-after-adoption.json", + "sha256": "5c099c7abfa46182eb9282fcf9dee8847c7e93c04c1f58bf7ae0ac1ec0e0f520" + }, + "actual_suites": 170, + "actual_checks": 13961, + "actual_native_phases": 172, + "failures": 0, + "rollback_attempted": false, + "source_byte_map_equal_to_actual_tested_map": true, + "human_OS_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + }, + "current_normal_input_checkpoint_2026_10_08": { + "recorded_UTC": "2026-10-07T16:08:47.613712+00:00", + "production_source_files": 1285, + "production_source_mutations": 0, + "full_goal_accepted": false, + "Windows_accepted": false, + "chapel": { + "functional_checks": 1265, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-native-r02-actual-root-review-r01/review.json", + "bytes": 49296, + "sha256": "c21aa3e67a70876b2caf44c69ee921aa60cb4aff16579aaf8d4cf5ca3eb733f0" + }, + "scope_integration": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p09-chapel-source03-current1285-scope-integration-r01.json", + "bytes": 4426, + "sha256": "499a274b1d1dc3ab3f223298bd9b962a474598907cbd7cc9a0a0dc0e237ab2ad" + }, + "whole_A04_accepted": false + }, + "Anri_normal_Input": { + "functional_checks": 882, + "writer_checks": 653, + "reader_checks": 229, + "parse_checks": 300, + "native_processes": 4, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-main-pair-actual-root-review-r01/review.json", + "bytes": 1929, + "sha256": "61b2b995b91426f4c5e07ef6c112febfc960b66e4514827355cf7c957c776564" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-anri-normal-input-source-candidate-r05/input-seal.json", + "bytes": 2126, + "sha256": "56be2cd55ec38467c0f7f8dfe29c984d381752801c9ae1b1283ade7790656dd2" + }, + "typed_IO1_pairs": 5, + "natural_story_join_accepted": false, + "A03_actual_guest_payment_accepted": false, + "production_adoption": false + }, + "Mimi_sale_quote": { + "functional_checks": 63, + "parse_checks": 301, + "native_processes": 3, + "review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-native-r03-actual-root-review.json", + "bytes": 2383, + "sha256": "177f76cd969d08e72ef313722862b3f9581d9a718b158327e173426c98806091" + }, + "candidate_source_seal": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p17-mimi-sale-quote-source-candidate-r03/input-seal.json", + "bytes": 2217, + "sha256": "3cce6dc1188f01c08a7415b43489f25d552f73bde18da1862fc3de25a2ee5d4d" + }, + "base_price_formula": null, + "production_adoption": false, + "ordinary_sale_UI_accepted": false, + "sale_ledger_accepted": false, + "formal_sale_save_accepted": false + } + }, + "current_tomari_floor_trouble_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T10:28:34.949244+09:00", + "source_files": 1297, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p17-tomari-five-ref-source-adoption-r01/source-after.json", + "bytes": 152382, + "sha256": "fd623fc18445c869c7bbacdd75b9965b08e97660e79f6fa94ef4bed107befc72" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p17-tomari-five-ref-source-adoption-r01/adoption.json", + "bytes": 2026, + "sha256": "79dc9b33745a9bf3fb118d779911ff054e095234833d0ce9a702c0cb4068f3bf" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p17-tomari-full172-actual-root-review-r01/review.json", + "bytes": 271195, + "sha256": "2c97d53248e72473f785752e94c5f5c0d68277516c2de75b6387b5ea6f3ea10e" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 302, + "full_native": 174, + "focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p17-tomari-floor-trouble-focused-actual-root-review-r07/review.json", + "bytes": 1367, + "sha256": "419bab962014351da3d727e4d9cb51e686410271dac809b526b3668600fc583d" + }, + "focused_checks": 494, + "focused_native": 7, + "Tomari_fixture_checks": 64, + "normal_joining_accepted": false, + "natural_trouble_generation_accepted": false, + "defense_score_value_defined": false, + "current_Windows_build_required": true, + "current_native_kit_update_required": true, + "native_Windows_accepted": false, + "whole_goal_accepted": false + } + }, + { + "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" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P18-01", + "title": "関係モデルと保存", + "work": "原本の3値と盾を専用モデルへ接続し、旧関係値を保全する。", + "acceptance": "表示と状態が一致し、意味不明な値の一対一変換を行わない。", + "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": "閾値前後と反復更新で効果が一回だけ適用される。" + }, + { + "id": "P18-03", + "title": "不可逆な分岐", + "work": "原本のルート確定と旧進行の扱いを保存・履歴へつなぐ。", + "acceptance": "確定後のロードでルートが逆転せず、未決状態を勝手に固定しない。" + } + ], + "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" + }, + { + "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" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P19-01", + "title": "人物行動と決闘", + "work": "原本の行動入口、3種決闘、勝敗、費用、結果を非描写イベントへ接続する。", + "acceptance": "通常入口から到達し、勝敗の盾・状態・台帳が一回だけ変化する。" + }, + { + "id": "P19-02", + "title": "観察と履歴", + "work": "専用観察画面、証拠ID、操作介入、対象状態、履歴を中立テスト内容でつなぐ。", + "acceptance": "対象不在、停止、取消、離脱、保存再開で参照と履歴が一致する。" + }, + { + "id": "P19-03", + "title": "分岐の到達性", + "work": "人物ごとの3ルートに必要なイベント・条件・中断処理を列挙する。", + "acceptance": "7名×3ルートの到達表があり、未制作内容は欠損として残る。" + } + ], + "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" + }, + { + "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" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P20-01", + "title": "ランクと解放", + "work": "信仰・評判・裏影響、ランク条件、領域、施設レベル、Policy、スキル解放を接続する。", + "acceptance": "通常営業から条件を達成でき、未達理由を表示する。" + }, + { + "id": "P20-02", + "title": "章と全エンド", + "work": "物語の開始、章、人物進行、最終ランク、終点を通常操作へ接続する。", + "acceptance": "条件値を直接注入せず新規から本編終点へ到達し、各エンドを保存再開できる。" + }, + { + "id": "P20-03", + "title": "図鑑の完成", + "work": "対象一覧、発見・登録条件、閲覧、達成状況、保存、コンプリート判定を実装する。", + "acceptance": "図鑑コンプを通常到達で検証し、本編クリアと全要素クリアを区別する。" + } + ], + "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": "P21", + "phase": 5, + "title": "防衛・監査・銀行・砲台", + "depends_on": [ + "P05", + "P13", + "P14", + "P17" + ], + "size": "L", + "requirement_ids": [ + "B-1.3", + "B-6.4", + "B-6.5", + "B-9.3", + "B-10.7", + "B-11.4" + ], + "work": "原本の脅威発生から警告、準備、戦闘、能動スキル、魔法砲台、結果、施設損傷・休止へ接続。返済滞納と襲撃を接続。", + "acceptance": "API直呼びでなく通常営業から発生。勝利/敗北/退避/破壊・摘発/復元を検証。敗北で意図しない恒久ロストや勝手な休止解除がない。", + "decisions": [ + "D03", + "D04", + "D05", + "D08" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P21-01", + "title": "自然脅威と監査", + "work": "自然営業のHeat、滞納、原本の脅威から警告と防衛準備へつなぐ。", + "acceptance": "サービス直呼びだけでなく通常営業から発生し、通知と状態が一致する。" + }, + { + "id": "P21-02", + "title": "砲台と能動技能", + "work": "魔法砲台の建設、マナ、職員、人物の任意技能、戦闘結果を接続する。", + "acceptance": "発動可否、費用、クールダウン、勝敗、中断を保存再開まで検証する。" + }, + { + "id": "P21-03", + "title": "破壊と摘発と休止", + "work": "施設損傷、摘発、人物の限定離脱、台帳と営業停止を統合する。", + "acceptance": "意図しない恒久ロストや自動休止解除がなく、利用中の状態を保全する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "defense_preparation_cancel": { + "state": "verified", + "evidence": "execution/DEFENSE_PREPARATION_CANCEL.md", + "targeted_checks": 856, + "rendered_checks": 131, + "full_regression": "140 PASS; no source changes" + }, + "defense_hud": { + "status": "targeted_and_rendered_verified", + "evidence": "execution/DEFENSE_HUD.md", + "normal_trigger_and_combat_ui": "pending" + }, + "defense_management": { + "state": "implemented_source_full_and_rendered_restart_verified", + "ordinary_ui": true, + "threat_creation_is_fixture": true, + "preparation_cancellation_exposed": false, + "selection_save_restore": true, + "evidence": "artifacts/defense-autonomy-2026-09-30", + "related_headless_checks": 1703, + "related_rendered_checks": 403, + "all_original_acceptance": false, + "autonomy_proof_from_same_source_full": true + }, + "defense_clock": { + "state": "implemented_source_full_and_rendered_restart_verified", + "existing_round_interval_used": true, + "replay_same_tick_guard_fixed": true, + "generated_id_collision_fixed": true, + "first_autonomy_checks": 188, + "existing_runtime_cycle_checks": 162, + "natural_threat_generation": false, + "evidence": "artifacts/defense-autonomy-2026-09-30", + "independent_review": "artifacts/defense-autonomy-independent-review-2026-09-30/FOLLOWUP_REVIEW.md", + "all_original_acceptance": false + }, + "defense_autonomy_checkpoint": { + "state": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "full_suites": 146, + "full_failures": 0, + "source_changes": 0, + "opening_rendered_checks": 103, + "defense_restart_rendered_checks": 38, + "full_evidence": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "packed_runs": 16, + "packed_checks": 2559, + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "zip_sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc" + }, + "current_full_regression": { + "status": "source_full_rendered_readable_restart_and_windows_packed_verified", + "full_suites": 148, + "full_failures": 0, + "full_seconds": 657.68, + "source_changes": [], + "opening_restart_checks": 103, + "related_rendered_checks": 453, + "related_headless_checks_referenced_from_same_full": 720, + "defense_restart_checks": 66, + "human_readable_defense_labels": true, + "full_source_manifest_sha256": "0395e515c1cb090408c11c7235b36f8b2015bf350fe412b2d894b286b249ef6c", + "windows_package": "built_and_verified", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "windows_zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "windows_zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "packed_headless_checks": 2468, + "packed_rendered_checks": 458, + "evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "previous_full_regression_before_manifest_cache": { + "status": "source_and_rendered_verified", + "evidence": "execution/FULL_REGRESSION_BEFORE_MANIFEST_CACHE.md", + "suites": 146, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 743.93, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30/verification.json", + "artifact": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "source_changes": 0, + "source_manifest_sha256": "afd27dc86d0125d5547cf58beda9461dec34fd38c0fc94e85a96e7f82d2896a5", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "manifest_cache_checkpoint": { + "state": "retained_source_full_rendered_restart_packed_verified", + "full_suites": 147, + "full_failures": 0, + "source_changes": [], + "live_manifest_checks": 79, + "complete_checkpoint_and_final_store_var_bytes_equal": true, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "x1_average_reduction_percent": 10.479991918650523, + "x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "opening_restart_checks": 103, + "related_rendered_checks": 403, + "related_headless_from_same_source_full_checks": 484, + "defense_restart_checks": 38, + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_checks_including_replays": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "full_source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "natural_threat_generation": false, + "windows_native": false, + "performance_budget_pass": false, + "full_load_acceptance": false, + "all_original_acceptance": false + }, + "event_defense_integration": { + "status": "integrated_current_source_full_and_restart_verified", + "evidence": "artifacts/event-defense-integration-2026-09-30/", + "runtime_schema": 13, + "event_checks": 186, + "natural_producer_complete": false, + "all_original_acceptance": false, + "full_evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "previous_full_regression_before_event_defense": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 147, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 708.21, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "artifact": "artifacts/full-regression-after-manifest-cache-2026-09-30", + "defense_restart_evidence": "artifacts/manifest-cache-defense-restart-2026-09-30/verification.json", + "source_changes": 0, + "source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "defense_human_labels": { + "status": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "evidence": "artifacts/event-defense-labels-integration-2026-09-30/", + "isolated_checks": 1350, + "all_original_acceptance": false, + "full_suites": 148, + "restart_checks": 66, + "rendered_checks": 453, + "packed_checks": 2926, + "windows_native": false + }, + "previous_full_regression_before_event_labels": { + "status": "running", + "evidence": "artifacts/full-regression-after-event-defense-2026-09-30/", + "expected_suites": 148, + "all_original_acceptance": false + } + }, + "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": "P22", + "phase": 1, + "title": "素材台帳・量産仕様の先行確定", + "depends_on": [ + "P01" + ], + "size": "M", + "requirement_ids": [ + "B-12.1", + "B-12.3", + "B-12.4", + "B-13.1", + "B-13.2", + "B-13.3", + "B-13.4", + "B-13.5" + ], + "work": "全施設Lv1〜3×表裏、7人物、状態差分、背景、UI、音響の必要枠を列挙。既存Kenney素材と新規制作を区別しサイズ/命名/ライセンス/差替契約を定義。", + "acceptance": "各資産が利用要件・画面・状態・制作者・仮素材/完成品に紐付く。必要数未確定のまま完成時期を断定しない。", + "decisions": [ + "D08", + "D09" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "P22/P26で制作担当を確定" + }, + "execution_evidence": "execution/assets/README.md", + "remaining": "差分数・制作担当・品質受入と利用画面の確定。既存ファイルの存在を完成認定しない。", + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P22-01", + "title": "必要素材の確定", + "work": "全30施設のLv1〜3と表裏、7人物、ライバル、状態、背景、UI、音の必要枠を列挙する。", + "acceptance": "仮素材、コード描画、完成素材の区分と利用条件が分かり、枠数を素材枚数と混同しない。", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-01-completion-acceptance-r01.json", + "bytes": 8631, + "sha256": "5c2999144fd23a9d5ee52a17895eb2232350d688a5e3dadfe1351ad5e3bf8573" + }, + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-01-completion-acceptance-r01.json" + }, + { + "id": "P22-02", + "title": "素材契約と権利", + "work": "Kenneyを優先して適合素材を選び、解像度、命名、差替、出典とライセンスを記録する。", + "acceptance": "完成枠には使用可能な資産と権利記録があり、欠損を代替表示で隠さない。" + }, + { + "id": "P22-03", + "title": "制作量と担当", + "work": "未制作の絵、モーション、音、声、脚本を必要量と担当・予算候補へ分ける。", + "acceptance": "未割当、未承認、制作待ちが明示され、技術工数と内容制作工数を分ける。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "current_facility_audit": { + "evidence": "execution/CURRENT_FACILITY_AUDIT.md", + "counts": { + "normal_registered_and_palette": 15, + "definition_only": 1, + "missing_definition": 14 + }, + "status": "partial; live catalog and declaration audit only", + "remaining": [ + "14 missing definitions", + "black_market normal integration", + "13 unspecified customer limits", + "all16 mapped service attributes unset", + "zone restrictions and special placement acceptance", + "all30 gameplay/save/art/Windows acceptance" + ] + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + } + }, + "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", + "current_standard_room_sleep_checkpoint": { + "at_jst": "2026-10-08T02:27:24.318350+09:00", + "source_files": 1287, + "adopted_product_refs": 6, + "actual_focused_checks": 3020, + "actual_focused_parse": 301, + "actual_focused_native": 4, + "actual_full_suites": 170, + "actual_full_checks": 13961, + "actual_full_parse": 299, + "actual_full_native": 172, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p22-room-sleep-full170-actual-root-review-r01/review.json", + "bytes": 263866, + "sha256": "2de3cf6304e99a2848e908b0c1b5a433d42f912bed0bb2a35146ae855722e061" + }, + "actual_focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p22-room-sleep-actual-root-review-r01/review.json", + "bytes": 1576, + "sha256": "2f754e3e915341634bace7ca89dceab779f793812f361ac7eafa2ad8d002079b" + }, + "actual_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/root-p22-room-sleep-six-ref-source-adoption-r01/adoption.json", + "bytes": 1899, + "sha256": "c30e0daf5cb70000fe5d29439a050d105157665d4c6b23473458d966db9833a1" + }, + "Runtime_changed": false, + "SaveService_changed": false, + "formal_schema_changed": false, + "normal_upgrade_accepted": false, + "all_finished_assets_accepted": false, + "human_visual_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "original_paired_bgm_candidate_checkpoint": { + "at_jst": "2026-10-08T07:35:08.267838+09:00", + "candidate_assets": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-original-paired-bgm-composition-candidate-r02/tree_theme_front_candidate.wav", + "bytes": 7526444, + "sha256": "6df0a7af307327f703c9325f5ca2ac456888102d50ef1fa76bf4cdf19d2b86cb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-original-paired-bgm-composition-candidate-r02/tree_theme_back_candidate.wav", + "bytes": 7526444, + "sha256": "efe4cc1aa588661d73376720e4278427f7220ce93a5d446f198c5af607c141ca" + } + ], + "numeric_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-original-paired-bgm-numeric-root-review-r01/review.json", + "bytes": 2344, + "sha256": "67c0eaeaa72921326b1bb5b21f706ee36c7224114779694095808e66387c4edb" + }, + "composition": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-original-paired-bgm-composition-candidate-r02/composition.json", + "bytes": 5678, + "sha256": "a544f12063dcb9faa26f00585a1619f18badb483f6fd6e24477d29268835458b" + }, + "recipe": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-original-paired-bgm-composition-candidate-r02/compose.py", + "bytes": 5422, + "sha256": "ef03b3169e6a531cbb688e439854d3b981bb99164527f7a5617905c1c1908f81" + }, + "candidate_only": true, + "game_source_changes": 0, + "new_Godot_native": 0, + "in_game_crossfade_connected": false, + "actual_human_listening": false, + "final_quality_accepted": false, + "whole_goal_accepted": false + }, + "current_paired_bgm_runtime_checkpoint": { + "at_jst": "2026-10-08T09:03:55.894951+09:00", + "source_files": 1295, + "source_refs_adopted": 18, + "marker_refs_adopted": 1, + "actual_full_suites": 171, + "actual_full_checks": 14051, + "actual_full_parse": 301, + "actual_full_native": 173, + "actual_full_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-full171-actual-root-review-r04/review.json", + "bytes": 270999, + "sha256": "c92b3c6318cc137f2c2644c0ef6f860edd17cc5d375e84f9e55e103cff1013da" + }, + "actual_source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-nineteen-ref-source-adoption-r01/adoption.json", + "bytes": 2683, + "sha256": "ea836723a25339792669be0b5e36d650005668029c10f361272f90ccda1e2f02" + }, + "current_source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-nineteen-ref-source-adoption-r01/source-after.json", + "bytes": 152154, + "sha256": "ded449bd8561c32ac023b8d5a8b99a0e2e1a6e8c4d9fbc0953f7d72a7395c14f" + }, + "candidate_assets": [ + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/assets/audio/bgm/tree_theme_front_candidate.wav", + "bytes": 7526444, + "sha256": "6df0a7af307327f703c9325f5ca2ac456888102d50ef1fa76bf4cdf19d2b86cb" + }, + { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/assets/audio/bgm/tree_theme_back_candidate.wav", + "bytes": 7526444, + "sha256": "efe4cc1aa588661d73376720e4278427f7220ce93a5d446f198c5af607c141ca" + } + ], + "in_game_crossfade_connected": true, + "automatic_pause_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-automatic-pause-actual-root-review-r01/review.json", + "bytes": 7526, + "sha256": "777ef31e4d48efacb8d92637ea98b289efa05e511b3042cf2f54392858b6da45" + }, + "normal_auto_cleanup_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-supply-drain-actual-root-review-r01/review.json", + "bytes": 634, + "sha256": "8f239eb67d053eac48a213206898cfe670c111b6cd8e348889d3e0f5cae41e01" + }, + "pending_pricing_cleanup_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-paired-bgm-pending-drain-actual-root-review-r01/review.json", + "bytes": 632, + "sha256": "12f7b4456a011d0a720597fe43e25526968579c301ca54adc1dc6108b59ffffc" + }, + "Runtime_changed": false, + "SaveService_changed": false, + "formal_schema_changed": false, + "normal_OS_input_accepted": false, + "actual_human_listening": false, + "final_quality_accepted": false, + "final_rights_display_accepted": false, + "all_finished_assets_accepted": false, + "native_Windows_accepted": false, + "whole_goal_accepted": false + }, + "current_infirmary_room_art_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T11:32:25.864528+09:00", + "source_files": 1299, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-three-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "0d4827730cc67bf66efe44738a4aeff53f7f244c35b168d6ccbfb4b04310c50d" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-three-ref-source-adoption-r01/adoption.json", + "bytes": 3281, + "sha256": "e85d9c742365f114fe8f9ed8efabf4225213eac5a88b7f2a52439890edc98c7d" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-full172-actual-root-review-r01/review.json", + "bytes": 271399, + "sha256": "3e79c0042a2946cc1be335042a7c4ee2c5be1c1bf296236ec6180399af588d7c" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 303, + "full_native": 174, + "focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-focused-actual-root-review-r01/review.json", + "bytes": 2378, + "sha256": "25fc44f0dbb86586ad2fa7d12fc685eb75b2892250d4297c7d2c5e4e42b543ec" + }, + "focused_checks": 879, + "focused_native": 7, + "rendered_checks": 276, + "actual_render_backend": "Apple M4", + "variant_images": 6, + "rendered_variants": 36, + "typed_Runtime_State_Clock_equal": true, + "bed_anchors_unchanged": true, + "medical_rules_changed": false, + "completion_marker_rows_changed": 0, + "final_assets_accepted": false, + "normal_OS_input_accepted": false, + "current_Windows_build_required": true, + "current_native_kit_update_required": true, + "native_Windows_accepted": false, + "whole_goal_accepted": false, + "actual_Main_rescue_capture_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-main-rescue-capture-actual-root-review-r01/review.json", + "bytes": 12156, + "sha256": "c942eb58a4a9da2636b86dd0157956797b38f1f9b7417bbcaa6d5ff13fc5fa84" + }, + "actual_Main_rescue_capture_native": 2, + "actual_Main_rescue_capture_checks": 13, + "actual_Main_rescue_images": { + "transport.png": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-main-rescue-capture-native-r01/capture-evidence/transport.png", + "bytes": 167778, + "sha256": "3f9c93350da55388440dabef41d84fdb6455c81693fa173d666bba392c64faf3" + }, + "treatment.png": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p22-infirmary-room-art-main-rescue-capture-native-r01/capture-evidence/treatment.png", + "bytes": 167796, + "sha256": "40f86a3306bc271bda17f0df7850bfdafb5af172598f58a7705019c2affd311a" + } + }, + "original_rescue_assertions_unchanged": true, + "controlled_injury_fixture": true, + "medical_values_approved": false + } + }, + { + "id": "P23", + "phase": 3, + "title": "タワー画面・レイヤー演出", + "depends_on": [ + "P08", + "P22" + ], + "size": "L", + "requirement_ids": [ + "B-2.2", + "B-11.1", + "B-11.4", + "B-12.1", + "B-12.2", + "B-12.4" + ], + "work": "非選択層の半透明/ワイヤー、波紋切替、上下移動/ズーム/視認性、原本に沿ったHUD配置と表裏スキンを実装。座標変換と選択判定を共通化。", + "acceptance": "切替前後に選択・クリック座標が一致。パン/ズーム中の建設、異層施設の視認性、連続切替、速度x3で破綻しない。", + "decisions": [ + "D09", + "D10" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P23-01", + "title": "レイヤーと波紋", + "work": "表時の裏半透明、裏時の表ワイヤー、魔法レンズ風の波紋を原本どおり接続する。", + "acceptance": "連続切替でも座標・選択・対象が一致し、描画層と操作対象を取り違えない。", + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-01-current-unit-disposition-r01.json", + "completion_acceptance": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-01-current-unit-disposition-r01.json", + "bytes": 9051, + "sha256": "03db490628dd3a8a25231ce2cee907181a14dcb40eca79525e4a8a9a14a08ede" + } + }, + { + "id": "P23-02", + "title": "断面の操作性", + "work": "パン、上下スクロール、ズーム、建設グリッド、接続警告、HUD配置を整える。", + "acceptance": "小画面とWindows表示倍率で読めて押せる。x3時にも操作が追随する。", + "acceptance_matrix_reference": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p23-02-current-progress-disposition-r337.json", + "current_phase_diagnostic_r339": { + "review": "artifacts/original-completion-2026-10-02/p23-02-current-phase-diagnostic-actual-independent-review-r338-r02.json", + "sha256": "c0fcbaf02f18618a7f833c70f0f0cd3c1e517f5318061cca0158c9c288a6503a", + "scope": "finite current instrumented whole647 only; no acceptance", + "next_scope": "construction infrastructure crosslink validation and supply logistics tick", + "unit_accepted": false, + "performance_accepted": false + }, + "validation_capture_r340_r03": { + "implementation_revision": "r340-r02", + "execution_revision": "r340-r03", + "summary": "r340-r02の建設整合投影/物流rollback captureの5ファイル候補を静的修復支持。r340-r03局所・影響6工程752/0、6owned終了、stage1299/source/default/D4/SUPPORT保持。元r340の3blockerと未実行r02driver summary拒否を保持。候補未採用・未選定、性能/全状態whole647比較/最終全回帰/通常OS/x3/Windows/単位受入なし。正式9/着手19/予定60、全17条件未受入、Windows C08/X8のみblock、手動保持入力延期非免除。", + "execution_path": "artifacts/original-completion-2026-10-02/p23-02-validation-capture-local-r340-r03/execution.json", + "review_path": "artifacts/original-completion-2026-10-02/p23-02-validation-capture-actual-independent-review-r340-r03.json", + "review_sha256": "183c5baaf0a927ed2c81b4f1160b8347843f56faeaba04ec204d665331adc749", + "checkpoint_manifest": "docs/plans/original-completion-2026-10-02/checkpoints/validation-capture-r340-r03/manifest.json", + "candidate_adopted": false, + "unit_accepted": false, + "performance_accepted": false, + "full_regression_count": 0, + "updated_at_jst": "2026-10-12T14:48:09.846142+09:00" + }, + "validation_capture_whole_r341": { + "implementation_revision": "r340-r02", + "execution_revision": "r341", + "summary": "P23-02着手中。制作r32/選定実装親r274-library275は保持。未選定・未採用r340-r02-library334は建設整合/物流rollbackの5ファイル候補で、局所・影響r340-r03の6工程752/0を保持。r341のbaseline333-library334とcandidate340-r02-library334の単一隣接cold646→647は両16/0、全11487732bytes原oracle一致、2owned正常終了・stage1299/source/default/SUPPORT保持。同期1106726→1091713us(単発約1.3565%短縮)だが約1.092秒停止/50ms未達。安定利益・原因・P95/D10・最終全回帰・Main/通常OS/x3/Windows・採用・単位受入なし。r342-r02初期646入力200guests中、DECIDINGかつ予定退出647より後の50名は開始点50種類。初期入力のみでphase9同一性やcache適用を証明せず、同じ開始点の再利用を根拠なく実装しない。正式9/着手19/予定60、30/88、全17未受入。Windows C08/X8のみblock、手動保持入力は延期・非免除。", + "execution_path": "artifacts/original-completion-2026-10-02/p23-02-validation-capture-whole-r341/execution.json", + "review_path": "artifacts/original-completion-2026-10-02/p23-02-validation-capture-whole-actual-independent-review-r341.json", + "review_sha256": "32623f1acf0df15ab6b7638bde4b405172b9019bf9d2f066b8f0171931209b6d", + "checkpoint_manifest": "docs/plans/original-completion-2026-10-02/checkpoints/validation-capture-whole-r341/manifest.json", + "baseline_us": 1106726, + "candidate_us": 1091713, + "single_pair_ratio": 0.986434763437382, + "pair_scope": "One adjacent cold646 observation only, not stable performance or budget acceptance", + "initial_input_audit_path": "artifacts/original-completion-2026-10-02/p23-02-guest-start-input-audit-r342-r02/input-audit.json", + "candidate_adopted": false, + "unit_accepted": false, + "performance_accepted": false, + "full_regression_count": 0, + "updated_at_jst": "2026-10-12T15:07:31.987094+09:00" + }, + "projection_profile_r343_r03": { + "summary": "P23-02着手中。制作r32/選定実装親r274-library275保持、r340-r02-library334未選定・未採用。診断専用r343-r03はthread-local固定PODの12包含区間を集計。bridge1/link1・SDK0・clone0、cold646→647 owned1回18/0、50projection/50search回収・全11487732bytes原oracle一致・正常終了・stage1299/source/default/SUPPORT保持。診断tick1041732us、projection 570.599ms、nearest 391.116ms、tree build 100.181ms、numeric search 98.166ms、route resolve 79.817ms。包含重複と計測摂動があり純CPU・差引原因・未計測版速度・安定利益を認定しない。r341未計測候補約1.092秒停止/50ms未達を維持。正式9/着手19/予定60・30/88・全17未受入、Windows C08/X8のみblock、手動保持入力延期非免除。", + "execution_revision": "r343-r03", + "implementation_revision": "diagnostic-only over r340-r02/library334", + "review_path": "artifacts/original-completion-2026-10-02/p23-02-projection-profile-measurement-actual-independent-review-r343-r03.json", + "review_sha256": "e4b5b89c86baf087210f2f71232318b6209ee0fcc1c38bc5b5dfe678931449e3", + "checkpoint_manifest": "docs/plans/original-completion-2026-10-02/checkpoints/projection-profile-r343-r03/manifest.json", + "manual_tick_us": 1041732, + "native_scopes": { + "batch_end": { + "calls": 50, + "nanoseconds": 4601707 + }, + "facility_access_cells": { + "calls": 7500, + "nanoseconds": 11144931 + }, + "facility_input_filter": { + "calls": 7500, + "nanoseconds": 5827435 + }, + "goal_batch_prepare": { + "calls": 50, + "nanoseconds": 33692043 + }, + "nearest_total": { + "calls": 7500, + "nanoseconds": 391116308 + }, + "numeric_search_total": { + "calls": 50, + "nanoseconds": 98165957 + }, + "projection_guard_preflight": { + "calls": 50, + "nanoseconds": 8780002 + }, + "projection_total": { + "calls": 50, + "nanoseconds": 570599459 + }, + "query_tree_build": { + "calls": 50, + "nanoseconds": 100181079 + }, + "route_resolve": { + "calls": 9225, + "nanoseconds": 79817015 + }, + "row_prepare": { + "calls": 7500, + "nanoseconds": 108493166 + }, + "travel_minutes": { + "calls": 7500, + "nanoseconds": 76079769 + } + }, + "candidate_adopted": false, + "unit_accepted": false, + "performance_accepted": false, + "full_regression_count": 0, + "updated_at_jst": "2026-10-12T15:40:30.738845+09:00" + }, + "execution_priority": "deferred_by_user_authorized_reordering", + "execution_priority_note": "2026-10-12: 追加経路性能修正の反復を保留。原17条件・候補・証拠は保持。Windows実機C08/X8だけ環境ブロック、手動操作は延期。次の有限作業P22-03へ。" + }, + { + "id": "P23-03", + "title": "生活の観察", + "work": "部屋、行列、EV、職員、物資、営業状態が断面上で理解できる表示へ調整する。", + "acceptance": "人物や設備の表示が実状態に対応し、同需要の動線改善を観察できる。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "status": "Completed rooms, active jobs and legacy stairs visible across layers; legacy native30/runtime67/layer27 checks PASS; partial P23", + "evidence": "execution/LAYER_PRESENTATION.md", + "remaining": [ + "remaining legacy transport topology acceptance beyond stairs", + "high-load x3 rapid-switch GPU/input acceptance", + "Windows same-build acceptance", + "remaining original HUD/layer skin requirements" + ], + "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" + } + }, + "hud_skin_evidence": "execution/LAYER_INTERFACE_SKIN.md", + "guide_skin_status": "Guide joins FRONT/BACK HUD skin; paused collapse/reopen fixed. Native16, dashboard139 and opening/save replay59 PASS.", + "staff_skin_evidence": "execution/STAFF_INTERFACE_SKIN.md", + "management_skin_evidence": "execution/MANAGEMENT_INTERFACE_SKIN.md", + "ledger_skin_evidence": "execution/LEDGER_INTERFACE_SKIN.md", + "rank_skin_evidence": "execution/RANK_INTERFACE_SKIN.md" + }, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "既存代表負荷の性能回帰を計測", + "Windows部分実機確認。不可なら未検証を残す" + ], + "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": "P24", + "phase": 4, + "title": "インスペクター・通知・操作完成", + "depends_on": [ + "P09", + "P15", + "P16", + "P18", + "P23", + "P19" + ], + "size": "L", + "requirement_ids": [ + "B-11.1", + "B-11.2", + "B-11.3", + "B-11.4", + "B-13.4" + ], + "work": "シフトのドラッグ配置、欲求/思考ログ、感情/盾、料金内訳、稼働阻害理由、接続線、フキダシ、カットインを接続。クリックによる代替操作も用意。", + "acceptance": "無効ドロップで状態を壊さず理由を表示。保存後も対象選択を回復。ログの説明と実際の選択が一致。モーダル/停止/再開の入力を検証。", + "decisions": [ + "D09" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P24-01", + "title": "全インスペクター", + "work": "欲求、思考、感情、盾、料金内訳、稼働理由、上限、人物効果を通常画面へつなぐ。", + "acceptance": "表示値が実計算・台帳と一致し、未設定をゼロ確定に見せない。" + }, + { + "id": "P24-02", + "title": "操作と通知", + "work": "配置、無効ドロップ、モーダル、停止、再開、フキダシ、ログ、カットインを整える。", + "acceptance": "無効操作を説明し、クリック代替と日本語入力・表示倍率を確認する。" + }, + { + "id": "P24-03", + "title": "選択と保存の受入", + "work": "施設・客・職員・レイヤーの選択を撤去、離脱、保存再起動に跨がせる。", + "acceptance": "不在対象を参照せず、有効な選択と画面値が復元される。" + } + ], + "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" + } + }, + "staff_drag_evidence": "execution/STAFF_DRAG_ASSIGNMENT.md", + "staff_drag_validation": { + "native_checks": 63, + "headless_checks": 62, + "evidence": "artifacts/facility-dimensions-2026-09-29/staff-drag-boundaries-validation.json", + "remaining": [ + "other drag rejection boundaries", + "Windows same-build input acceptance" + ] + }, + "rank_skin_evidence": "execution/RANK_INTERFACE_SKIN.md", + "staff_drag_rejection_validation": { + "headless_checks": 77, + "native_checks": 80, + "evidence": "artifacts/facility-dimensions-2026-09-29/staff-drag-rejections-validation.json", + "remaining": [ + "Windows same-build input", + "defense-specific locks", + "state changes during drag", + "broader P24 scope" + ] + }, + "staff_drag_race_validation": { + "headless_checks": 87, + "native_checks": 87, + "evidence": "artifacts/facility-dimensions-2026-09-29/staff-drag-races-validation.json", + "remaining": [ + "defense-specific lock", + "load/demolition during drag", + "Windows same-build input", + "broader P24 scope" + ] + }, + "infrastructure_ledger_labels": { + "status": "Fixed raw IDs for completed corridor/stair upkeep; names and coordinates verified across restart", + "evidence": "execution/OPENING_RESTART_DEBUG.md" + }, + "business_customer_counts": { + "status": "implemented; business72 headless/native and chapel16 passed; original controls in evidence", + "evidence": "execution/BUSINESS_CUSTOMER_COUNTS.md", + "remaining": [ + "customer limit values for unspecified facilities", + "other original facility parameters and end-to-end acceptance" + ] + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "cleaning_access_followup": { + "evidence": "execution/CLEANING_ACCESS_FOLLOWUP.md", + "status": "Alternate accessible destinations and wait/reconnect behavior implemented; cleaning-room UI corrected. Six targeted suites PASS; broad regression59503 remains active and spans this source change." + }, + "fine_cleaning_effect": { + "status": "triple work rate and single-owner cleaning progression implemented; six related suites PASS; normal recruitment pending user values", + "evidence": "execution/FINE_CLEANING_EFFECT.md", + "all_original_acceptance": false + }, + "amelia_donations": { + "status": "Placement-based triple chapel donation connected to quotes, actual payment, ledger and UI; native39 and related136 checks PASS; normal recruitment and healing remain", + "evidence": "execution/AMELIA_DONATIONS.md", + "all_original_acceptance": false + }, + "facility_reachability": { + "status": "UI reachability early exit; 33 new + 275 related checks PASS; rendered opening/restart97 PASS. Target query average 6222.41 to 4222.04 us (100 paired samples). Not whole-game performance acceptance.", + "evidence": "execution/FACILITY_REACHABILITY.md", + "all_original_acceptance": false + }, + "guest_decision_history": { + "status": "Actual completed guest choices recorded in bounded saved event history and exposed through normal HUD. New headless20/rendered21 PASS; existing observer22, GuestService137, runtime cycle40 PASS; rendered operating restart97 PASS. Not full thought-history or original acceptance.", + "evidence": "execution/GUEST_DECISION_LOG.md", + "all_original_acceptance": false + }, + "guest_candidate_rejections": { + "status": "Actual rejection reason counts and up to8 facility examples retained in saved decision event; includes missing supplies without unnecessary path queries. Headless28/rendered29, related241, rendered restart97 checks PASS. Not whole-original acceptance.", + "evidence": "execution/GUEST_REJECTION_LOG.md", + "all_original_acceptance": false + }, + "staff_drag_load": { + "status": "Reject unfinished drag across successful load; failed restore and fresh drag remain functional. Headless99/rendered100, related118, rendered opening/restart97 PASS; gameplay equal and source unchanged. Partial original acceptance.", + "evidence": "execution/STAFF_DRAG_LOAD.md", + "all_original_acceptance": false + }, + "staff_drag_demolition": { + "status": "Live pointer drag with normal demolition command before drop preserves staff schedules, keeps facility removed and reports rejection. Source106 and isolated same-PCK macOS rendered107 PASS. Production unchanged; Windows native access unavailable in current tools.", + "evidence": "execution/STAFF_DRAG_DEMOLITION.md", + "all_original_acceptance": false + }, + "staff_defense_lock": { + "state": "partial_verified", + "evidence": "execution/STAFF_DEFENSE_LOCK.md", + "checks": 119, + "related_checks": 321, + "rendered_checks": 119, + "opening_restart": "97 checks PASS; equal gameplay; source changes 0", + "remaining": [ + "current Windows package/native verification", + "broader original requirements" + ] + }, + "defense_preparation_cancel": { + "state": "verified", + "evidence": "execution/DEFENSE_PREPARATION_CANCEL.md", + "targeted_checks": 856, + "rendered_checks": 131, + "full_regression": "140 PASS; no source changes" + }, + "defense_hud": { + "status": "targeted_and_rendered_verified", + "evidence": "execution/DEFENSE_HUD.md", + "normal_trigger_and_combat_ui": "pending" + }, + "guide_assignment_scan": { + "status": "targeted_and_rendered_verified", + "evidence": "execution/GUIDE_ASSIGNMENT_SCAN.md", + "targeted_checks": 356, + "rendered_restart_checks": 97, + "whole_game_performance_pass": false, + "windows_package_includes_change": false + }, + "selection_restore": { + "status": "manual_save_full_and_rendered_verified", + "evidence": "execution/SELECTION_RESTORE.md", + "dashboard_checks": 168, + "staff_checks": 131, + "rendered_restart_checks": 103, + "all_save_entry_points_verified": false, + "full_suites": 141 + }, + "selection_autosave": { + "status": "source_and_rendered_verified", + "evidence": "execution/SELECTION_AUTOSAVE.md", + "checks": { + "autosave_headless": 75, + "autosave_rendered": 76, + "lifecycle_headless": 38, + "lifecycle_rendered": 39, + "related": 395, + "restart": 103 + }, + "windows_native": false, + "suites": 143, + "opening_restart_checks": 103 + }, + "actor_selection_restore": { + "status": "source_full_and_rendered_restart_verified", + "headless_checks": 100, + "rendered_checks": 101, + "related_checks": 552, + "production_main_sha256": "15708bfb4d534b4f741df5b087fa56ebf36bb9ca004bb80e0bd9c43d07e6c9f1", + "actor_test_sha256": "ecc08464c20990f0a4bd5d1e5d8d6fceb6f3636c959790842a08539fc54ad911", + "full_regression": "144 PASS; no missing, extra, duplicate or changed source inputs", + "windows_export": "Windows EXE/PCK exported; isolated PCK on macOS and ZIP integrity verified; Windows native pending", + "windows_native": false, + "all_original_acceptance": false, + "evidence": "execution/ACTOR_SELECTION_RESTORE.md", + "full_suites": 144, + "full_opening_restart_checks": 103, + "actor_restart_checks": 116, + "opening_restart_checks": 103, + "full_regression_artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "full_source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "actor_restart": { + "status": "verified", + "write_checks": 103, + "read_checks": 13, + "checks": 116, + "gameplay_json_equal": true, + "typed_digest_equal": true, + "source_changes": 0, + "evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "driver_sha256": { + "verify.py": "52d4e7e7ee1561867aab3db98704ae27d8ca3237d80dea0d39acda64ca7fed5a", + "flow.gd": "4de71e591925c022a1febeb7ac4a99a3557afa79f8c46bd5cac447934030f1c3" + } + }, + "independent_review": { + "status": "no_actionable_product_findings", + "evidence": "artifacts/actor-selection-independent-review-2026-09-30/review.json", + "sha256": "9de10628a3831e236bb951f4d674e3327767fbce7af8bc3c1c7a2f4468f6ddac" + }, + "windows_export_session": 88628, + "windows_build_validation": "verified; 12 isolated PCK runs / 2094 checks including rendered repetitions", + "windows_build_process_complete": true, + "windows_package": { + "zip": "build/windows/TheTree-Windows-actor-selection-2026-09-30.zip", + "sha256": "dbf82a93777d1dc46c9ed0b6c32b84b03177756aed6c080bcbbde0e24ff24ffb", + "actor_headless_checks": 101, + "actor_rendered_macos_checks": 102, + "evidence": "artifacts/windows-actor-release-prep-2026-09-30/build-validation.json", + "windows_native": false, + "all_original_acceptance": false + } + }, + "current_full_regression": { + "status": "source_full_rendered_readable_restart_and_windows_packed_verified", + "full_suites": 148, + "full_failures": 0, + "full_seconds": 657.68, + "source_changes": [], + "opening_restart_checks": 103, + "related_rendered_checks": 453, + "related_headless_checks_referenced_from_same_full": 720, + "defense_restart_checks": 66, + "human_readable_defense_labels": true, + "full_source_manifest_sha256": "0395e515c1cb090408c11c7235b36f8b2015bf350fe412b2d894b286b249ef6c", + "windows_package": "built_and_verified", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "windows_zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "windows_zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "packed_headless_checks": 2468, + "packed_rendered_checks": 458, + "evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "defense_autonomy_checkpoint": { + "state": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "full_suites": 146, + "full_failures": 0, + "source_changes": 0, + "opening_rendered_checks": 103, + "defense_restart_rendered_checks": 38, + "full_evidence": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "packed_runs": 16, + "packed_checks": 2559, + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "zip_sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc" + }, + "previous_full_regression_before_defense_autonomy": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 144, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 762.12, + "opening_restart_checks": 103, + "actor_restart_checks": 116, + "actor_restart_evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "windows_native": false, + "artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "source_changes": 0, + "source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "later_source_change": null, + "all_original_acceptance": false + }, + "previous_full_regression_before_manifest_cache": { + "status": "source_and_rendered_verified", + "evidence": "execution/FULL_REGRESSION_BEFORE_MANIFEST_CACHE.md", + "suites": 146, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 743.93, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30/verification.json", + "artifact": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "source_changes": 0, + "source_manifest_sha256": "afd27dc86d0125d5547cf58beda9461dec34fd38c0fc94e85a96e7f82d2896a5", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "manifest_cache_checkpoint": { + "state": "retained_source_full_rendered_restart_packed_verified", + "full_suites": 147, + "full_failures": 0, + "source_changes": [], + "live_manifest_checks": 79, + "complete_checkpoint_and_final_store_var_bytes_equal": true, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "x1_average_reduction_percent": 10.479991918650523, + "x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "opening_restart_checks": 103, + "related_rendered_checks": 403, + "related_headless_from_same_source_full_checks": 484, + "defense_restart_checks": 38, + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_checks_including_replays": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "full_source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "natural_threat_generation": false, + "windows_native": false, + "performance_budget_pass": false, + "full_load_acceptance": false, + "all_original_acceptance": false + }, + "previous_full_regression_before_event_defense": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 147, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 708.21, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "artifact": "artifacts/full-regression-after-manifest-cache-2026-09-30", + "defense_restart_evidence": "artifacts/manifest-cache-defense-restart-2026-09-30/verification.json", + "source_changes": 0, + "source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "defense_human_labels": { + "status": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "evidence": "artifacts/event-defense-labels-integration-2026-09-30/", + "isolated_checks": 1350, + "all_original_acceptance": false, + "full_suites": 148, + "restart_checks": 66, + "rendered_checks": 453, + "packed_checks": 2926, + "windows_native": false + }, + "previous_full_regression_before_event_labels": { + "status": "running", + "evidence": "artifacts/full-regression-after-event-defense-2026-09-30/", + "expected_suites": 148, + "all_original_acceptance": false + } + }, + "package_dependencies_scope": "integration prerequisites; a vertical slice may start once its own required contracts are accepted", + "cross_cutting_acceptance": [ + "原本条件とUI操作が一致", + "Runtimeの実利用・会計・行動へ接続", + "途中保存・再起動で再現", + "異常/境界/中断を検証", + "関連回帰PASS", + "要件別ログとソースハッシュを保存", + "Windows部分実機確認。不可なら未検証を残す" + ], + "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", + "execution_progress": { + "current1277_checkpoint": { + "at_jst": "2026-10-02T22:55:59.434380+09:00", + "source_files": 1277, + "actual_suites": 169, + "actual_checks": 13640, + "native_phases": 171, + "normal_parse": 294, + "Root_raw_files": 4024, + "Root_private_profiles": 341, + "Root_temporal_checkpoints": 344, + "Root_review_conditions": 2470, + "failures": 0, + "root_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-full169-actual-root-review-r01/review.json", + "sha256": "285649838b71c069ce3977c2deddf1fec4cb89fb6b39e95408d93f13582e6a39" + }, + "limited_adoption": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-adoption-root-r01/adoption.json", + "sha256": "cbfca0f31ec172e5fd9fbeeeec0ee1f0431d642c06a3d86a83958ce261ddb6fe" + }, + "post_review": { + "path": "artifacts/original-completion-2026-10-02/kitchen-p20-source14-post-adoption-root-review-r01/review.json", + "sha256": "8a94cd96b4a439ab5dfd9381ff3332edfeb5233c5f1e128d081ffea6a76edb4f" + }, + "kitchen": { + "path": "artifacts/original-completion-2026-10-02/p09-kitchen-selected1273-limited-actual-root-review-r03/review.json", + "sha256": "b3a0f669f1d76d792531279b416e9d65c0292434e27153fd302bc0c7af3cfb19" + }, + "notification_log": { + "path": "artifacts/original-completion-2026-10-02/p20-log-limited-native-actual-root-review-r03/review.json", + "sha256": "8eec3a8492aa74f571eb21447c6911cea64d176e0f813152f226b2b4122ba387" + }, + "source_refs": 12, + "outside_refs": 2, + "game_Runtime_Save_project_changed": false, + "strict_kitchen_geometry_narrowly_verified": true, + "all_dining_or_P09_accepted": false, + "notification_natural_OS_accepted": false, + "P20_story_catalog_accepted": false, + "Windows_accepted": false, + "whole_game_accepted": false + } + } + }, + { + "id": "P25", + "phase": 5, + "title": "ドット人物・施設差分・音響接続", + "depends_on": [ + "P22", + "P23", + "P12", + "P17" + ], + "size": "L", + "requirement_ids": [ + "B-12.1", + "B-12.3", + "B-12.4", + "B-13.2", + "B-13.3", + "B-13.4", + "B-13.5" + ], + "work": "状態駆動の歩行/作業/搬送/休息、施設Lv差分、背景、表裏BGMクロスフェード、環境/操作音を接続。実シミュレーションの状態を演出源にする。", + "acceptance": "停止中は人物移動が進まない。搬送/休息は実位置に一致。音量/連続切替/ロードで二重再生しない。完成資産の欠損とライセンス記録漏れ0。", + "decisions": [ + "D08", + "D09" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "P22/P26で制作担当を確定" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P25-01", + "title": "実状態に沿うドット動作", + "work": "歩行、接客、食事、搬送、救護、清掃、休息、気絶と設備動作をそろえる。", + "acceptance": "停止中に仕事が進まず、人物位置と搬送・作業状態が一致する。" + }, + { + "id": "P25-02", + "title": "施設と人物の差分", + "work": "施設Lv、表裏、人物状態、破損・汚れ等の必要差分を完成素材へ置換する。", + "acceptance": "全枠の読込、見切れ、欠損、状態変化とライセンスを確認する。" + }, + { + "id": "P25-03", + "title": "音の接続", + "work": "表裏BGMクロスフェード、環境音、操作音、必要な声を音量設定へ接続する。", + "acceptance": "切替、停止、ロードで二重再生せず、Windows出力と設定保存を確認する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "chapel_room_presentation": { + "status": "Initial code-native chapel furnishings and8 visitor anchors implemented; level variants/audio/Windows remain", + "evidence": "execution/CHAPEL_ROOM_PRESENTATION.md" + }, + "cleaning_animation": { + "status": "PASS: actual work animation, related suites, and fixed two-process restart97", + "evidence": "execution/CLEANING_ANIMATION.md", + "all_original_acceptance": false + }, + "cleaning_animation_and_ordering": { + "status": "mop driven by actual active on-site work; explicit lexical cleanliness save/dispatch order fixes cross-process mismatch; related tests and rendered restart97 PASS", + "evidence": "execution/CLEANING_ANIMATION.md", + "all_original_acceptance": false + } + }, + "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" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "P22/P26で制作担当を確定" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P26-01", + "title": "全必要内容の台帳", + "work": "全章、7名の3ルート、全エンド、台詞、立ち絵、音声の必要枠と条件を確定する。", + "acceptance": "原本で要求された未制作内容を欠損として記録し、架空の完成数を置かない。" + }, + { + "id": "P26-02", + "title": "内容と状態の接続", + "work": "制作可能な非露骨内容をイベント・章・閲覧・人物状態へ接続し、仮素材を区別する。", + "acceptance": "全必要分岐に内容IDがあり、欠損と未制作をスキップPASSしない。" + }, + { + "id": "P26-03", + "title": "制作受入と差異", + "work": "完成内容の品質、権利、表示、保存と原本との差異を受入する。", + "acceptance": "原本必須内容の未制作が残る場合は原本全実装未完として報告する。" + } + ], + "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" + }, + { + "id": "P27", + "phase": 6, + "title": "統合・境界・障害復旧試験", + "depends_on": [ + "P10", + "P11", + "P12", + "P13", + "P14", + "P15", + "P16", + "P17", + "P18", + "P19", + "P20", + "P21", + "P24", + "P25", + "P26" + ], + "size": "L", + "requirement_ids": [ + "B-1.1", + "B-1.3", + "B-14.4" + ], + "work": "新規営業/停電/嵐/救護/決算/破産/襲撃/ルート進行の横断シナリオを実施。代表地点で保存・終了・起動を挟む。失敗を再現ケースに固定。", + "acceptance": "全原子要件に合否証拠。進行不能・セーブ破損・帳簿不整合・原本との未承認差異0。未設定や未制作をスキップPASSしない。", + "decisions": [ + "D01", + "D02", + "D03", + "D04", + "D05", + "D06", + "D07", + "D08", + "D09", + "D10" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P27-01", + "title": "要件別の合否", + "work": "原子台帳へ部品、通常Runtime、画面、保存、資産の証拠を結び付ける。", + "acceptance": "全必須要件の判定があり、未設定や欠損を試験省略でPASSにしない。" + }, + { + "id": "P27-02", + "title": "横断シナリオ", + "work": "開業、決算、天候、停電、ラッシュ、救護、破産、防衛、人物、ランクを横断する。", + "acceptance": "中断と保存再起動を挟んでも財布・台帳・人員・参照が一致する。" + }, + { + "id": "P27-03", + "title": "通しデバッグの完了", + "work": "要件別全件合格後に新規から本編・全要素の通し確認を行い、欠陥を再現ケースで修正する。", + "acceptance": "重大不具合0、未解決差異0。修正後の関連回帰と影響した通し経路を再確認する。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "ui_regression": { + "status": "current test-ui command coverage passed after upkeep test repair", + "evidence": "execution/UI_INTEGRATED_REGRESSION.md", + "whole_original_acceptance": false + }, + "lazy_digest_ui_regression": { + "status": "PASS full make test-ui after payload correction", + "evidence": "execution/LAZY_PUBLICATION_DIGEST.md", + "all_original_acceptance": false + }, + "post_skin_ui_regression": { + "status": "PASS current make test-ui; 18 direct scripts plus 2 upkeep processes", + "evidence": "execution/POST_SKIN_UI_REGRESSION.md", + "all_original_acceptance": false + }, + "chapel_full_regression": { + "status": "127 unique source suites PASS, runner exit0, discovery complete; final catalog correction separately310 PASS", + "evidence": "execution/CHAPEL_FULL_REGRESSION.md", + "single_frozen_source_sweep": false, + "all_original_acceptance": false + }, + "opening_restart_debug": { + "status": "Rendered two-process natural opening/three-close debug97 checks PASS after infrastructure ledger label fix; source unchanged during final run", + "evidence": "execution/OPENING_RESTART_DEBUG.md", + "all_original_acceptance": false + }, + "snapshot_full_regression": { + "status": "passed128; runner exit0; frozen source verified", + "evidence": "artifacts/snapshot-full-regression-2026-09-29/completion.json", + "remaining": [ + "all original feature acceptance remains incomplete" + ] + }, + "optimized_opening_restart": { + "status": "passed97 after full128; native macOS screenshots reviewed", + "evidence": "artifacts/snapshot-opening-restart-2026-09-29/validation.json", + "remaining": [ + "all original cross-system scenarios", + "Windows exact build acceptance", + "performance budget and long-term acceptance" + ] + }, + "operations_snapshot_encoding": { + "status": "targeted563 and rendered restart97 passed; interleaved byte equivalence100", + "evidence": "execution/OPERATIONS_SNAPSHOT_ENCODING.md", + "same_state_average_us_before": 2384.77, + "same_state_average_us_after": 1999.03, + "remaining": [ + "production performance budgets", + "full-load and Windows", + "remaining original content and all acceptance gates" + ] + }, + "cleaning_runtime_integration": { + "evidence": "execution/CLEANING_RUNTIME_INTEGRATION.md", + "status": "Normal room construction/hiring/assignment, actual travel and8-minute work,25 recovery, Runtime schema12, cancellation and business UI connected.81 gameplay checks PASS; native82 including capture. Full source regression running; alternate-access and additional boundary coverage remain." + }, + "cleaning_access_followup": { + "evidence": "execution/CLEANING_ACCESS_FOLLOWUP.md", + "status": "Alternate accessible destinations and wait/reconnect behavior implemented; cleaning-room UI corrected. Six targeted suites PASS; broad regression59503 remains active and spans this source change." + }, + "cleaning_regression_recheck": { + "status": "PASS: 132 suites covered; 105 retained after final shared edit plus 27 rechecks; no missing or failed suites; source manifests unchanged", + "evidence": "artifacts/cleaning-regression-final-2026-09-29/verification.json", + "opening_restart": "PASS: rendered macOS two-process flow, 80+17 checks; three closes balanced; gameplay and reports match; source unchanged", + "all_original_acceptance": false, + "opening_restart_evidence": "artifacts/cleaning-opening-restart-2026-09-29/result.json" + }, + "cleaning_animation": { + "status": "PASS: actual work animation, related suites, and fixed two-process restart97", + "evidence": "execution/CLEANING_ANIMATION.md", + "all_original_acceptance": false + }, + "cleaning_animation_and_ordering": { + "status": "mop driven by actual active on-site work; explicit lexical cleanliness save/dispatch order fixes cross-process mismatch; related tests and rendered restart97 PASS", + "evidence": "execution/CLEANING_ANIMATION.md", + "all_original_acceptance": false + }, + "fine_cleaning_effect": { + "status": "triple work rate and single-owner cleaning progression implemented; six related suites PASS; normal recruitment pending user values", + "evidence": "execution/FINE_CLEANING_EFFECT.md", + "all_original_acceptance": false + }, + "amelia_donations": { + "status": "Placement-based triple chapel donation connected to quotes, actual payment, ledger and UI; native39 and related136 checks PASS; normal recruitment and healing remain", + "evidence": "execution/AMELIA_DONATIONS.md", + "all_original_acceptance": false + }, + "staff_task_clock": { + "status": "Removed redundant rejected per-tick progress calls; normal task time unchanged; 6 suites / 574 checks PASS", + "evidence": "execution/STAFF_TASK_CLOCK.md", + "all_original_acceptance": false + }, + "current_full_regression": { + "status": "source_full_rendered_readable_restart_and_windows_packed_verified", + "full_suites": 148, + "full_failures": 0, + "full_seconds": 657.68, + "source_changes": [], + "opening_restart_checks": 103, + "related_rendered_checks": 453, + "related_headless_checks_referenced_from_same_full": 720, + "defense_restart_checks": 66, + "human_readable_defense_labels": true, + "full_source_manifest_sha256": "0395e515c1cb090408c11c7235b36f8b2015bf350fe412b2d894b286b249ef6c", + "windows_package": "built_and_verified", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "windows_zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "windows_zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "packed_headless_checks": 2468, + "packed_rendered_checks": 458, + "evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "facility_reachability": { + "status": "UI reachability early exit; 33 new + 275 related checks PASS; rendered opening/restart97 PASS. Target query average 6222.41 to 4222.04 us (100 paired samples). Not whole-game performance acceptance.", + "evidence": "execution/FACILITY_REACHABILITY.md", + "all_original_acceptance": false + }, + "guest_decision_history": { + "status": "Actual completed guest choices recorded in bounded saved event history and exposed through normal HUD. New headless20/rendered21 PASS; existing observer22, GuestService137, runtime cycle40 PASS; rendered operating restart97 PASS. Not full thought-history or original acceptance.", + "evidence": "execution/GUEST_DECISION_LOG.md", + "all_original_acceptance": false + }, + "guest_candidate_rejections": { + "status": "Actual rejection reason counts and up to8 facility examples retained in saved decision event; includes missing supplies without unnecessary path queries. Headless28/rendered29, related241, rendered restart97 checks PASS. Not whole-original acceptance.", + "evidence": "execution/GUEST_REJECTION_LOG.md", + "all_original_acceptance": false + }, + "service_start_slots": { + "status": "Start index separated from customer headcount and fixed before notification callbacks. New25 and related220 checks PASS; rendered two-process opening/restart97 PASS, gameplay equal and source unchanged. Not full140-suite or original acceptance.", + "evidence": "execution/SERVICE_START_SLOTS.md", + "all_original_acceptance": false + }, + "staff_drag_load": { + "status": "Reject unfinished drag across successful load; failed restore and fresh drag remain functional. Headless99/rendered100, related118, rendered opening/restart97 PASS; gameplay equal and source unchanged. Partial original acceptance.", + "evidence": "execution/STAFF_DRAG_LOAD.md", + "all_original_acceptance": false + }, + "projector_single_live_check": { + "status": "Removed duplicate live projection traversal; source and adapter validation retained. Related645 and rendered opening/restart97 checks PASS. Paired200 samples: average1494.195 to1165.750 us. Full production budgets still FAIL; no whole-game speedup claim.", + "evidence": "execution/PROJECTOR_SINGLE_LIVE_CHECK.md", + "all_original_acceptance": false + }, + "current_windows_package": { + "status": "source_full_rendered_restart_and_packed_verified", + "evidence": "artifacts/windows-event-defense-labels-release-prep-2026-09-30/", + "zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "windows_native": false, + "all_original_acceptance": false + }, + "staff_drag_demolition": { + "status": "Live pointer drag with normal demolition command before drop preserves staff schedules, keeps facility removed and reports rejection. Source106 and isolated same-PCK macOS rendered107 PASS. Production unchanged; Windows native access unavailable in current tools.", + "evidence": "execution/STAFF_DRAG_DEMOLITION.md", + "all_original_acceptance": false + }, + "staff_defense_lock": { + "state": "partial_verified", + "evidence": "execution/STAFF_DEFENSE_LOCK.md", + "checks": 119, + "related_checks": 321, + "rendered_checks": 119, + "opening_restart": "97 checks PASS; equal gameplay; source changes 0", + "remaining": [ + "current Windows package/native verification", + "broader original requirements" + ] + }, + "defense_preparation_cancel": { + "state": "verified", + "evidence": "execution/DEFENSE_PREPARATION_CANCEL.md", + "targeted_checks": 856, + "rendered_checks": 131, + "full_regression": "140 PASS; no source changes" + }, + "selection_restore": { + "status": "manual_save_full_and_rendered_verified", + "evidence": "execution/SELECTION_RESTORE.md", + "dashboard_checks": 168, + "staff_checks": 131, + "rendered_restart_checks": 103, + "all_save_entry_points_verified": false, + "full_suites": 141 + }, + "selection_autosave": { + "status": "source_and_rendered_verified", + "evidence": "execution/SELECTION_AUTOSAVE.md", + "checks": { + "autosave_headless": 75, + "autosave_rendered": 76, + "lifecycle_headless": 38, + "lifecycle_rendered": 39, + "related": 395, + "restart": 103 + }, + "windows_native": false, + "suites": 143, + "opening_restart_checks": 103 + }, + "actor_selection_restore": { + "status": "source_full_and_rendered_restart_verified", + "headless_checks": 100, + "rendered_checks": 101, + "related_checks": 552, + "production_main_sha256": "15708bfb4d534b4f741df5b087fa56ebf36bb9ca004bb80e0bd9c43d07e6c9f1", + "actor_test_sha256": "ecc08464c20990f0a4bd5d1e5d8d6fceb6f3636c959790842a08539fc54ad911", + "full_regression": "144 PASS; no missing, extra, duplicate or changed source inputs", + "windows_export": "Windows EXE/PCK exported; isolated PCK on macOS and ZIP integrity verified; Windows native pending", + "windows_native": false, + "all_original_acceptance": false, + "evidence": "execution/ACTOR_SELECTION_RESTORE.md", + "full_suites": 144, + "full_opening_restart_checks": 103, + "actor_restart_checks": 116, + "opening_restart_checks": 103, + "full_regression_artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "full_source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "actor_restart": { + "status": "verified", + "write_checks": 103, + "read_checks": 13, + "checks": 116, + "gameplay_json_equal": true, + "typed_digest_equal": true, + "source_changes": 0, + "evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "driver_sha256": { + "verify.py": "52d4e7e7ee1561867aab3db98704ae27d8ca3237d80dea0d39acda64ca7fed5a", + "flow.gd": "4de71e591925c022a1febeb7ac4a99a3557afa79f8c46bd5cac447934030f1c3" + } + }, + "independent_review": { + "status": "no_actionable_product_findings", + "evidence": "artifacts/actor-selection-independent-review-2026-09-30/review.json", + "sha256": "9de10628a3831e236bb951f4d674e3327767fbce7af8bc3c1c7a2f4468f6ddac" + }, + "windows_export_session": 88628, + "windows_build_validation": "verified; 12 isolated PCK runs / 2094 checks including rendered repetitions", + "windows_build_process_complete": true, + "windows_package": { + "zip": "build/windows/TheTree-Windows-actor-selection-2026-09-30.zip", + "sha256": "dbf82a93777d1dc46c9ed0b6c32b84b03177756aed6c080bcbbde0e24ff24ffb", + "actor_headless_checks": 101, + "actor_rendered_macos_checks": 102, + "evidence": "artifacts/windows-actor-release-prep-2026-09-30/build-validation.json", + "windows_native": false, + "all_original_acceptance": false + } + }, + "defense_autonomy_checkpoint": { + "state": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "full_suites": 146, + "full_failures": 0, + "source_changes": 0, + "opening_rendered_checks": 103, + "defense_restart_rendered_checks": 38, + "full_evidence": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "packed_runs": 16, + "packed_checks": 2559, + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "zip_sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc" + }, + "previous_full_regression_before_defense_autonomy": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 144, + "opening_restart_checks": 103, + "windows_native": false, + "artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "source_changes": 0, + "later_source_change": null, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 762.12, + "actor_restart_checks": 116, + "actor_restart_evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "all_original_acceptance": false + }, + "previous_windows_package_before_defense_autonomy": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/CURRENT_WINDOWS_PACKAGE.md", + "zip": "build/windows/TheTree-Windows-actor-selection-2026-09-30.zip", + "bytes": 73155439, + "sha256": "dbf82a93777d1dc46c9ed0b6c32b84b03177756aed6c080bcbbde0e24ff24ffb", + "build_id": "actor-selection-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 12, + "packed_headless_checks": 1743, + "packed_rendered_checks": 351, + "packed_rendered_staff_checks": 132, + "packed_total_checks_including_replays": 2094, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 144, + "source_opening_restart_checks": 103, + "source_actor_restart_checks": 116, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 849, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "697577f0d33d400d887d8f398d2afb02cb19c452aaad92e5a486d07b9718303d", + "source_manifest_sha256": "afdc8638ae17ce37545ef12bf337bccf4a6e8a4b5a09f4b8bdee55d3f0543bc4", + "validation_artifact": "artifacts/windows-actor-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false, + "previous_development_package": { + "zip": "build/windows/TheTree-Windows-snapshot-reuse-2026-09-29.zip", + "sha256": "03629ba3325aeecb135f199c192e0ffbcb4fae539f1f0dff1c3d76495ff0f842", + "packed_headless_checks": 1527, + "packed_rendered_staff_checks": 132 + } + }, + "previous_full_regression_before_manifest_cache": { + "status": "source_and_rendered_verified", + "evidence": "execution/FULL_REGRESSION_BEFORE_MANIFEST_CACHE.md", + "suites": 146, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 743.93, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30/verification.json", + "artifact": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "source_changes": 0, + "source_manifest_sha256": "afd27dc86d0125d5547cf58beda9461dec34fd38c0fc94e85a96e7f82d2896a5", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "previous_windows_package_before_manifest_cache": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/WINDOWS_PACKAGE_BEFORE_MANIFEST_CACHE.md", + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "bytes": 73190478, + "sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc", + "build_id": "defense-autonomy-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 16, + "packed_headless_checks": 2151, + "packed_rendered_checks": 408, + "packed_total_checks_including_replays": 2559, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102, + "defense-cycle": 163, + "defense-autonomy": 189, + "defense-management": 56, + "defense-management-rendered": 57 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 146, + "source_opening_restart_checks": 103, + "source_defense_restart_checks": 38, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 851, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "8d7ba120e35593fffcadf08174b32c91b78e8892a454393535975500f2309081", + "source_manifest_sha256": "49e05221691a06e2781a720b734f38f7996be1237cf3738e2f0c7f737f794fe9", + "validation_artifact": "artifacts/windows-defense-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false + }, + "manifest_cache_checkpoint": { + "state": "retained_source_full_rendered_restart_packed_verified", + "full_suites": 147, + "full_failures": 0, + "source_changes": [], + "live_manifest_checks": 79, + "complete_checkpoint_and_final_store_var_bytes_equal": true, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "x1_average_reduction_percent": 10.479991918650523, + "x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "opening_restart_checks": 103, + "related_rendered_checks": 403, + "related_headless_from_same_source_full_checks": 484, + "defense_restart_checks": 38, + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_checks_including_replays": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "full_source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "natural_threat_generation": false, + "windows_native": false, + "performance_budget_pass": false, + "full_load_acceptance": false, + "all_original_acceptance": false + }, + "event_defense_integration": { + "status": "integrated_current_source_full_and_restart_verified", + "evidence": "artifacts/event-defense-integration-2026-09-30/", + "runtime_schema": 13, + "event_checks": 186, + "natural_producer_complete": false, + "all_original_acceptance": false, + "full_evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "previous_full_regression_before_event_defense": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 147, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 708.21, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "artifact": "artifacts/full-regression-after-manifest-cache-2026-09-30", + "defense_restart_evidence": "artifacts/manifest-cache-defense-restart-2026-09-30/verification.json", + "source_changes": 0, + "source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "previous_windows_package_before_event_defense": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/CURRENT_WINDOWS_PACKAGE.md", + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "bytes": 73192182, + "sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "build_id": "manifest-cache-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_total_checks_including_replays": 2639, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102, + "defense-cycle": 163, + "defense-autonomy": 189, + "defense-management": 56, + "defense-management-rendered": 57, + "manifest-cache": 80 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 147, + "source_opening_restart_checks": 103, + "source_defense_restart_checks": 38, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 851, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "source_manifest_sha256": "a9476841dcb6dba6697380b9f8005617986c04d23b6ef29b287bd351f437102f", + "validation_artifact": "artifacts/windows-manifest-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false + }, + "defense_human_labels": { + "status": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "evidence": "artifacts/event-defense-labels-integration-2026-09-30/", + "isolated_checks": 1350, + "all_original_acceptance": false, + "full_suites": 148, + "restart_checks": 66, + "rendered_checks": 453, + "packed_checks": 2926, + "windows_native": false + }, + "previous_full_regression_before_event_labels": { + "status": "running", + "evidence": "artifacts/full-regression-after-event-defense-2026-09-30/", + "expected_suites": 148, + "all_original_acceptance": false + } + }, + "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": "P28", + "phase": 6, + "title": "性能・操作感・長期バランス", + "depends_on": [ + "P27" + ], + "size": "L", + "requirement_ids": [ + "B-1.1", + "B-3.1a", + "B-4.3a", + "B-4.3c", + "B-11.1", + "B-12.1", + "B-14.4" + ], + "work": "既存高負荷条件でCPU/経路/描画/保存を測定。通常プレイのラッシュ/満室/負荷ピークと長期経済を評価。20〜30時間本編・50時間以上全攻略は実プレイ記録で確認。", + "acceptance": "既存性能予算と新しいWindows描画目標を満たす。到達不可能な収支/信仰/ランク条件なし。高速自動再生だけでプレイ時間・操作感を合格にしない。", + "decisions": [ + "D04", + "D08", + "D10" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P28-01", + "title": "現HEADの性能基準", + "work": "実Runtimeの20,000マス・200客・50職員・150施設を基準にTick、経路、snapshot、描画、保存を測る。", + "acceptance": "機種、ビルド、シード、速度、測定区間、平均・P95・最大を残す。" + }, + { + "id": "P28-02", + "title": "意味を保つ軽量化", + "work": "失敗時拒否を含む同等性を先に固定し、snapshot変換・検証・コピー・経路接続の実測上位から改善する。", + "acceptance": "同条件の反復比較と全状態・全イベント一致を確認し、キャッシュの古さ・所有権・不正入力を検証する。" + }, + { + "id": "P28-03", + "title": "操作感と長期バランス", + "work": "Windows描画、初見操作、ラッシュ、長期収支、本編20〜30時間・全要素50時間以上を実プレイで確認する。", + "acceptance": "性能予算と対象Windows描画目標を満たし、時間の早送りだけで操作感やプレイ時間を合格にしない。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 7, + 15 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "current_domain_performance": { + "status": "smoke and full public-API composition PASS", + "evidence": "execution/CURRENT_PERFORMANCE.md", + "remaining": [ + "production Runtime performance", + "rendered scene and GPU load", + "Windows target acceptance", + "long campaign balance" + ] + }, + "production_runtime_performance": { + "status": "improved but FAIL: x1 average14.359ms, x3 P95 53.828ms (small production fixture)", + "evidence": "execution/PRODUCTION_RUNTIME_PERFORMANCE.md", + "next": [ + "snapshot publication cost", + "idle infrastructure validation", + "same-checkpoint regression and remeasurement" + ], + "scalar_cache_evidence": "execution/DIGEST_SCALAR_CACHE.md", + "membership_evidence": "execution/PATH_MEMBERSHIP_OPTIMIZATION.md", + "latest_investigation": "Operations snapshot validation/conversion fusion rejected; exact cell-set fix passed168 and full UI regression. Snapshot publication remains primary performance hotspot.", + "lazy_digest_evidence": "execution/LAZY_PUBLICATION_DIGEST.md", + "ui_regression": "Full make test-ui exit0 after compact HUD, projector/adapter validation caches and exact cell-set fix;17 direct scripts plus2 upkeep processes, unchanged source hashes, no error markers.", + "event_snapshot_evidence": "execution/EVENT_HISTORY_SNAPSHOT_CACHE.md", + "compact_hud_evidence": "execution/COMPACT_OPERATIONS_HUD.md", + "projector_cache_evidence": "execution/PROJECTOR_VALIDATION_CACHE.md", + "adapter_cache_evidence": "execution/ADAPTER_VALIDATION_CACHE.md", + "cell_set_evidence": "execution/EXACT_CELL_SET_VALIDATION.md", + "post_skin_measurement": { + "status": "FAIL", + "x1_average_ms": 14.503425, + "x3_p95_ms": 54.366, + "evidence": "execution/POST_SKIN_PRODUCTION_PERFORMANCE.md" + }, + "snapshot_copy_reduction": { + "evidence": "execution/OPERATIONS_SNAPSHOT_COPY_REDUCTION.md", + "functional_status": "PASS 233+51+59", + "performance_status": "FAIL x1 14.256ms / x3 P95 52.113ms" + }, + "tree_budget_optimization": { + "evidence": "execution/SNAPSHOT_TREE_BUDGET.md", + "functional_status": "PASS 248+59", + "performance_status": "FAIL x1 14.031ms / x3 P95 50.911ms" + }, + "latest_measurement": "Catalog manifest cache retained after 200-frame ABBA comparison; x1 reference mean12.052ms -> candidate10.789ms; x3 P95 mean63.445ms ->52.1295ms. Small macOS production fixture only; budgets still FAIL. execution/MVP_CATALOG_MANIFEST_CACHE.md." + }, + "snapshot_key_budget": { + "status": "Validation leaf optimization measured; production budgets still FAIL", + "evidence": "execution/SNAPSHOT_KEY_BUDGET.md", + "before_after_us": { + "operations_snapshot_average": [ + 3174.95, + 2419.45 + ], + "x1_average": [ + 13979.775, + 13487.4 + ], + "x3_p95": [ + 54880, + 51750 + ] + } + }, + "dashboard_refresh_coalescing": { + "status": "Implemented one deferred main dashboard refresh per tick batch; UI and deterministic replay pass; performance budgets still FAIL", + "evidence": "execution/DASHBOARD_REFRESH_COALESCING.md" + }, + "composed_infrastructure_validation": { + "status": "Retained duplicate validation elimination; targeted435 checks PASS; x1avg12.849ms/x3P9546.529ms still exceed budgets", + "evidence": "execution/COMPOSED_INFRASTRUCTURE_VALIDATION.md", + "acceptance_passed": false + }, + "snapshot_ownership": { + "status": "Removed redundant aggregate deep copy; ownership87/save recovery96 PASS; x1avg11.957ms/x3P9536.908ms still above budgets", + "evidence": "execution/SNAPSHOT_OWNERSHIP.md", + "acceptance_passed": false + }, + "operations_snapshot_encoding": { + "status": "targeted563 and rendered restart97 passed; interleaved byte equivalence100", + "evidence": "execution/OPERATIONS_SNAPSHOT_ENCODING.md", + "same_state_average_us_before": 2384.77, + "same_state_average_us_after": 1999.03, + "remaining": [ + "production performance budgets", + "full-load and Windows", + "remaining original content and all acceptance gates" + ] + }, + "world_snapshot_cache": { + "status": "single cached geometry with detached reads and restore invalidation; 5 related suites PASS; 20000-cell same-state world serialization improved, full simulation budgets still fail", + "evidence": "execution/WORLD_SNAPSHOT_CACHE.md", + "all_original_acceptance": false + }, + "staff_task_clock": { + "status": "Removed redundant rejected per-tick progress calls; normal task time unchanged; 6 suites / 574 checks PASS", + "evidence": "execution/STAFF_TASK_CLOCK.md", + "all_original_acceptance": false + }, + "facility_reachability": { + "status": "UI reachability early exit; 33 new + 275 related checks PASS; rendered opening/restart97 PASS. Target query average 6222.41 to 4222.04 us (100 paired samples). Not whole-game performance acceptance.", + "evidence": "execution/FACILITY_REACHABILITY.md", + "all_original_acceptance": false + }, + "projector_single_live_check": { + "status": "Removed duplicate live projection traversal; source and adapter validation retained. Related645 and rendered opening/restart97 checks PASS. Paired200 samples: average1494.195 to1165.750 us. Full production budgets still FAIL; no whole-game speedup claim.", + "evidence": "execution/PROJECTOR_SINGLE_LIVE_CHECK.md", + "all_original_acceptance": false + }, + "operations_snapshot_profile": { + "state": "measured_candidates_rejected", + "evidence": "execution/OPERATIONS_SNAPSHOT_PROFILE.md", + "production_changes": 0, + "x1_average_us": 9734.7, + "x3_p95_us": 34201, + "budget_pass": false + }, + "snapshot_stage_profile": { + "status": "measured_candidate_rejected", + "evidence": "artifacts/snapshot-stage-profile-2026-09-29/verification.json", + "production_changes": 0, + "performance_budget_pass": false + }, + "snapshot_call_reuse": { + "status": "source_rendered_and_packed_verified", + "evidence": "execution/SNAPSHOT_CALL_REUSE.md", + "performance_budget_pass": false, + "suites": 140, + "opening_restart_checks": 97, + "windows_package_includes_change": true + }, + "current_standalone_full_load": { + "status": "24_checks_pass", + "evidence": "execution/CURRENT_FULL_LOAD.md", + "x3_p95_us": 7419, + "whole_runtime_performance_pass": false, + "windows_native": false + }, + "guide_assignment_scan": { + "status": "targeted_and_rendered_verified", + "evidence": "execution/GUIDE_ASSIGNMENT_SCAN.md", + "targeted_checks": 356, + "rendered_restart_checks": 97, + "whole_game_performance_pass": false, + "windows_package_includes_change": false + }, + "mvp_catalog_manifest_cache": { + "status": "retained_source_full_rendered_restart_packed_verified", + "evidence": "execution/MVP_CATALOG_MANIFEST_CACHE.md", + "artifact": "artifacts/manifest-cache-evaluation-2026-09-30", + "isolated_reference_checks": 39, + "isolated_candidate_checks": 44, + "live_checks": 79, + "related_isolated_checks": 832, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "whole_x1_average_reduction_percent": 10.479991918650523, + "whole_x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "complete_checkpoint_and_final_bytes_equal": true, + "performance_budget_pass": false, + "full_load_acceptance": false, + "windows_native": false, + "all_original_acceptance": false, + "full_suites": 147, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "packed_runs": 17, + "packed_checks": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37" + }, + "current_full_regression": { + "status": "source_full_rendered_readable_restart_and_windows_packed_verified", + "full_suites": 148, + "full_failures": 0, + "full_seconds": 657.68, + "source_changes": [], + "opening_restart_checks": 103, + "related_rendered_checks": 453, + "related_headless_checks_referenced_from_same_full": 720, + "defense_restart_checks": 66, + "human_readable_defense_labels": true, + "full_source_manifest_sha256": "0395e515c1cb090408c11c7235b36f8b2015bf350fe412b2d894b286b249ef6c", + "windows_package": "built_and_verified", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "windows_zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "windows_zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "packed_headless_checks": 2468, + "packed_rendered_checks": 458, + "evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "manifest_cache_checkpoint": { + "state": "retained_source_full_rendered_restart_packed_verified", + "full_suites": 147, + "full_failures": 0, + "source_changes": [], + "live_manifest_checks": 79, + "complete_checkpoint_and_final_store_var_bytes_equal": true, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "x1_average_reduction_percent": 10.479991918650523, + "x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "opening_restart_checks": 103, + "related_rendered_checks": 403, + "related_headless_from_same_source_full_checks": 484, + "defense_restart_checks": 38, + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_checks_including_replays": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "full_source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "natural_threat_generation": false, + "windows_native": false, + "performance_budget_pass": false, + "full_load_acceptance": false, + "all_original_acceptance": false + }, + "previous_full_regression_before_event_defense": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 147, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 708.21, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "artifact": "artifacts/full-regression-after-manifest-cache-2026-09-30", + "defense_restart_evidence": "artifacts/manifest-cache-defense-restart-2026-09-30/verification.json", + "source_changes": 0, + "source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "previous_full_regression_before_event_labels": { + "status": "running", + "evidence": "artifacts/full-regression-after-event-defense-2026-09-30/", + "expected_suites": 148, + "all_original_acceptance": false + } + }, + "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", + "execution_progress": { + "current1277_checkpoint": { + "source_files": 1273, + "baseline": { + "path": "artifacts/original-completion-2026-10-02/current1273-scale-safe-reuse-actual-root-review-r01/review.json", + "sha256": "2981c8e2b5ccbf0ae8faa43e21e947c124590fadd3439f7c229e54adbddefaf7" + }, + "contrast": { + "path": "artifacts/original-completion-2026-10-02/current1273-no-route-macro-actual-root-review-r01/review.json", + "sha256": "b692df04059a68349b935175a2ec1374b4d25e5d406dfbf4facb8649a3b3a488" + }, + "diagnostic_checks": 25918, + "normal_parse": 293, + "Operations_enabled": false, + "domain_minutes": 30, + "whole_literal_contrast_pairs": 15, + "no_route_candidate_adopted": false, + "raw_timing_samples_present": false, + "new1277_performance_measured": false, + "P28_accepted": false, + "Windows_accepted": false + } + }, + "current_connector_endpoint_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T13:00:42.968294+09:00", + "source_files": 1299, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-connector-local-one-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "553e8d50a5bc90c0140449d03f39a0831b980e6c8b61004736673e15a0976eea" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-connector-local-one-ref-source-adoption-r01/adoption.json", + "bytes": 2490, + "sha256": "8f2d75eda9fa964fc7031af3e7913629d2a8dadb9701ab962e4cbd8960b99610" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-connector-local-full172-actual-root-review-r01/review.json", + "bytes": 271342, + "sha256": "1f0a20ca3053dc5eb660a76b954245c84e44d06302f82c91e054050d475919e0" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 303, + "full_native": 174, + "focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-connector-local-rebuild-probe-actual-root-review-r01/review.json", + "bytes": 6401, + "sha256": "79844ab3a8c29738a84eb4724c33db58d66bea003f9af688d91d377a5a2602ab" + }, + "focused_checks": 308, + "focused_native": 2, + "existing_refs_adopted": 1, + "new_UIDs": 0, + "completion_marker_rows_changed": 0, + "maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-runtime-scale-build-candidate-actual-root-review-r01/review.json", + "bytes": 38801, + "sha256": "1aae48f6a89a0dab2d6e2414ec203fbfd2ba2a21d4df4708eba203558de0c5b6" + }, + "maximum_scale_checks": 29175, + "maximum_scale_native": 7, + "maximum_scale_baseline_root_audit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-runtime-scale-build-baseline-actual-root-audit-r01/review.json", + "bytes": 6326, + "sha256": "3cca6355efee1202b3504954a2b60cc8c5b1f639978240a1aec953f3b8ec6b1b" + }, + "real_fixture_reconstruction": true, + "full_raw_typed_snapshots": 20, + "Operations_ON_accepted": false, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "full_Runtime_performance_accepted": false, + "whole_goal_accepted": false + }, + "current_positive_connector_heuristic_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T14:18:00.235366+09:00", + "source_files": 1299, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-one-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "98964f705b1ebad9905729ae036fb3d0d7695129468aa8f4a2687db3cc519118" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-one-ref-source-adoption-r01/adoption.json", + "bytes": 2887, + "sha256": "8efe2a81dae2dbd5356fba550432dde9e1fc12ca4880dd4c85559d2da8cfcbab" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-full172-actual-root-review-r01/review.json", + "bytes": 271381, + "sha256": "02f97170af99d8cd4abab0c36f1304fb4ded85a1459979ff98d9f6f6e5966a12" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 303, + "full_native": 174, + "focused_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-probe-actual-root-review-r01/review.json", + "bytes": 54063, + "sha256": "ce331fe91147e8b1b770c3da74740d2f39992eda80428ad5235d20c19d3f2676" + }, + "focused_checks": 290, + "focused_native": 2, + "topology_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-topology-probe-actual-root-review-r01/review.json", + "bytes": 3499, + "sha256": "80684325e98984fe99e9876798696ec7d52870b4491d747eaa0b2fc7dc371945" + }, + "topology_checks": 6054, + "topology_queries": 2880, + "topology_native": 2, + "existing_refs_adopted": 1, + "new_UIDs": 0, + "completion_marker_rows_changed": 0, + "maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-runtime-diagnostic-actual-root-review-r01/review.json", + "bytes": 6243, + "sha256": "2c8c1df43cb7e8b678d2d7a91be8a5881cbdd11059a7d775b3cc84f7b0b7d063" + }, + "maximum_scale_checks": 78, + "maximum_scale_native": 2, + "baseline_maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-ai-path-phase-diagnostic-actual-root-review-r02/review.json", + "bytes": 6158, + "sha256": "f5bc19f34cef7921466c65f3a4ea98f851a7d978be6ac75fea0d821ec96638e2" + }, + "baseline_maximum_scale_checks": 78, + "baseline_maximum_scale_native": 2, + "actual_20k_200guest_50staff_150facility": true, + "entire_initial_final_uncapped_events_equal": true, + "Operations_ON_accepted": false, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "full_Runtime_performance_accepted": false, + "whole_goal_accepted": false + }, + "current_unsorted_membership_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T15:17:30.589866+09:00", + "source_files": 1299, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-crosslink-unsorted-membership-three-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "9b06033e7d236994bb235c18774fdc9bb7d5f13c737d5828f02121452a532629" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-crosslink-unsorted-membership-three-ref-source-adoption-r01/adoption.json", + "bytes": 3056, + "sha256": "1bd7a4eff42f7d64495aa471c70898486d54b608ae9f891d872e5306546b2ee5" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-crosslink-unsorted-membership-full172-actual-root-review-r01/review.json", + "bytes": 271474, + "sha256": "aaf5ad702b966964e1506901fff4d0e9c77d83cd4d641ea4c9b9220ac5f45315" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 303, + "full_native": 174, + "existing_refs_adopted": 3, + "new_UIDs": 0, + "completion_marker_rows_changed": 0, + "maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-crosslink-unsorted-membership-runtime-diagnostic-actual-root-review-r01/review.json", + "bytes": 6247, + "sha256": "3046b1dde81815b5702d2938b3478a75d5d907b77ca19193ff97f184eed51fe7" + }, + "maximum_scale_checks": 84, + "maximum_scale_native": 2, + "baseline_maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-positive-connector-heuristic-runtime-diagnostic-actual-root-review-r01/review.json", + "bytes": 6243, + "sha256": "2c8c1df43cb7e8b678d2d7a91be8a5881cbdd11059a7d775b3cc84f7b0b7d063" + }, + "baseline_maximum_scale_checks": 78, + "baseline_maximum_scale_native": 2, + "default_sorted_getter_results_preserved": true, + "all_infrastructure_checks_retained": true, + "actual_20k_200guest_50staff_150facility": true, + "entire_initial_final_uncapped_events_equal": true, + "Operations_ON_accepted": false, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "normal_OS_input_accepted": false, + "native_Windows_accepted": false, + "full_Runtime_performance_accepted": false, + "whole_goal_accepted": false + }, + "current_optional_route_status_capture_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T16:09:00.231023+09:00", + "source_files": 1299, + "source_map": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-route-status-optional-capture-one-ref-source-adoption-r01/source-after.json", + "bytes": 152598, + "sha256": "85cf9fe0dcc1133c6e048d61f545c0f034d123c1497c6a7089359f3df3350092" + }, + "source_adoption": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-route-status-optional-capture-one-ref-source-adoption-r01/adoption.json", + "bytes": 2983, + "sha256": "31c26b3c364a5acd49a007090c92f06c23bef4b0bba05cc2b41117bf18d06089" + }, + "actual_full_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-route-status-optional-capture-full172-actual-root-review-r01/review.json", + "bytes": 271398, + "sha256": "181f259ae113c903222feb3f764703e5396e96b3a27dc9ea06c0148f3f64dfcf" + }, + "full_suites": 172, + "full_checks": 14115, + "full_parse": 303, + "full_native": 174, + "existing_refs_adopted": 1, + "maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-route-status-optional-capture-runtime-diagnostic-actual-root-review-r01/review.json", + "bytes": 6245, + "sha256": "90ec9afa72f649138044fc6a4b4d42d478508286b95c7f0851854ff7c91f5ec3" + }, + "baseline_maximum_scale_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-crosslink-unsorted-membership-runtime-diagnostic-actual-root-review-r01/review.json", + "bytes": 6247, + "sha256": "3046b1dde81815b5702d2938b3478a75d5d907b77ca19193ff97f184eed51fe7" + }, + "maximum_scale_checks": 84, + "maximum_scale_native": 2, + "all_topology_and_live_graph_checks_retained": true, + "default_rollback_capture_preserved": true, + "Operations_ON_accepted": false, + "formal_schema_changed": false, + "gameplay_values_changed": false, + "native_Windows_accepted": false, + "full_Runtime_performance_accepted": false, + "whole_goal_accepted": false + }, + "ordered_topology_candidate_rejected": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p28-current1299-route-status-ordered-topology-candidate-rejection-r01.json", + "bytes": 2936, + "sha256": "24b7db2b437a8fedf2ac832388cfb149ca6769d554fb2e0de337e2170b0976f9" + } + }, + { + "id": "P29", + "phase": 6, + "title": "Windows実機・配布版・最終監査", + "depends_on": [ + "P28" + ], + "size": "M", + "requirement_ids": [ + "B-1.1", + "B-14.1", + "B-14.2", + "B-14.3", + "B-14.4" + ], + "work": "実EXEで新規→建設→営業→保存→終了→再起動→継続を操作。入力/表示倍率/音/日本語パス/回復を確認し、ビルドとソースのハッシュを固定。75要件と追加仕様を最終再監査。", + "acceptance": "同一リリース候補のソース試験・PCK試験・Windowsネイティブ試験・プレイ記録・資産台帳が揃う。原本差異0で初めて全実装完了。工程の過去納期達成は別判定。", + "decisions": [ + "D10" + ], + "supplement_ids": [], + "owner_roles": { + "implementation": "実装担当(担当者未割当)", + "verification": "実装担当が証拠作成、受入担当が確認(担当者未割当)", + "content": "必要時に素材台帳と連携" + }, + "state_scope": "package-level; completed means whole package accepted; partial implementation is not completion", + "remaining_deliverables": [ + { + "id": "P29-01", + "title": "最新候補の書き出し", + "work": "採用済みソースだけからWindows EXE/PCKを再生成し、同梱データとZIPを確認する。", + "acceptance": "ソース・PCK・EXE・ZIPのハッシュ、同梱マニフェスト、CRCが対応する。" + }, + { + "id": "P29-02", + "title": "Windows同一版の操作", + "work": "日本語パス、新規、建設、営業、表示倍率、音、入力、保存終了再起動を実EXEで確認する。", + "acceptance": "macOS PCK実行と区別し、同一Windows版の操作記録・ログ・画面・性能を残す。" + }, + { + "id": "P29-03", + "title": "最終監査と引渡し", + "work": "原本75群、追加10項目、全施設、人物、資産、図鑑、全エンドを再監査して配布証拠をまとめる。", + "acceptance": "同じリリース候補で必須未実装0・未承認差異0・未制作0・重大不具合0。工程4件の過去納期達成は別判定。" + } + ], + "estimate_person_days_historical_2026_09_29": [ + 3, + 7 + ], + "remaining_estimate_person_days": null, + "remaining_estimate_note": "P01原子分割と現在受入の再監査後に見積。過去総工数を残工数へ転用しない。", + "legacy_execution_progress": { + "status": "Partial development Windows EXE/PCK exported; isolated pack28 and macOS rendered pack28 checks PASS; not final release acceptance", + "evidence": "execution/ORIGINAL_FACILITIES_EXPORT.md", + "remaining": [ + "all original requirements and earlier package completion", + "Windows native same-build operating acceptance", + "long-term play/performance and final traceability audit" + ], + "chapel_anri_development_package": { + "status": "Windows EXE/PCK built; isolated PCK opening28, Anri22, chapel16 and macOS rendered chapel17 PASS; ZIP CRC and hashes verified", + "evidence": "execution/CHAPEL_ANRI_WINDOWS_PACKAGE.md", + "windows_native_verified": false, + "all_original_acceptance": false + }, + "current_facility_audit": { + "status": "Live audit: original30 = normal16 + definition-only1 + unmapped13; 17 mapped dimensions/layers match; customer limits unset13. Not full acceptance.", + "evidence": "execution/CURRENT_FACILITY_AUDIT.md", + "all_original_acceptance": false + }, + "cleaning_development_package": { + "status": "Windows EXE/PCK built; isolated PCK opening28, cleaning91 and macOS rendered cleaning92 PASS; ZIP CRC and SHA256 verified", + "evidence": "execution/CLEANING_WINDOWS_PACKAGE.md", + "windows_native_verified": false, + "all_original_acceptance": false + }, + "current_windows_package": { + "status": "source_full_rendered_restart_and_packed_verified", + "evidence": "artifacts/windows-event-defense-labels-release-prep-2026-09-30/", + "zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "windows_native": false, + "all_original_acceptance": false + }, + "staff_drag_demolition": { + "status": "Live pointer drag with normal demolition command before drop preserves staff schedules, keeps facility removed and reports rejection. Source106 and isolated same-PCK macOS rendered107 PASS. Production unchanged; Windows native access unavailable in current tools.", + "evidence": "execution/STAFF_DRAG_DEMOLITION.md", + "all_original_acceptance": false + }, + "staff_defense_lock": { + "state": "partial_verified", + "evidence": "execution/STAFF_DEFENSE_LOCK.md", + "checks": 119, + "related_checks": 321, + "rendered_checks": 119, + "opening_restart": "97 checks PASS; equal gameplay; source changes 0", + "remaining": [ + "current Windows package/native verification", + "broader original requirements" + ] + }, + "defense_preparation_cancel": { + "state": "verified", + "evidence": "execution/DEFENSE_PREPARATION_CANCEL.md", + "targeted_checks": 856, + "rendered_checks": 131, + "full_regression": "140 PASS; no source changes" + }, + "current_full_regression": { + "status": "source_full_rendered_readable_restart_and_windows_packed_verified", + "full_suites": 148, + "full_failures": 0, + "full_seconds": 657.68, + "source_changes": [], + "opening_restart_checks": 103, + "related_rendered_checks": 453, + "related_headless_checks_referenced_from_same_full": 720, + "defense_restart_checks": 66, + "human_readable_defense_labels": true, + "full_source_manifest_sha256": "0395e515c1cb090408c11c7235b36f8b2015bf350fe412b2d894b286b249ef6c", + "windows_package": "built_and_verified", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "windows_zip": "build/windows/TheTree-Windows-event-defense-labels-2026-09-30.zip", + "windows_zip_sha256": "2e22d793d113fa3f2eba4839d6812ec69f9762bdfe86c8804b943f79f4b1bad4", + "packed_runs": 18, + "packed_checks": 2926, + "packed_headless_checks": 2468, + "packed_rendered_checks": 458, + "evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "actor_selection_restore": { + "status": "source_full_and_rendered_restart_verified", + "headless_checks": 100, + "rendered_checks": 101, + "related_checks": 552, + "production_main_sha256": "15708bfb4d534b4f741df5b087fa56ebf36bb9ca004bb80e0bd9c43d07e6c9f1", + "actor_test_sha256": "ecc08464c20990f0a4bd5d1e5d8d6fceb6f3636c959790842a08539fc54ad911", + "full_regression": "144 PASS; no missing, extra, duplicate or changed source inputs", + "windows_export": "Windows EXE/PCK exported; isolated PCK on macOS and ZIP integrity verified; Windows native pending", + "windows_native": false, + "all_original_acceptance": false, + "full_suites": 144, + "full_opening_restart_checks": 103, + "actor_restart_checks": 116, + "opening_restart_checks": 103, + "full_regression_artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "full_source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "actor_restart": { + "status": "verified", + "write_checks": 103, + "read_checks": 13, + "checks": 116, + "gameplay_json_equal": true, + "typed_digest_equal": true, + "source_changes": 0, + "evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "driver_sha256": { + "verify.py": "52d4e7e7ee1561867aab3db98704ae27d8ca3237d80dea0d39acda64ca7fed5a", + "flow.gd": "4de71e591925c022a1febeb7ac4a99a3557afa79f8c46bd5cac447934030f1c3" + } + }, + "independent_review": { + "status": "no_actionable_product_findings", + "evidence": "artifacts/actor-selection-independent-review-2026-09-30/review.json", + "sha256": "9de10628a3831e236bb951f4d674e3327767fbce7af8bc3c1c7a2f4468f6ddac" + }, + "windows_export_session": 88628, + "windows_build_validation": "verified; 12 isolated PCK runs / 2094 checks including rendered repetitions", + "evidence": "execution/ACTOR_SELECTION_RESTORE.md", + "windows_build_process_complete": true, + "windows_package": { + "zip": "build/windows/TheTree-Windows-actor-selection-2026-09-30.zip", + "sha256": "dbf82a93777d1dc46c9ed0b6c32b84b03177756aed6c080bcbbde0e24ff24ffb", + "actor_headless_checks": 101, + "actor_rendered_macos_checks": 102, + "evidence": "artifacts/windows-actor-release-prep-2026-09-30/build-validation.json", + "windows_native": false, + "all_original_acceptance": false + } + }, + "defense_autonomy_checkpoint": { + "state": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "full_suites": 146, + "full_failures": 0, + "source_changes": 0, + "opening_rendered_checks": 103, + "defense_restart_rendered_checks": 38, + "full_evidence": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30", + "windows_native": false, + "natural_threat_generation": false, + "all_original_acceptance": false, + "packed_runs": 16, + "packed_checks": 2559, + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "zip_sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc" + }, + "previous_full_regression_before_defense_autonomy": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 144, + "opening_restart_checks": 103, + "windows_native": false, + "artifact": "artifacts/full-regression-after-actor-selection-2026-09-30", + "source_changes": 0, + "later_source_change": null, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 762.12, + "actor_restart_checks": 116, + "actor_restart_evidence": "artifacts/actor-selection-restart-2026-09-30/verification.json", + "source_manifest_sha256": "a16bd4acb9576357b93eb9c79f82b0707fa89a37d1dd18cefc20a14ad4393412", + "all_original_acceptance": false + }, + "previous_windows_package_before_defense_autonomy": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/CURRENT_WINDOWS_PACKAGE.md", + "zip": "build/windows/TheTree-Windows-actor-selection-2026-09-30.zip", + "bytes": 73155439, + "sha256": "dbf82a93777d1dc46c9ed0b6c32b84b03177756aed6c080bcbbde0e24ff24ffb", + "build_id": "actor-selection-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 12, + "packed_headless_checks": 1743, + "packed_rendered_checks": 351, + "packed_rendered_staff_checks": 132, + "packed_total_checks_including_replays": 2094, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 144, + "source_opening_restart_checks": 103, + "source_actor_restart_checks": 116, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 849, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "697577f0d33d400d887d8f398d2afb02cb19c452aaad92e5a486d07b9718303d", + "source_manifest_sha256": "afdc8638ae17ce37545ef12bf337bccf4a6e8a4b5a09f4b8bdee55d3f0543bc4", + "validation_artifact": "artifacts/windows-actor-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false, + "previous_development_package": { + "zip": "build/windows/TheTree-Windows-snapshot-reuse-2026-09-29.zip", + "sha256": "03629ba3325aeecb135f199c192e0ffbcb4fae539f1f0dff1c3d76495ff0f842", + "packed_headless_checks": 1527, + "packed_rendered_staff_checks": 132 + } + }, + "previous_full_regression_before_manifest_cache": { + "status": "source_and_rendered_verified", + "evidence": "execution/FULL_REGRESSION_BEFORE_MANIFEST_CACHE.md", + "suites": 146, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 743.93, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "defense_restart_evidence": "artifacts/defense-autonomy-restart-2026-09-30/verification.json", + "artifact": "artifacts/full-regression-after-defense-autonomy-2026-09-30", + "source_changes": 0, + "source_manifest_sha256": "afd27dc86d0125d5547cf58beda9461dec34fd38c0fc94e85a96e7f82d2896a5", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "previous_windows_package_before_manifest_cache": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/WINDOWS_PACKAGE_BEFORE_MANIFEST_CACHE.md", + "zip": "build/windows/TheTree-Windows-defense-autonomy-2026-09-30.zip", + "bytes": 73190478, + "sha256": "2427d259fd31f846f215eaca8ea3cccdec899dc0e7d49e8ab8a1884eb2cbeefc", + "build_id": "defense-autonomy-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 16, + "packed_headless_checks": 2151, + "packed_rendered_checks": 408, + "packed_total_checks_including_replays": 2559, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102, + "defense-cycle": 163, + "defense-autonomy": 189, + "defense-management": 56, + "defense-management-rendered": 57 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 146, + "source_opening_restart_checks": 103, + "source_defense_restart_checks": 38, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 851, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "8d7ba120e35593fffcadf08174b32c91b78e8892a454393535975500f2309081", + "source_manifest_sha256": "49e05221691a06e2781a720b734f38f7996be1237cf3738e2f0c7f737f794fe9", + "validation_artifact": "artifacts/windows-defense-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false + }, + "manifest_cache_checkpoint": { + "state": "retained_source_full_rendered_restart_packed_verified", + "full_suites": 147, + "full_failures": 0, + "source_changes": [], + "live_manifest_checks": 79, + "complete_checkpoint_and_final_store_var_bytes_equal": true, + "abbreviated_comparison_order": "ABBA", + "frames_per_speed_per_run": 200, + "x1_average_reduction_percent": 10.479991918650523, + "x3_p95_reduction_percent": 17.835132792182208, + "publication_average_reduction_percent": 17.883028279234804, + "opening_restart_checks": 103, + "related_rendered_checks": 403, + "related_headless_from_same_source_full_checks": 484, + "defense_restart_checks": 38, + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_checks_including_replays": 2639, + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "zip_sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "full_source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "natural_threat_generation": false, + "windows_native": false, + "performance_budget_pass": false, + "full_load_acceptance": false, + "all_original_acceptance": false + }, + "event_defense_integration": { + "status": "integrated_current_source_full_and_restart_verified", + "evidence": "artifacts/event-defense-integration-2026-09-30/", + "runtime_schema": 13, + "event_checks": 186, + "natural_producer_complete": false, + "all_original_acceptance": false, + "full_evidence": "artifacts/full-regression-after-event-defense-labels-2026-09-30/" + }, + "previous_full_regression_before_event_defense": { + "status": "source_and_rendered_verified", + "evidence": "execution/CURRENT_FULL_REGRESSION.md", + "suites": 147, + "failures": 0, + "missing": 0, + "extra": 0, + "duplicates": 0, + "suite_seconds": 708.21, + "opening_restart_checks": 103, + "defense_restart_checks": 38, + "related_rendered_checks": 403, + "artifact": "artifacts/full-regression-after-manifest-cache-2026-09-30", + "defense_restart_evidence": "artifacts/manifest-cache-defense-restart-2026-09-30/verification.json", + "source_changes": 0, + "source_manifest_sha256": "c09bc629442d319a3e4b928859213d23735943cfb32d91855f50380d5724449d", + "later_source_change": null, + "windows_native": false, + "all_original_acceptance": false + }, + "previous_windows_package_before_event_defense": { + "status": "packed_verified_windows_native_pending", + "evidence": "execution/CURRENT_WINDOWS_PACKAGE.md", + "zip": "build/windows/TheTree-Windows-manifest-cache-2026-09-30.zip", + "bytes": 73192182, + "sha256": "b90d6ae5f7e5f23e1d77084bd28226317e1c52a613fdb079bf036babe9dded37", + "build_id": "manifest-cache-2026-09-30", + "export_mode": "debug", + "architecture": "Windows x86_64 PE32+", + "engine": "4.7.2.stable.official.ed1daf0bf", + "packed_runs": 17, + "packed_headless_checks": 2231, + "packed_rendered_checks": 408, + "packed_total_checks_including_replays": 2639, + "packed_checks": { + "operations": 850, + "opening": 28, + "defense": 508, + "staff": 132, + "staff-rendered": 132, + "hud": 9, + "autosave": 76, + "autosave-rendered": 77, + "selection": 39, + "selection-rendered": 40, + "actor": 101, + "actor-rendered": 102, + "defense-cycle": 163, + "defense-autonomy": 189, + "defense-management": 56, + "defense-management-rendered": 57, + "manifest-cache": 80 + }, + "packed_rendering_platform": "macOS Apple M4 OpenGL compatibility", + "source_suites": 147, + "source_opening_restart_checks": 103, + "source_defense_restart_checks": 38, + "zip_crc_pass": true, + "zip_file_hashes_pass": true, + "source_changes": 0, + "clone_import_input_changes": 0, + "copied_runtime_inputs": 851, + "exe_sha256": "c52c04ae1283256102b446df50499420d29ab11758041b8abfc043b61dd270a1", + "pack_sha256": "a393d90ab602f9cbe3c5092535b03f910b2217b2e3ba0e45a02c955e423ab8ee", + "source_manifest_sha256": "a9476841dcb6dba6697380b9f8005617986c04d23b6ef29b287bd351f437102f", + "validation_artifact": "artifacts/windows-manifest-release-prep-2026-09-30/build-validation.json", + "later_source_change": null, + "windows_native": false, + "performance_budget_pass": false, + "all_original_acceptance": false + }, + "defense_human_labels": { + "status": "source_full_rendered_restart_and_packed_verified_windows_native_pending", + "evidence": "artifacts/event-defense-labels-integration-2026-09-30/", + "isolated_checks": 1350, + "all_original_acceptance": false, + "full_suites": 148, + "restart_checks": 66, + "rendered_checks": 453, + "packed_checks": 2926, + "windows_native": false + }, + "previous_full_regression_before_event_labels": { + "status": "running", + "evidence": "artifacts/full-regression-after-event-defense-2026-09-30/", + "expected_suites": 148, + "all_original_acceptance": false + } + }, + "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", + "current_windows1287_checkpoint": { + "at_jst": "2026-10-08T04:31:25.100872+09:00", + "source_files": 1287, + "actual_export_native": 2, + "original_export_wrapper_passed": false, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-paid-role-export-actual-root-review-r02/review.json", + "bytes": 3567, + "sha256": "a0661b29751c9d26e616c492cd6037fd48d93d051fac7ff898044db8610cd13b" + }, + "actual_same_PCK_mac_checks": 610, + "actual_same_PCK_mac_native": 5, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-paid-role-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 2537, + "sha256": "091e577aa46fefca7937a099867e099dd15e8ce04358cea610bdb7c6f83bce2f" + }, + "native_kit_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-paid-role-native-kit-actual-root-review-r01/review.json", + "bytes": 1057, + "sha256": "627e8c6de45cefb5d14ad4eb25845053cc26e27a5d56a2c2869bbd1146e30097" + }, + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "whole_goal_accepted": false, + "PowerShell_syntax_parse": "unverified", + "Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false + }, + "current_command_ownership_windows1287_checkpoint": { + "at_jst": "2026-10-08T06:47:45.911982+09:00", + "source_files": 1287, + "current_full_checks": 13972, + "actual_export_native": 2, + "actual_export_wrapper_passed": true, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-export-actual-root-review-r01/review.json", + "bytes": 3569, + "sha256": "492e0c01e715cc3b69ff5e569b549ba0c7a9a071e8c8536abfd3cea8b9b0e072" + }, + "actual_same_PCK_mac_checks": 661, + "actual_same_PCK_mac_native": 6, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 2725, + "sha256": "4ba78be932308e346b00bbccd1db04e41d9444cf1a09ca68080401f67e764dfa" + }, + "current_source_Windows_build_required": false, + "current_native_kit_update_required": true, + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "PCK_sha256": "9001c908bd47b9779e0567d7ddd8b233978de01a56da77f7c37eb675e9044a2a", + "ZIP_sha256": "3ae4e21419fabbe98f248fd8b26de60dd26a550cf2e286bf57564f4b1b91d236", + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "PowerShell_syntax_parse": "unverified", + "Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false, + "whole_goal_accepted": false + }, + "current_command_ownership_windows_native_kit_checkpoint": { + "at_jst": "2026-10-08T07:02:02.524348+09:00", + "source_files": 1287, + "current_full_checks": 13972, + "actual_export_native": 2, + "actual_export_wrapper_passed": true, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-export-actual-root-review-r01/review.json", + "bytes": 3569, + "sha256": "492e0c01e715cc3b69ff5e569b549ba0c7a9a071e8c8536abfd3cea8b9b0e072" + }, + "actual_same_PCK_mac_checks": 661, + "actual_same_PCK_mac_native": 6, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 2725, + "sha256": "4ba78be932308e346b00bbccd1db04e41d9444cf1a09ca68080401f67e764dfa" + }, + "current_source_Windows_build_required": false, + "current_native_kit_update_required": false, + "actual_native_kit_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-native-kit-actual-root-review-r01/review.json", + "bytes": 1065, + "sha256": "8f30861acecd60a8e2992eeb882a95a832caaef7623c4270f9a52e1f9ad852d7" + }, + "actual_native_transfer_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-native-transfer-actual-root-review-r01/review.json", + "bytes": 2144, + "sha256": "ef80bf2fd18bcb6f39a31242e35e68ccda3a94968c340177c50ce0e7e1cf7b23" + }, + "new_native_processes_this_checkpoint": 0, + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "PCK_sha256": "9001c908bd47b9779e0567d7ddd8b233978de01a56da77f7c37eb675e9044a2a", + "ZIP_sha256": "3ae4e21419fabbe98f248fd8b26de60dd26a550cf2e286bf57564f4b1b91d236", + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "PowerShell_syntax_parse": "unverified", + "Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false, + "whole_goal_accepted": false + }, + "current_powershell_mac_parse_compile_checkpoint": { + "at_jst": "2026-10-08T07:05:04.286721+09:00", + "source_files": 1287, + "current_full_checks": 13972, + "actual_export_native": 2, + "actual_export_wrapper_passed": true, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-export-actual-root-review-r01/review.json", + "bytes": 3569, + "sha256": "492e0c01e715cc3b69ff5e569b549ba0c7a9a071e8c8536abfd3cea8b9b0e072" + }, + "actual_same_PCK_mac_checks": 661, + "actual_same_PCK_mac_native": 6, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 2725, + "sha256": "4ba78be932308e346b00bbccd1db04e41d9444cf1a09ca68080401f67e764dfa" + }, + "current_source_Windows_build_required": false, + "current_native_kit_update_required": false, + "actual_native_kit_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-native-kit-actual-root-review-r01/review.json", + "bytes": 1065, + "sha256": "8f30861acecd60a8e2992eeb882a95a832caaef7623c4270f9a52e1f9ad852d7" + }, + "actual_native_transfer_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-command-ownership-native-transfer-actual-root-review-r01/review.json", + "bytes": 2144, + "sha256": "ef80bf2fd18bcb6f39a31242e35e68ccda3a94968c340177c50ce0e7e1cf7b23" + }, + "new_native_processes_this_checkpoint": 0, + "actual_PowerShell_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1287-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2049, + "sha256": "78461b824615f216308c1fa0687a3d74b8f89887881703d0dc3173f20d4b4774" + }, + "PowerShell_7_mac_parse_passed": true, + "Csharp_7_mac_compile_passed": true, + "Windows_PowerShell_5_1_parse": "unverified", + "Windows_Csharp_compile": "unverified", + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "PCK_sha256": "9001c908bd47b9779e0567d7ddd8b233978de01a56da77f7c37eb675e9044a2a", + "ZIP_sha256": "3ae4e21419fabbe98f248fd8b26de60dd26a550cf2e286bf57564f4b1b91d236", + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "PowerShell_syntax_parse": "unverified", + "Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false, + "whole_goal_accepted": false + }, + "current_paired_bgm_windows1295_checkpoint": { + "at_jst": "2026-10-08T09:30:31.665542+09:00", + "source_files": 1295, + "current_full_suites": 171, + "current_full_checks": 14051, + "actual_export_native": 2, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1295-paired-bgm-export-actual-root-review-r01/review.json", + "bytes": 3534, + "sha256": "8eaa55f89f4b6a755b23eb7cc10f34843c356ba2a925b06bcd3b17bdd45097b0" + }, + "actual_same_PCK_mac_checks": 740, + "actual_same_PCK_mac_native": 7, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1295-paired-bgm-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 8259, + "sha256": "169e462cf35b71b025d3f76a53817d4954a0e9477ebc3b0a152b2ab2a168c1be" + }, + "audio_driver": "CoreAudio", + "BGM_PCM_files_rechecked": 9, + "Runtime_typed_pairs_rechecked": 3, + "current_source_Windows_build_required": false, + "current_native_kit_update_required": false, + "native_kit_files": 2592, + "native_kit_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1295-paired-bgm-native-kit-actual-root-review-r01/review.json", + "bytes": 1058, + "sha256": "a514836e20e09c4fe86392f80aa1973ec54ec53d23ba1c4dec8a7bdc2dc53916" + }, + "transfer": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1295-paired-bgm-native-kit-transfer-r01/transfer.json", + "bytes": 760, + "sha256": "a015dce6f110ea68e93328b802137e9e1e4fc29a84195a5df330b835aee5e061" + }, + "mac_PowerShell7_parse_compile_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1295-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2049, + "sha256": "25e7cf1b4925f08a4aef15466d7947c22cee884197c766ad2a71fc4ede913393" + }, + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "PCK_sha256": "f6341d08bec7b3855fb83332b0e8acb58c5e6a05126eb199e8f97d3230f7d36d", + "ZIP_sha256": "3629b95d385336fa2266002dbe6bc4619e241857c8c352daa2a8d39979a9c52b", + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "Windows_PS51_parse": "unverified", + "Windows_Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "human_hearing_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false, + "whole_goal_accepted": false + }, + "current_tomari_windows1297_checkpoint": { + "at_jst": "2026-10-08T10:52:12.992265+09:00", + "source_files": 1297, + "current_full_suites": 172, + "current_full_checks": 14115, + "actual_export_native": 2, + "actual_export_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1297-tomari-export-actual-root-review-r01/review.json", + "bytes": 3510, + "sha256": "92a58e930a6b6c7f30c44d18f8b9c02cde0f1554909bec77799e4f9fb1afb10d" + }, + "actual_same_PCK_mac_checks": 804, + "actual_same_PCK_mac_native": 8, + "actual_same_PCK_mac_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1297-tomari-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 8412, + "sha256": "f7ea6965adcc0e3d5bb6c2c40f7a42118a095e0755b5260e0cabbb32ba981eff" + }, + "audio_driver": "CoreAudio", + "BGM_PCM_files_rechecked": 9, + "Runtime_typed_pairs_rechecked": 3, + "Tomari_fixture_checks": 64, + "current_source_Windows_build_required": false, + "current_native_kit_update_required": false, + "native_kit_files": 2620, + "native_kit_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1297-tomari-native-kit-actual-root-review-r01/review.json", + "bytes": 1054, + "sha256": "b90cbb403fae1dcb2d0201b161aeeb5db8271c62e505a2d73fbc01133ba419b3" + }, + "transfer": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1297-tomari-native-kit-transfer-r01/transfer.json", + "bytes": 752, + "sha256": "e14f00a7fe6741e2af377a5cc55b51bfcdf7fd7e32336b2faa54579e2e5a2ce9" + }, + "mac_PowerShell7_parse_compile_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1297-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2102, + "sha256": "deced7af4c9511f35d7724d3f06456e2b0a32fa2ccac08a733fd899360dad435" + }, + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "PCK_sha256": "cd72309669a42f5800a86a7844c993ed2aa4cf154d5b204b71475e6ac32d0d17", + "ZIP_sha256": "e0cd51f9c1305cb293adeac44eeab59e1e49002f57e46448f4df6791ed78ea5a", + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "Windows_PS51_parse": "unverified", + "Windows_Csharp_compile": "unverified", + "normal_Main_OS_input_accepted": false, + "human_hearing_accepted": false, + "final_assets_accepted": false, + "performance_accepted": false, + "whole_goal_accepted": false, + "current_status_table_rechecked": true, + "current_status_table_rechecked_at_jst": "2026-10-08T10:53:37.193326+09:00" + }, + "current_Windows1299_unsorted_membership_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T15:41:21.071531+09:00", + "source_files": 1299, + "evidence": { + "export": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-export-actual-root-review-r01/review.json", + "bytes": 3592, + "sha256": "29c8aaca0574c14d5663587cfd12f526456f6400ef6202bb936d5c930f77c987" + }, + "same_pck_mac": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 8489, + "sha256": "08b01689f812a128989d8e5aa9e826bf9a151ee70e0416cf6c0701850a4e4856" + }, + "kit": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-native-kit-actual-root-review-r01/review.json", + "bytes": 1067, + "sha256": "ed43aa411068e8a7fff53b95a25194748c4ae895dcf040fc385eebd928e817f6" + }, + "PowerShell_mac": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2101, + "sha256": "8b3ee7f510c9c7baf3758d42ffd8981690c7be07d87484a7b0fb0d6e55fb6096" + }, + "transfer": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-unsorted-membership-native-kit-transfer-r01/transfer.json", + "bytes": 778, + "sha256": "e601cd9044fe03ad835fef334633fb397e948261ff3e578db200e05c4d8e2be7" + } + }, + "mac_same_PCK_suites": 8, + "mac_same_PCK_checks": 804, + "kit_manifest_files": 2620, + "transfer_ZIP_members": 2621, + "PowerShell_mac_parse_scripts": 2, + "Csharp_mac_compile_passed": true, + "ZIP_CRC_verified": true, + "native_Windows_actual_launches": 0, + "native_Windows_accepted": false, + "Windows_PowerShell_5_1_parse": "unverified", + "Windows_Csharp_compile": "unverified", + "normal_OS_input_accepted": false, + "finished_EXE_assets_accepted": false, + "whole_goal_accepted": false + }, + "current_optional_capture_release_candidate_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T17:26:19.205829+09:00", + "actual_root_review": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-export-actual-root-review-r01/review.json", + "bytes": 3578, + "sha256": "4d747e10dfb9faedf3bc5ffbcb5095d35909ef4fb8d53ec81e223cc1e03cf688" + }, + "actual_native": 2, + "source_files": 1299, + "runtime_inputs": 886, + "actual_source_full_checks": 14115, + "actual_source_full_suites": 172, + "EXE": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-release-candidate-r01-46fc6c398e3d42a4a0a55646d495b070/distribution/TheTree/TheTree.exe", + "bytes": 109268480, + "sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562" + }, + "PCK": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-release-candidate-r01-46fc6c398e3d42a4a0a55646d495b070/distribution/TheTree/TheTree.pck", + "bytes": 54201240, + "sha256": "84be6eb5d1894a2169fbd8efa2f780b486af3aaad06f6c57f36416d8fd521440" + }, + "ZIP_sha256": "e593c0c4675672d773b91e8297a7380f18c2750ba05c205c44426ef14d00d96f", + "official_PE32_x64_verified": true, + "PCK_UID_member_MD5_verified": true, + "ZIP_all_member_CRC_SHA_verified": true, + "source_and_default_unchanged": true, + "source_mutations": 0, + "current_same_PCK_mac_accepted": false, + "current_native_kit_updated": false, + "current_transfer_kit_updated": false, + "native_Windows_accepted": false, + "normal_OS_input_accepted": false, + "whole_goal_accepted": false, + "product_release_approval": false + }, + "current_optional_capture_windows_validation_kit_checkpoint": { + "issued_by": "/root", + "linked_at_jst": "2026-10-08T17:45:14.032826+09:00", + "actual_same_PCK_mac_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-same-pck-mac-actual-root-review-r01/review.json", + "bytes": 8491, + "sha256": "83d09dbbbdd8d2ba095763970b757ddde033dbbacdfbfc61a5e6e3f336f5df42" + }, + "actual_kit_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-native-kit-actual-root-review-r01/review.json", + "bytes": 1064, + "sha256": "2733d6149c532f16b04e42d926b50c500f17a8df5cab28c605c2a09742dc09dd" + }, + "actual_transfer_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-transfer-actual-root-review-r01/review.json", + "bytes": 1483, + "sha256": "f44726e15f5c1378911cab2ebc8278db62a818f4c1158e76138b8f7ea49e9361" + }, + "actual_PowerShell_mac_root": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-powershell-mac-parse-compile-actual-root-review-r01/review.json", + "bytes": 2153, + "sha256": "a3ec60c4d08036fd109c6e6b107e386a5277f39ca023ecb8bd7669c21dfc9733" + }, + "PCK_sha256": "84be6eb5d1894a2169fbd8efa2f780b486af3aaad06f6c57f36416d8fd521440", + "EXE_sha256": "d34d36f3be1a6c49c56525ae86469b92e4f417ddf0b43cf00dd80c385c4b0562", + "distribution_ZIP_sha256": "e593c0c4675672d773b91e8297a7380f18c2750ba05c205c44426ef14d00d96f", + "same_PCK_mac_checks": 804, + "same_PCK_mac_native": 8, + "kit_files": 2620, + "transfer_members": 2621, + "kit_manifest_sha256": "fe542e5773cc6e926c43776c89c363767c11a8e133d4f6f6573b69176f82a770", + "transfer_ZIP": { + "path": "/Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/windows-current1299-optional-capture-native-kit-transfer-r01/TheTree-Windows-current1299-optional-capture-validation-kit.zip", + "bytes": 7002245, + "sha256": "ad3918eca0486b2c1f2b6cff00833ae8173f4b8323b4ed601de52458a96d9194" + }, + "whole_actual_raw_and_private_profiles_rechecked": true, + "all_native_script_bodies_literal_except_finite_context": true, + "PowerShell7_mac_parse_passed": true, + "Csharp7_mac_compile_passed": true, + "all_ZIP_CRC_and_known_vector_verified": true, + "Windows_PS5_1_parse_accepted": false, + "Windows_Csharp_compile_accepted": false, + "Windows_DLLs_executed": false, + "native_Windows_accepted": false, + "normal_OS_input_accepted": false, + "human_hearing_accepted": false, + "whole_goal_accepted": false, + "source_mutations": 0 + }, + "current_distribution_rebuild_required_after_staff_selection": true, + "current_distribution_rebuild_required_after_guest_selection": true, + "current_distribution_rebuild_required_after_defense_selection": true + } + ] + }, + "docs/plans/original-completion-2026-10-02/decisions.json": { + "sha256": "ad0673051b0fa601e525f05128e0b11e2dddd9d4bae6a3e0170bbf47da35efe9", + "anchored_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..23dc372 --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/REACHABILITY_TABLE.md @@ -0,0 +1,695 @@ +# 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 + +missing / owner: P19-01 + +既存UIには汎用関係イベントの確認/保留ラベルがある。原本の行動・決闘選択・自然ルート到達は欠損。 + +原本 docs/traceability/original/BASELINE.txt:154–157 + +```text +## 7.5 ルート攻略とプレイヤーアクション + * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。 + * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。 + * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 +``` + +実装証拠: "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 + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:141–141 + +```text + * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。 +``` + +実装証拠: "original conformance missing" + +### post_break_metric + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:142–143 + +```text + * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。 + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: "original conformance missing" + +### barrier_block + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:143–143 + +```text + * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。 +``` + +実装証拠: "original conformance missing" + +### coassignment_attack + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:145–145 + +```text + 1. **盾への攻撃:** ライバルと同配置時、盾耐久値が減少。 +``` + +実装証拠: "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 + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:146–146 + +```text + 2. **ブレイク:** 耐久値0で「心の隙間」発生。 +``` + +実装証拠: "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 + +missing / owner: P18-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:147–147 + +```text + 3. **NTR進行:** ライバル接触で直接NTR度が上昇。 +``` + +実装証拠: "original conformance missing" + +### threshold_route_loss + +missing / owner: P18-03 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:148–148 + +```text + 4. **陥落確定:** NTR度が閾値越えで盾が消滅。純愛ルート完全消失。 +``` + +実装証拠: "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 + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:150–151 + +```text +NTR阻止のための直接的解決手段。 + * **種類:** 武力決闘、商談決闘、夜の決闘(性技対決)。 +``` + +実装証拠: "original conformance missing" + +### duel_win + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:152–152 + +```text + * **リターン:** ライバル追放・隷属化、「愛の盾」全回復。 +``` + +実装証拠: "original conformance missing" + +### duel_loss + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:153–153 + +```text + * **リスク:** 敗北時、ヒロインを即座に強奪されNTRルート確定。 +``` + +実装証拠: "original conformance missing" + +### love_actions + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:155–155 + +```text + * **純愛:** デート・会話で盾を回復。ライバルを物理的に隔離、または決闘で排除。 +``` + +実装証拠: "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 + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:156–156 + +```text + * **NTR:** 意図的に放置・アングラ労働で盾を弱体化させ、覗き部屋から寝取られる過程を鑑賞する。 +``` + +実装証拠: "original conformance missing" + +### corruption_actions + +missing / owner: P19-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:157–157 + +```text + * **堕落:** 媚薬や地下業務で淫乱度を上げ、盾の耐久値上限を溶かして家畜化させる。 +``` + +実装証拠: "original conformance missing" + +### history_fields + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:159–159 + +```text + * **履歴:** 処女喪失相手、経験数、現在のパートナーを記録。 +``` + +実装証拠: "original conformance missing" + +### history_cycle_parentage + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:160–160 + +```text + * **妊娠:** 排卵日あり。父親判定、妊婦期の外見・ステータス変化。 +``` + +実装証拠: "original conformance missing" + +### portrait_marks + +missing / owner: P26-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:161–161 + +```text + * **刻印:** 指輪(純愛)、キスマーク(NTR)、淫紋・首輪・焼印(堕落・家畜)が立ち絵に反映される。 +``` + +実装証拠: "original conformance missing" + +### route_skills + +missing / owner: P20-01 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:132–132 + +```text + * **ルート変化:** 純愛/堕落などの進行度で習得するスキルが変化する。 +``` + +実装証拠: "original conformance missing" + +### departure + +missing / owner: P19-02 + +原本の共通要求。専用原本モデルにはこの更新・表示の実装なし。旧汎用モデルの数値やルートを代用しない。 + +原本 docs/traceability/original/BASELINE.txt:135–135 + +```text + * **離脱:** 原則ロストしないが、防衛戦敗北での一時拉致や、特定バッドエンド確定時にのみ敵や背景オブジェクト化する。 +``` + +実装証拠: "original conformance missing" + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## 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, 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] + +## ルート別適用性 + +### 純愛 + +- 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 + +Authority snapshots: anchored_base_commit=8ca9263fee1ec4374d97c01fda82b95e1df6a977; JSON retains anchored blob SHA-256 and projected definition records. + +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..10cf52d --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/check_reachability_table.py @@ -0,0 +1,367 @@ +#!/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_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', 'トマリ'), + ('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' + +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() + + +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_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') + 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, + 'TASK_SPEC_file_bytes_sha256': SPEC_FILE_BYTES_SHA256, + 'Runner_git_show_stripped_UTF8_contract_spec_sha256': RUNNER_CONTRACT_SPEC_SHA256} + + +# Exact key-level BASE -> 6e17cae/1875b03 diff; no prefix/wildcard exclusions. +PACKAGE_MUTABLE = frozenset(("state", "legacy_state", "current_summary", "updated_at_jst")) +UNIT_MUTABLE = frozenset(( + "state", "current_execution", "remaining_gaps", "updated_at_jst", + "submitted_commit", "current_summary", "progress_summary", "evidence", + # Normal final/source references: these names already occur in BASE units. + "completed_at_jst", "implementation_commit", "integrated_commit", + "integration_commit", "normal_integration_candidate", +)) + + +def definition_projection(register): + require(type(register) is list, "package register must be a list") + projected = [] + for package in register: + require(type(package) is dict, "package must be an object") + record = {k: v for k, v in package.items() if k not in PACKAGE_MUTABLE} + units = record.get("remaining_deliverables") + require(type(units) is list, "deliverables must be a list") + require(all(type(unit) is dict for unit in units), "unit must be an object") + record["remaining_deliverables"] = [ + {k: v for k, v in unit.items() if k not in UNIT_MUTABLE} for unit in units] + projected.append(record) + return projected + + +def validate_register(root, name, current): + anchored = blob(root, BASE, PLAN + name) + if name == "work_packages.json": + # JSON serialization preserves types (True must not compare equal to 1). + encode = lambda value: json.dumps(definition_projection(decode(value)), + ensure_ascii=False, sort_keys=True) + require(encode(current) == encode(anchored), + "original definition changed: " + name) + else: + require(current == anchored, "original register changed: " + name) + return anchored + + +def expected(root): + raw = lambda p: (root / p).read_bytes() + require(sha(raw(BASELINE)) == BASE_HASH, 'baseline changed') + anchored = {name: validate_register(root, name, raw(PLAN + name)) + for name in ('atomic_requirements.json', 'work_packages.json', 'decisions.json')} + 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 '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 = [ + 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', 98, 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)) + 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(anchored['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(anchored['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', '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 = {} + 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} + 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, + 'identity_policy': '原本§6の名前とatomic entity.keyを監査IDに使用。実装IDを捏造しない。カタログにはheroine_anriのみ。OriginalRelationshipStateはsubject_idを保持し7名の列挙はしない。', + 'source_anchor': ANCHOR, 'common_rules': rules, 'cells': cells, + 'authority_snapshots': {PLAN + name: { + 'sha256': sha(data), 'anchored_base_commit': BASE, + 'records': definition_projection(decode(data)) if name == 'work_packages.json' + else decode(data) if name == 'decisions.json' else atoms} + for name, data in anchored.items()}, + '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, 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) == + 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), ''] + 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(): + 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'])] + 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(): + lines += ['### ' + route, ''] + lines += ['- ' + k + ': ' + v for k, v in support.items() if isinstance(v, str)] + lines += ['- 欠損機構: ' + ', '.join(support['missing_mechanisms']), ''] + lines += ['Authority snapshots: anchored_base_commit=' + BASE + + '; JSON retains anchored blob SHA-256 and projected definition records.', ''] + 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) + 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})) + 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..eb9c76e --- /dev/null +++ b/docs/plans/original-completion-2026-10-02/execution/p19-03/test_reachability_table.py @@ -0,0 +1,284 @@ +#!/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 register_output(self, data): + original = Path.read_bytes + def read(path): + return data if path == ROOT / audit.PLAN / "work_packages.json" else original(path) + with patch.object(Path, "read_bytes", read): + document = audit.expected(ROOT) + import json + self.assertEqual(json.dumps(document, ensure_ascii=False, indent=2) + "\n", + (ROOT / audit.OUT / "REACHABILITY_TABLE.json").read_text()) + self.assertEqual(audit.markdown(document).encode(), + (ROOT / audit.OUT / "REACHABILITY_TABLE.md").read_bytes()) + + def test_actual_main_and_candidate_metadata(self): + for commit in ("6e17cae", "1875b03"): + with self.subTest(commit=commit): + self.register_output(audit.blob(ROOT, commit, audit.PLAN + "work_packages.json")) + + def test_final_ledger_metadata(self): + import json + register = audit.decode(audit.blob(ROOT, audit.BASE, audit.PLAN + "work_packages.json")) + package = next(p for p in register if p["id"] == "P19") + unit = next(u for u in package["remaining_deliverables"] if u["id"] == "P19-03") + package.update(state="completed", legacy_state="completed", + current_summary="ledger completion", updated_at_jst="2026-10-17") + unit.update({key: "synthetic final reference" for key in audit.UNIT_MUTABLE}) + unit["evidence"] = [{"path": "docs/final.json", "sha256_at_integration": "0" * 64}] + unit["remaining_gaps"] = [] + self.register_output(json.dumps(register).encode()) + + def test_every_register_definition_field(self): + import json + base = audit.decode(audit.blob(ROOT, audit.BASE, audit.PLAN + "work_packages.json")) + # Independently mutate/remove every package and unit definition field. + # Compare full nested values; unknown additions fail at both record levels. + def visit(value, path=(), level="packages"): + if isinstance(value, list): + yield path, "count" + if len(value) > 1: + yield path, "order" + for i, child in enumerate(value): + yield from visit(child, path + (i,), + "package" if not path else "unit" if path[-1] == "remaining_deliverables" else "nested") + elif isinstance(value, dict): + yield path, "unknown" + excluded = audit.PACKAGE_MUTABLE if level == "package" else audit.UNIT_MUTABLE if level == "unit" else () + for key, child in value.items(): + if key in excluded: + continue + yield path + (key,), "change" + yield path + (key,), "remove" + if key == "remaining_deliverables": + yield from visit(child, path + (key,), "units") + elif isinstance(child, list): + yield path + (key,), "count" + if len(child) > 1 and child[0] != child[1]: + yield path + (key,), "order" + + seen = set() + anchored = audit.blob(ROOT, audit.BASE, audit.PLAN + "work_packages.json") + for path, operation in visit(base): + # Each distinct definition key/structural path once; repeated records + # use the same schema, so do not pad by testing it 30/88 times. + shape = tuple("*" if type(part) is int else part for part in path) + if (shape, operation) in seen: + continue + seen.add((shape, operation)) + changed = copy.deepcopy(base) + target = changed + for key in path[:-1]: + target = target[key] + value = target[path[-1]] if path else changed + if operation == "change": + target[path[-1]] = {"altered_definition": True} + elif operation == "remove": + del target[path[-1]] + elif operation == "unknown": + value["unknown_metadata"] = "must fail" + elif operation == "count": + value.append({}) + else: + value[0], value[1] = value[1], value[0] + with self.subTest(path=path, operation=operation), patch.object(audit, 'blob', return_value=anchored), self.assertRaises(ValueError): + audit.validate_register(ROOT, "work_packages.json", json.dumps(changed).encode()) + + def test_atomic_decision_and_selection_integrity(self): + import json + for name in ("atomic_requirements.json", "decisions.json"): + data = audit.blob(ROOT, audit.BASE, audit.PLAN + name) + with self.subTest(name=name), self.assertRaises(ValueError): + audit.validate_register(ROOT, name, data + b" ") + changed = audit.decode(data) + if name == "atomic_requirements.json": + changed["requirements"][0]["id"] = "changed_atomic_requirement" + with self.assertRaises(ValueError): + audit.validate_register(ROOT, name, json.dumps(changed).encode()) + decisions = audit.decode(audit.blob(ROOT, audit.BASE, audit.PLAN + "decisions.json")) + def flip(value, identity): + if isinstance(value, dict): + if value.get("id") == identity: + value["status"] = "approved" + return True + return any(flip(v, identity) for v in value.values()) + if isinstance(value, list): + return any(flip(v, identity) for v in value) + return False + for identity in ("D05", "D08"): + changed = copy.deepcopy(decisions) + self.assertTrue(flip(changed, identity)) + with self.subTest(identity=identity), self.assertRaises(ValueError): + audit.validate_register(ROOT, "decisions.json", json.dumps(changed).encode()) + original = Path.read_bytes + target = ROOT / audit.OUT / "ACTUAL_OPUS_NEXT_ORIGINAL_UNIT_SELECTION.json" + def corrupt(path): + return original(path) + (b" " if path == target else b"") + with patch.object(Path, "read_bytes", corrupt), self.assertRaises(ValueError): + audit.expected(ROOT) + + 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_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(), + '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)