medlab / family
Behavioral
Cases in the observatory's Behavioral family.
cases15
-
2026-10-14
A file readable by the build owner is readable by the runtime user
now fails loudly The image build reads packaged public assets after switching to its unprivileged runtime user.
-
2026-10-14
A shared photo always arrives as image data
now fails loudly A native iOS test supplies a camera filename and requires a stored image after the recovery picker.
-
2026-10-14
Successful signing implies valid workflow control flow
now fails loudly Reject repeated control-flow group identifiers before signing and test balanced block nesting in the generated artifact.
-
2026-10-14
Valid structured output preserves the source vocabulary
now fails loudly A sparse normalization fixture must still deliver every short-source label to extraction, and phrase lemmas cannot collapse onto one base word.
-
2026-10-14
A running shell script already has its remaining source
now fails loudly The runner executes an in-memory snapshot of its source before starting simulator work.
-
2026-10-14
A successful retry removes its failure alert
now fails loudly A failure-to-recovery test requires capture identity and removal of only that capture's active alerts.
-
2026-10-14
A failed preflight command stops the next shell command
now fails loudly A deployment-script test injects a busy worker and requires termination before the build command.
-
2026-10-14
An image decoder that works on desktop also handles phone photos
now fails loudly Browser tests disable the bitmap decoder and require a resized JPEG upload, while undecodable images must show an actionable error without sending a request.
-
2026-10-14
Shifting selected new cards leaves suspended cards unchanged
now fails loudly A real-backend promotion test asserts that suspended and reviewed cards retain their scheduling fields.
-
2026-10-11
A tool returning output means the command succeeded
now fails loudly a regression requires exit code 1 to remain a command failure when the tool error flag is false
-
2026-10-11
A developer's Python installation supplies the CI test dependencies
now fails loudly CI installs the pinned Python test requirements and verifies the YAML module before building or running the suite.
-
2026-09-27
An empty backup suffix makes `sed -i` portable
now fails loudly a gate refuses any `sed -i` whose argument is not a `.bak` suffix, so both the GNU-only no-suffix form and the macOS-only empty-suffix form fail the suite before they reach CI
BehavioralEvolutionExample-Based TestsPre-Promotion Invariant Gates
-
2026-09-21
`sed -i 'edit' file` means "edit in place" on every machine
now fails loudly `sed -i` with no backup suffix is GNU-only; the deck test now uses the portable `sed -i.bak` + `rm -f` form, which edits in place identically on GNU and BSD sed
-
2026-09-19
Hardcoding a "recent" date into a test fixture keeps it recent
now fails loudly the telemetry collector accepts SUBLAYER_NOW to freeze its clock, and the test pins it to the fixtures' own day, so the window is deterministic and cannot age out
BehavioralTest EffectivenessExample-Based TestsPre-Promotion Invariant Gates
-
2026-09-13
Moving a repo layout's root is one mechanical change
now fails loudly A test that silently skips because a path does not exist is a failed test; environment checks that mask defaults are recorded as overrides, and the defaults themselves are tested without them.
ChangeBehavioralIntegration TestsPre-Promotion Invariant Gates