# The first live experiment: which presentation serves readers better. # # Do not start this until the private test channel has confirmed both forms # render correctly, and the public channel has enough subscribers for the # result to mean anything. The intent (section 12) is explicit that an # underpowered window should report INCONCLUSIVE rather than be shortened. # # fluid experiment design --file experiments/E-tg-length.yaml # fluid experiment start E-tg-length --generation 2 \ # --default-revision R-2 --policy-out rp.json # fluid policy put --file rp.json fluid_experiment: schema_version: "0.1" id: "E-tg-length" interface_id: "helix-forge-telegram-publishing" hypothesis_refs: - "H-tg-teaser" - "H-tg-serial" # R-2 implements the teaser form, R-3 the serialized form. Neither is the # control in the usual sense: R-1 cannot publish a long entry at all, so # this is a comparison between two answers rather than against a baseline. control_revision: "R-2" candidate_revisions: - "R-3" cohorts: - "telegram-subscribers" allocation: control: 0.5 candidate: 0.5 # An even split because there is no incumbent to protect. The usual 90/10 # caution exists to limit exposure to an unproven candidate; here both arms # are equally unproven and the scarce resource is entries, not safety. metrics: primary: - "read_through_rate" guardrails: - "entry_content_loss" - "error_rate" - "messages_per_entry" secondary: - "reaction_rate" - "forward_rate" learning: - "time_to_first_read" start_conditions: - "both revisions verified against the private test channel" - "channel has at least 100 subscribers" stop_conditions: - "hard_guardrail_violation" - "entry_content_loss" - "manual_stop" - "max_duration_reached" max_duration_hours: 2160 # 90 days: roughly 12 entries at current cadence result: state: "PLANNED" preferred_revision: null evidence_refs: []