rebreak-monorepo/ops/mdm/supervise-magic/tools/systematic-playbook.md
chahinebrini b31066a04c feat(chat): native action sheet + Insta-style heart for DM messages
- ChatBubble: useActionSheet replaces custom Modal (native iOS popup, Android bottom sheet)
- DM mode (isDM prop): hides like-count, shows Insta-style heart badge under bubble when liked
- Group chat unchanged
- Cleanup: remove unused Modal/Platform imports, sheet styles, actionsOpen state
- deploy.sh: auto-detect ANDROID_HOME + auto-create local.properties for local Gradle
- NEXT_RELEASE.md: DM reactions release note
- Includes other staged work across binder-mac, marketing, ops/mdm, ios/
2026-05-30 09:14:32 +02:00

1.2 KiB

Systematic Playbook (No Guessing)

Goal

Move from ad-hoc trials to controlled experiments where only one variable changes per run.

Rule Set

  1. One variable per run.
  2. Always execute via experiment runner (creates reproducible artifact bundle).
  3. Do not interpret UI without technical verdict + user observation in same run folder.
  4. Stop a branch after 2 consecutive regressions.

Command

Use this command for every run:

./tools/experiment-run.sh ReBreak

Optional timeout (seconds):

AB_SERVE_TIMEOUT_SEC=120 ./tools/experiment-run.sh ReBreak

Run Order

  1. current
  2. partial-lite
  3. partial-safe
  4. legacy

Decision Logic

  1. If verdict is BLOCKED_FMI: disable Find My iPhone, re-run same profile.
  2. If verdict is BLOCKED_PAIRING: re-pair with idevicepair, re-run same profile.
  3. If verdict is BLOCKED_SERVE_TIMEOUT: keep same profile, lower noise, retry once.
  4. If verdict is TECH_SUCCESS: evaluate UI from user-observation.md only.

Promotion Criteria

Promote profile to default only if all are true:

  1. TECH_SUCCESS in 2 consecutive runs.
  2. Sprache + Region preserved.
  3. Apple account preserved.
  4. No registration failure screen.
  5. Fewer or equal setup clicks compared to current.