# The interface's first experiment: does the portrait earn its place? # # This tests DELIVERY, which this interface owns. The competition about which # editorial voice travels belongs to the campaign and is run on the per-variant # engagement this interface reports — see docs/observation.md. # # fluid experiment design --file experiments/E-tg-delivery.yaml # fluid experiment start E-tg-delivery --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-delivery" interface_id: "helix-forge-telegram-publishing" hypothesis_refs: - "H-tg-visual" - "H-tg-textonly" # R-2 attaches the portrait, R-3 publishes text only. Neither is an # incumbent: R-1 publishes without either treatment being settled, 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 limits exposure to an unproven candidate; here both arms are # equally unproven and the scarce resource is posts, not safety. metrics: primary: - "engagement_rate" guardrails: - "unreviewed_publication" - "missing_source_attribution" - "missing_subject_consent" - "error_rate" secondary: - "source_link_rate" - "forward_rate" learning: - "time_to_first_view" start_conditions: - "both revisions verified against the private test channel" - "channel has at least 100 subscribers" stop_conditions: - "hard_guardrail_violation" - "unreviewed_publication" - "manual_stop" - "max_duration_reached" max_duration_hours: 2160 # 90 days result: state: "PLANNED" preferred_revision: null evidence_refs: []