Skip to content

chore: MAINT-307 resequence sorting deck + correct false perf-enforcement claims - #220

Merged
MP2EZ merged 1 commit into
developmentfrom
chore/MAINT-307-post-batch-corrections
Jul 26, 2026
Merged

chore: MAINT-307 resequence sorting deck + correct false perf-enforcement claims#220
MP2EZ merged 1 commit into
developmentfrom
chore/MAINT-307-post-batch-corrections

Conversation

@MP2EZ

@MP2EZ MP2EZ commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Closes MAINT-307

Two post-batch corrections, both "the record is wrong."

A — Sorting deck sequencing (FEAT-293 follow-up)

FEAT-293 promoted the control-sorting drill to a primary surface reachable from Home. The philosopher approved the rewritten card wording but flagged position separately: medical-test-anxiety was card 3 of 12, and on a wrong answer the screen announces "Not quite. How you respond to the anxiety is in your control…". For someone with a real pending medical result that lands ~30 seconds into a cold entry from Home, before they've learned what the drill is asking of them.

Moved to position 9, after several low-stakes cards (traffic, unanswered text, work effort, weather) have taught the in-control / not-in-control convention.

Sequencing only — no wording changed. A test asserts the wording is untouched, so a future edit can't smuggle a copy change in as a reorder. The other new assertions pin the property rather than the arrangement: sensitive cards must stay out of the opening five, so authoring a new scenario won't spuriously fail but a card drifting back toward the front will. event-interpretation is included in that set because it invites the user to supply "a difficult event" — the card most likely to be loaded with real material.

B — Correct two false perf-enforcement claims

The repo asserted performance controls that do not exist, which is worse than a documented gap: it stops anyone from building the real one.

  • post-launch-monitoring-runbook.md §5 claimed "That gate already exists: the on-device Maestro flow enforcing <200ms / 60fps." Verified across all 8 flows in app/.maestro/not one ms or fps assertion, only timeout: failure ceilings. crisis-button-reachability.yaml:34-35 says so itself.
  • The Performance regression CI job comment claimed "production budgets still enforced via perf:crisis/perf:breathing/perf:launch scripts." MAINT-166 PR 7 deleted those scripts.

Replaced with what's actually true — stated precisely rather than swapping one wrong claim for another:

Budget Actually enforced by
Crisis detection <200ms Strict CI gateassessment-performance.test.ts, run by this very job
Crisis button <200ms Coarse jest proxy — measures synthetic dispatch, not tap→render
Breathing 60fps Nothing → INFRA-306
App launch <2s, transition <500ms Nothing — hand-validated

Also records that performance-regression-reporter.js does not gate (non-strict unless PERF_REGRESSION_STRICT=true), so crisis_response_ms: 9.38 is a recorded baseline, not a threshold.

This weakens INFRA-282 AC5's deferral rationale, which leaned on that Maestro gate. The defer still stands on its other leg (no traffic pre-launch), and §5 now says so explicitly.

The matching .claude/CLAUDE.md Validation Matrix claim is corrected separately on _bare, where that file lives.

Verification

npm run precommit  exit 0 — safety 108, clinical 106, unit 592 (+5), privacy 51

Safety re-check: no safety-surface paths in the diff → Phase 2.5 correctly skipped, no simulator needed.

🤖 Generated with Claude Code

…ment claims

Two post-batch corrections, both "the record is wrong".

A — SORTING DECK SEQUENCING (FEAT-293 follow-up)

FEAT-293 promoted the control-sorting drill to a primary surface reachable from
Home. The philosopher approved the rewritten card wording but flagged POSITION
separately: `medical-test-anxiety` was card 3 of 12, and on a wrong answer the
screen announces "Not quite. How you respond to the anxiety is in your control…".
For someone with a real pending medical result that lands about thirty seconds
into a cold entry from Home, before they have learned what the drill is asking.

Moved to position 9, after the user meets several low-stakes cards (traffic,
unanswered text, work effort, weather) and has the in-control / not-in-control
convention. Sequencing only — no wording changed, and a test asserts the wording
is untouched so a future edit can't smuggle a copy change in as a reorder.

The new test pins the PROPERTY rather than the arrangement: sensitive cards
(medical-test-anxiety, event-interpretation — the latter invites the user to
supply "a difficult event", so it's the one most likely to be loaded with real
material) must stay out of the opening five. Authoring a new scenario won't
spuriously fail; a card drifting back toward the front will.

B — CORRECT TWO FALSE PERF-ENFORCEMENT CLAIMS

The repo asserted performance controls that do not exist, which is worse than a
documented gap because it stops anyone from building the real one.

- runbook §5 claimed "That gate already exists: the on-device Maestro flow
  enforcing <200ms / 60fps". Verified across all 8 flows in app/.maestro/: not
  one ms or fps assertion, only `timeout:` failure ceilings. crisis-button-
  reachability.yaml:34-35 says so itself.
- The `Performance regression` CI job comment claimed "production budgets still
  enforced via perf:crisis/perf:breathing/perf:launch scripts". MAINT-166 PR 7
  deleted those scripts.

Both replaced with what is actually true, stated precisely rather than swapping
one wrong claim for another: crisis DETECTION <200ms is a strict CI gate
(assessment-performance.test.ts); the crisis BUTTON has only a coarse jest proxy
that measures synthetic dispatch; breathing 60fps, app launch <2s and check-in
transition <500ms are enforced by nothing. 60fps is tracked as INFRA-306.

Also records that performance-regression-reporter.js does NOT gate — it is
non-strict unless PERF_REGRESSION_STRICT=true — so crisis_response_ms: 9.38 in
performance-baselines.json is a recorded baseline, not a threshold.

This weakens INFRA-282 AC5's deferral rationale, which leaned on that Maestro
gate. The defer still stands on its other leg (no traffic pre-launch), and §5
now says so explicitly.

The matching .claude/CLAUDE.md Validation Matrix claim is corrected separately
on _bare, where that file lives.

Verification: npm run precommit exit 0 — safety 108, clinical 106, unit 592
(+5), privacy 51.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@MP2EZ
MP2EZ merged commit 49d4896 into development Jul 26, 2026
22 checks passed
@MP2EZ
MP2EZ deleted the chore/MAINT-307-post-batch-corrections branch July 26, 2026 01:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant