docs(runbook): replace the announced trial floor with a 30-day notice gate #494

Sammanfogat
supernaut sammanfogade 2 incheckningar från work/trial-notice in i main 2026-09-21 09:24:52 +00:00
Ägare

The public trial copy is dropping its date. Until now every user-facing surface said the trial runs "at least until 31 August 2026", a floor, with the trial actually ending when paid subscriptions launch. That floor has passed. The new public promise is: the trial ends when paid subscriptions launch for everyone, with at least 30 days' notice.

This is the operator side of that change. No playbook was run, nothing was applied.

group_vars/all/vars.yml

The web_trial_open comment described "no scheduled date, 31 August 2026 is the announced floor". It now says the trigger is paid subscriptions launching, with no date scheduled anywhere.

docs/runbook.md, the trial downgrade section

The section was built around "31 August 2026 is a floor, not an end date", including a closing paragraph about what it would take to move the floor. That reasoning is gone. In its place: no surface carries a date, the trigger is the launch, and the public commitment is 30 days' notice, with nothing in the system scheduling either the notice or the downgrade.

The substantive change is that the notice is a step in the procedure, not a note above it. Prose above a code block is what an operator following commands top to bottom reads past. It is now numbered, and it sits immediately before the irreversible step that revokes capabilities.

The step order matters and was got wrong on the first pass. Closing the trial door comes first, then the notice, then the wait:

0. Close the trial door, so the set of people owed notice stops growing.
1. Send the 30-day notice to every member listed, then wait out the 30 days.
2. Move each trial member to tier_participant.   <- irreversible

Notice-then-close would let a trial started during the notice window be downgraded without ever having been told, which breaks the promise for exactly the people least likely to be watching.

Follow-up, not in this branch

Issue #270 is still titled "Execute the end-of-August tier_trial → participant downgrade". Its body states an announced end date, its gate says "if subscriptions slip past end of August", and its step outline is now off by one against the runbook and predates the notice step. It also cites a runbook heading that does not exist. Being updated separately.

Verified: pnpm mdlint, prettier -cu, ansible-lint (0 failures, 0 warnings, production profile), plus the full pre-push suite. grep -rn -iE "31 (august|augusti)|august 2026|end.of.august|announced floor" ansible/ docs/ scripts/ returns nothing.

The public trial copy is dropping its date. Until now every user-facing surface said the trial runs "at least until 31 August 2026", a floor, with the trial actually ending when paid subscriptions launch. That floor has passed. The new public promise is: the trial ends when paid subscriptions launch for everyone, with at least **30 days' notice**. This is the operator side of that change. No playbook was run, nothing was applied. ## `group_vars/all/vars.yml` The `web_trial_open` comment described "no scheduled date, 31 August 2026 is the announced floor". It now says the trigger is paid subscriptions launching, with no date scheduled anywhere. ## `docs/runbook.md`, the trial downgrade section The section was built around "31 August 2026 is a floor, not an end date", including a closing paragraph about what it would take to move the floor. That reasoning is gone. In its place: no surface carries a date, the trigger is the launch, and the public commitment is 30 days' notice, with nothing in the system scheduling either the notice or the downgrade. The substantive change is that the notice is a step in the procedure, not a note above it. Prose above a code block is what an operator following commands top to bottom reads past. It is now numbered, and it sits immediately before the irreversible step that revokes capabilities. The step order matters and was got wrong on the first pass. Closing the trial door comes first, then the notice, then the wait: ``` 0. Close the trial door, so the set of people owed notice stops growing. 1. Send the 30-day notice to every member listed, then wait out the 30 days. 2. Move each trial member to tier_participant. <- irreversible ``` Notice-then-close would let a trial started during the notice window be downgraded without ever having been told, which breaks the promise for exactly the people least likely to be watching. ## Follow-up, not in this branch Issue #270 is still titled "Execute the end-of-August tier_trial → participant downgrade". Its body states an announced end date, its gate says "if subscriptions slip past end of August", and its step outline is now off by one against the runbook and predates the notice step. It also cites a runbook heading that does not exist. Being updated separately. Verified: `pnpm mdlint`, `prettier -cu`, `ansible-lint` (0 failures, 0 warnings, production profile), plus the full pre-push suite. `grep -rn -iE "31 (august|augusti)|august 2026|end.of.august|announced floor" ansible/ docs/ scripts/` returns nothing.
supernaut lade till 2 incheckningar 2026-09-21 08:32:33 +00:00
The public trial copy no longer states a date. Update the runbook and
vars.yml comment to match: the trial ends when paid subscriptions
launch, and the downgrade procedure now gates on the 30-day notice
having gone out before the irreversible member-move step.
docs(runbook): close the trial door before the notice window opens
Alla kontroller lyckades
ci / ci (pull_request) Successful in 1m52s
f6f772d902
supernaut sammanfogade incheckning 6d31fc7cad till main 2026-09-21 09:24:52 +00:00
supernaut tog bort grenen work/trial-notice 2026-09-21 09:24:52 +00:00
Logga in för att delta i denna konversation.
Inga granskare
Ingen milstolpe
Inget projekt
Inga tilldelade
1 deltagare
Notiser
Förfallodatum
Förfallodatumet är ogiltigt eller utanför gränserna. Använd formatet "åååå-mm-dd".

Inget förfallodatum satt.

Beroenden

Inga beroenden satta

Referens
bitborg/bitborg-infra!494
Ingen beskrivning angiven.