Adds the governing intent, the R-1 contract and descriptor, the adapter's connector contract, the observation and redaction configuration, a runbook, and the seed evidence for the first experiment: a measured pressure record and two competing hypotheses about how a long hall entry should reach a reader. The interface is declared at FLUID-2 deliberately. It publishes under HelixForge's name to an audience that did not consent to being experimented on carelessly, and the cost of a bad post is reputational rather than recoverable. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu Assistant: claude-code Assistant-Model: opus Assistant-Process: 1116572@bnt-lap001 Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
68 lines
2 KiB
YAML
68 lines
2 KiB
YAML
# 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: []
|