Define P18 original relationship preservation code contract

This commit is contained in:
Takeshi
2026-10-13 14:02:05 +09:00
parent 70e76cd073
commit d2a1f80a61
6 changed files with 129 additions and 6 deletions
@@ -0,0 +1,34 @@
[
{
"id": "P18-C-1",
"requirement_id": "P18-01-CODE",
"text": "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.",
"validation_ids": [
"p18-model"
]
},
{
"id": "P18-C-2",
"requirement_id": "P18-01-CODE",
"text": "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.",
"validation_ids": [
"p18-model"
]
},
{
"id": "P18-C-3",
"requirement_id": "P18-01-CODE",
"text": "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.",
"validation_ids": [
"p18-model"
]
},
{
"id": "P18-C-4",
"requirement_id": "P18-01-CODE",
"text": "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.",
"validation_ids": [
"p18-model"
]
}
]
@@ -0,0 +1,7 @@
{
"action": "wait",
"task_id": "P24-02",
"reason": "P24-02 is submitted (666c87b) and waiting for Runner validation and review. No worker is registered and the owner asked for wait this time. The P18-01 contract (explicit-value Original3 model, SNAPSHOT_VERSION 2 with the v1 legacy payload kept verbatim and no alias conversion, refuse-and-preserve for unknown or corrupt saves, unset shown as 未設定, conditions kept unmet) is only a proposal. Its allowed_paths need a read-only check by Runner first. Freezing and registering it are owner decisions.",
"codex_model": "gpt-6-astra",
"codex_model_reason": "P18-01 combines a save version migration, refuse-and-preserve handling for unknown or corrupt saves, legacy and original models side by side, and Runtime restore/rebind. A small mistake can lose data or bring back guessed conversions. With only 2 repair attempts, rework is likely to cost more than Astra, so the extra usage is justified. This choice does not authorize a run."
}
@@ -0,0 +1,12 @@
{
"p18-model": {
"argv": [
"{python}",
"-B",
"tools/run_p18_relationship_tests.py",
"--output",
"{build_dir}/p18-relationship-evidence"
],
"timeout_seconds": 1200
}
}