P14-02: Split warps into guest FRONT and staff BACK service warp (A08)
The FRONT Mana warp is guest-only: its connectors carry the "!staff" access, which path access checks treat as open to everyone except staff. A new 2x2 BACK service warp links only to other service warps for staff, with A07 values. Registry and palette now hold 25 definitions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
619b5e07ed
commit
8917c190cf
@@ -48,6 +48,14 @@
|
||||
"decision": "2x2・表層。建設3000G・資材30、工期360分、維持費15G/日、維持マナ1/10分。建設済みワープは全て相互接続。利用者は客と接客中の従業員。1人1回3マナを出発時に一回だけ差し引く。残量不足・停電・到着先不可のときは経路から除外し、費用と移動を発生させない。途中保存・再開で費用と移動を二重反映しない。",
|
||||
"origin": "user_reply_in_conversation",
|
||||
"approved_at_jst": "2026-10-20"
|
||||
},
|
||||
{
|
||||
"id": "A08",
|
||||
"title": "ワープの客用・業務用分離",
|
||||
"decision": "表層のマナワープは客用とし、従業員の経路からは使わない。従業員用に裏層の業務用マナワープ(2x2・裏層)を別に設け、業務用同士だけを相互接続し従業員のみ利用する。業務用の建設費・工期・維持費・維持マナ・1人3マナの運賃はA07と同値。",
|
||||
"origin": "user_reply_in_conversation「従業員用を裏層に別で作って」",
|
||||
"approved_at_jst": "2026-10-20",
|
||||
"values_note": "業務用の数値はユーザー指定がなくA07と同値を適用。"
|
||||
}
|
||||
],
|
||||
"pending": [
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
"passed": true
|
||||
},
|
||||
{
|
||||
"name": "all7_confirmed_decisions",
|
||||
"name": "all8_confirmed_decisions",
|
||||
"passed": true
|
||||
},
|
||||
{
|
||||
@@ -238,7 +238,7 @@
|
||||
"build_atomic_requirements.py": "6d6ea9e4216372dbd0f9fed3f885a4481b21a3f539a26f64cf98a6830af984c5",
|
||||
"build_facility_value_contracts.py": "35027b23ce75ce9e4e0cdfc5132fd2eb771ba9f598d97750d7ecf9ecb257f769",
|
||||
"current_evidence_links.json": "db1837bcc8497201134297e312f4b266a297102285307ec3075d4e23632e26c2",
|
||||
"decisions.json": "b0e4483e453703d0d5587ba340a2ab7f61cb95b34bd9cd1f1a411b1b8f52c866",
|
||||
"decisions.json": "8b7dba984d5b1cc0091e8faf8fddb2ab357dd79f1bd093eba46c23c2f62a068c",
|
||||
"facility_value_contracts.json": "447388ba03a29bfac25f2bcd068665aedbb07ba7641ce86f2db93d44f4c9f326",
|
||||
"facility_value_contracts_validation.json": "bf490a9ca585c48fc318e76c4a069ef244827d828d46e6415399f7710590dd16",
|
||||
"performance_audit.json": "0b630b15a392c3e0366f1362bfe4ddacb968f915f54549f82e4d6fa315384762",
|
||||
@@ -251,7 +251,7 @@
|
||||
"source_atomic_coverage.json": "2ab7b9e6a2536ef248d4f7ccd695bf75a082b47018aca7a5a1b6b706fe1907bc",
|
||||
"validate_atomic_requirements.py": "5b2d0b7d72cb124830fbb0a12d1434e6db698148cc5263d33fd5bd7c2953a1e0",
|
||||
"validate_facility_value_contracts.py": "91640e2a76cd6cc9186f7b85c0bf379b24b6cac0d48962815235ee628e7ae43e",
|
||||
"validate_plan.py": "13d6c95ec17e87215cefc3a94f398b10dd9b63516cd0039bc6e77c3940998d84",
|
||||
"validate_plan.py": "4973d3c2797289d266f5c6e7c36f3d2c31931b23a1022eab3d94328267bcc1b4",
|
||||
"validator_update_checks.json": "f997d0f3de2cea29550840b1d5cb23647d64f81329de46758551e2b6c8fecc27",
|
||||
"work_packages.json": "d2549dae70c8240cef62c5447d570d67789a46f8b944422b5155d326aab13984"
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ def main():
|
||||
pending = {d["id"] for d in decisions["pending"]}
|
||||
check("all10_pending_decision_groups", pending == {f"D{i:02d}" for i in range(1, 11)})
|
||||
check("known_decision_references", all(set(p["decisions"]) <= pending for p in packages))
|
||||
check("all7_confirmed_decisions", {d["id"] for d in decisions["confirmed"]} == {f"A{i:02d}" for i in range(1, 8)})
|
||||
check("all8_confirmed_decisions", {d["id"] for d in decisions["confirmed"]} == {f"A{i:02d}" for i in range(1, 9)})
|
||||
check("confirmed_decision_references_exist", all((PLAN / d["reference"]).is_file() for d in decisions["confirmed"] if "reference" in d))
|
||||
state_counts = dict(collections.Counter(p["state"] for p in packages))
|
||||
check("valid_package_states", all(p["state"] in states for p in packages))
|
||||
|
||||
Reference in New Issue
Block a user