# SageMaker rollout-observation exercise Download all four files into one folder: `observation.mjs`, `observation.test.mjs`, `packets.json` and this README. Use Node.js 22 or later. From that folder run: ```text node --test observation.test.mjs ``` Expected result: 23 passing behavior tests. No installation, external dependencies, network, credentials or AWS calls are needed. The source was prepared for the draft guide “SageMaker Endpoint Updates: Prove the Rollback Signal Before Expanding Traffic”. Passing these tests does not approve a guide for publication or a production deployment. ## What this exercise establishes `packets.json` contains a fictional base and independently declared expected decisions. The tests apply negative mutations and check explicit reasons. `observation.mjs` validates a narrow evidence contract and computes two local counted-window means. Malformed or sparse expected windows return HOLD rather than throwing. The owner-selected teaching criterion is above 200,000 microseconds in both complete consecutive 60-second windows, with at least 20 candidate observations in each. It is not an AWS default or production recommendation. One breach is HOLD; missing data is HOLD regardless of the recorded CloudWatch missing-data choice. Favorable serving with immature labels is HOLD_QUALITY. REVIEW_READY is bounded packet review, never authorization or AWS acceptance. Every outcome contains `authorizesAwsChange: false`. Mixed latency and request-error arithmetic demonstrate population mistakes. They do not implement CloudWatch aggregation or evaluation. References labeled synthetic are assumptions, not verified permissions, capacity, compatibility or quality review. ## Limits and reproduction boundary This exercise does not evaluate CloudWatch alarm state, M-of-N, metric emission timing, service permissions, capacity, prediction quality, actual rollback timing or deployment success. It has no real timestamps or account identifiers. Real evidence requires exact UTC intervals, acquisition identity, actual alarm definitions/readbacks and separately authorized endpoint testing. Evaluator and packet bytes match the reviewed private source. The standalone tests retain all behavior tests, including the corrected malformed and sparse window regressions. They omit only the private repository's source-document check and reading-time import because a downloaded exercise has no repository source tree. Worksheet parity, MDX compilation and publication isolation are checked separately during canonical integration.