{
  "schema_version":"0.3",
  "status":"bounded-technical-operation-external-review-incomplete",
  "reviewed_on":"2026-09-17",
  "purpose":"Record the implemented pre-moderated forum controls and keep staffing, independent appeal, privacy, legal, accessibility, backup, and archival evidence explicitly staged.",
  "dependencies":["P18A","P18B","P18C","P18D","P18E","P18F"],
  "synthetic_data_only":false,
  "exercises":[
    {"id":"AUTH-01","area":"authentication","state":"implemented-platform-sign-in-role-audit-staged","requires":["ChatGPT sign-in","server-side write checks","server-assigned moderation","provider account recovery and session revocation"],"pass_condition":"Authenticated writes cannot be impersonated by client fields and moderation is unavailable without the server-configured role."},
    {"id":"STORE-01","area":"storage","state":"implemented-schema-and-migration-backup-evidence-staged","requires":["generated schema migration","old-record compatibility","one-level parent linkage","organization suggestion and private risk metadata","new-record write","author withdrawal","backup expiry evidence"],"pass_condition":"Records survive compatible migration without audience, lineage, placement, containment, or withdrawal-state loss."},
    {"id":"AUD-01","area":"audience enforcement","state":"not_run","requires":["public restricted and security classes","default-deny test","role-bound access","access log review"],"pass_condition":"Every synthetic record is visible only to its declared audience under normal, expired-role, and compromised-session cases."},
    {"id":"MOD-01","area":"moderation capacity","state":"not_run","requires":["staffing schedule","recusal coverage","queue targets","emergency second review","decision export"],"pass_condition":"Named independent coverage can meet declared response targets without assigning scientific authority to moderators."},
    {"id":"ABUSE-01","area":"abuse response","state":"implemented-private-hold-foundation-drills-validation-and-appeal-staged","requires":["rate limits","exact duplicate rejection","bounded spam destructive-coordination and cross-account duplicate signals","author-and-moderator-only temporary holds","human release quarantine or removal","report queue","personal-information rejection","privacy attack drill","account compromise drill","appeal and reversal propagation"],"pass_condition":"Incidents receive proportionate review without public exposure or a concealed group forum; coordinated-behavior validation, independent appeal, and drills remain required for expansion."},
    {"id":"PRIV-01","area":"privacy and legal","state":"not_run","requires":["data inventory","consent review","retention schedule","legal hold authority","incident notice","jurisdiction review"],"pass_condition":"No prohibited data is collected and every retained class has a purpose, audience, expiry, correction, and accountable authority."},
    {"id":"APPEAL-01","area":"independent appeal","state":"not_run","requires":["independent reviewer","notice","deadline","new evidence path","minority rationale","no retaliation"],"pass_condition":"A synthetic decision can be affirmed, modified, or reversed without the original decision-maker controlling the appeal."},
    {"id":"PORT-01","area":"portability and retirement","state":"not_run","requires":["participant export","complete thread export","deletion propagation","archive handoff","obsolete-format migration"],"pass_condition":"Synthetic records can be exported, corrected, deleted or tombstoned, migrated, and handed off without losing required history or privacy boundaries."}
  ],
  "advance_rule":"No exercise may be marked passed without dated evidence, named reviewers, limitations, failure records, and a recoverable release. Passing this plan alone does not authorize public posting.",
  "next_gate":{"id":"P18H","state":"partially_advanced_bounded_forum_active","purpose":"Independent capability, staffing, privacy, legal, accessibility, backup, archival, and appeal review before expanding beyond owner-pre-moderated adult participation."},
  "evolution_hooks":["identity.provider.changed","storage.schema.changed","forum.role.changed","moderation.capacity.changed","privacy.expectation.changed","abuse.pattern.changed","appeal.process.changed","feature.deprecated"]
}
