Define P18 original relationship preservation code contract
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
{
|
||||
"id": "P18-01-CODE",
|
||||
"delivery_unit": "P18-01",
|
||||
"title": "原本関係モデル・旧値保全・Runtime保存と読取経路",
|
||||
"authority": "Human original-completion goal and authorized reordered multi-agent implementation; no new gameplay value approvals. Backend support of the same existing unit, not a new delivery unit or partial completion.",
|
||||
"original_baseline_sha256": "75e4bdbdeb379c9269553f0c776bdb9cc96e01f2d6aa5ca650d132c63a8aeb1a",
|
||||
"original_excerpt": "# 7. 恋愛・侵食システム詳細仕様書 【完全版】\n## 7.1 概要とコアコンセプト\n3つの感情パラメータと防御値「愛の盾」、直接対決「決闘」によってヒロインの運命(純愛・NTR・堕落)をシミュレートする。\n## 7.2 感情パラメータと「愛の盾」\n * **好感度 (Affection):** 主人公への愛。「愛の盾」の最大耐久値。\n * **淫乱度 (Lust):** 快楽への依存。盾の防御力(ダメージ軽減率)を下げる。\n * **NTR度 (Netorare):** ライバル依存。盾破壊後に上昇する。\n * **『愛の盾』:** NTR攻撃を無効化するバリア。耐久値0でブレイクし、NTR侵食が始まる。",
|
||||
"plan_acceptance": "表示と状態が一致し、意味不明な値の一対一変換を行わない。",
|
||||
"conditions": [
|
||||
{
|
||||
"id": "original_model",
|
||||
"required": "Directional original Affection/Lust/Netorare and shield dedicated state; protagonist versus rival identities explicit; shield_max equals configured Affection. Unset is distinct from zero. No invented initial values, ceilings, thresholds, reduction or change coefficients; supplied numbers are validation fixtures only."
|
||||
},
|
||||
{
|
||||
"id": "legacy_preservation",
|
||||
"required": "Version-1 legacy five-axis relationships remain usable and all raw fields/values are preserved through a version-2 round trip. No affinity->Affection or dependence->Netorare original conversion. New original state is separate. Missing original records are unconfigured, not guessed zero values. Unknown versions, wrong types, duplicate identities, invalid references and corrupt original payloads reject atomically, preserving prior service/Runtime and input bytes."
|
||||
},
|
||||
{
|
||||
"id": "runtime_save_read_model",
|
||||
"required": "Real Runtime command/service registration, snapshot create/restore and rebind, player/staff identity validation, read-only original relationship projection through get_staff_management_report or an equally actual Runtime read-model. No unused model stub. Exact new/legacy/mixed round trips, restore failures, no mutation by reads, legacy unchanged behavior and events; no contacts, routes or duel behavior newly invented."
|
||||
},
|
||||
{
|
||||
"id": "verified_backend",
|
||||
"required": "Meaningful native isolated local and affected regression on exact source/settings/input with strict marker/source/artifact/PID/profile/cleanup provenance, separate Opus review, integration and affected final validation. This backend support task never claims the 88-delivery-unit P18-01 complete: normal UI rendering/display equality, approved initialization, required full final roster and applicable Windows final acceptance remain at the original unit until all actual evidence exists."
|
||||
}
|
||||
],
|
||||
"scope": [
|
||||
"scripts/relationship/original_relationship_state.gd",
|
||||
"scripts/relationship/original_relationship_state.gd.uid",
|
||||
"scripts/relationship/relationship_service.gd",
|
||||
"autoload/simulation_runtime.gd",
|
||||
"tests/s4/test_original_relationship_model.gd",
|
||||
"tests/s4/test_original_relationship_model.gd.uid",
|
||||
"tests/s4/test_original_relationship_runtime.gd",
|
||||
"tests/s4/test_original_relationship_runtime.gd.uid",
|
||||
"tools/run_p18_relationship_tests.py",
|
||||
"tools/regression/suite-policy.json",
|
||||
"docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json",
|
||||
"docs/plans/original-completion-2026-10-02/execution/p18-01-code/**"
|
||||
],
|
||||
"dependencies": {
|
||||
"P03": "Reuse adopted atomic save candidate/restoration, preserve rejection and physical recovery safeguards; do not assert all P03 complete.",
|
||||
"P17": "Actual hired staff identities and unique identity registry are used where required. All-seven recruitment and initial original values remain explicit unmet dependencies."
|
||||
},
|
||||
"implementation_rules": [
|
||||
"Keep current RelationshipState five-axis API unchanged for legacy callers; add original dedicated explicit-config model and a clearly versioned containing service snapshot. Preserve legacy raw payload, including additional fields, without silently normalizing unknown fields away.",
|
||||
"Do not fabricate approved initial parameters; expose unconfigured original values via actual Runtime read-model. A newly provided explicit complete model must validate all identity/value invariants before commit; distinguish explicit fixture input from production approval.",
|
||||
"Separate v1/v2 parsing with no destructive input mutation or partial commit. Include old aliases as raw old facts only; they must never populate original values. Retain existing atomic Runtime snapshot and restore invariants.",
|
||||
"No UI files are editable in this code task. Antigravity UI phase later uses the same read-model once fixed; original unit remains in_progress. No cap reset or duplicate P24 worker.",
|
||||
"Implement tools/run_p18_relationship_tests.py as a strict narrow native collector reusing tools/run_all_tests.py/source_refs/execute_phase and existing owned_outer/Guard/diagnostic/marker contracts, fresh private CoW source and owned profiles, preserve default player logs/saves and process ownership. No raw Godot against player profile. Local+affected set: the two new P18 tests, s4 relationship_event_service/runtime_relationship_events, s6 runtime_snapshot_serialization/runtime_save_lifecycle, ui staff_management. Run import/all-script parse then native suites. --prepare-only previews bytes/capacity/roster without engines. Do not run duplicate full regression.",
|
||||
"Worker may run static and prepare-only checks first; Root Runner owns authoritative native execution/review. Any environment denial is reported with exact evidence, not bypassed by weakening isolation. Worker must not commit/push/edit main or read credentials.",
|
||||
"New tests need source-hashed strict markers, compatible with suite-policy and current roster discovery. No existing test body/assertion/limit weakening; only add exact new test records. Actual local failures are repaired before final native affected collection."
|
||||
],
|
||||
"remaining_unit_conditions": [
|
||||
"Actual ordinary staff/heroine UI graph/value/shield rendering from identical Runtime state, Japanese labels and unset display; saved/restored state equality.",
|
||||
"Production-approved initial values and any range/unit constraints not fixed by original; no synthetic fixture counted as approval or normal gameplay.",
|
||||
"Exact final full required regression after related code/UI fixes batched, independent whole-unit review and current-main integration; same Windows release final applicable acceptance."
|
||||
],
|
||||
"reuse": [
|
||||
"Existing relationship event and Runtime snapshot tests remain unchanged; their old raw evidence only where source/settings/input match.",
|
||||
"P02-01 fixed representative saves, P02-02 producer/consumer save evidence remain retained, no unconditional whole-version reuse.",
|
||||
"P24-02 candidate 666c87bd kept separate and unchanged."
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user