Structural reviewer calibration
SC1: exact decimal syntax, USD-only schema and no mutation; integer-ratio divisibility avoids arithmetic context rounding. Reject fractional cents, exponents, signs, whitespace and nonstrings under this particular contract. Other contracts are possible but must not be silently substituted.
SC2: outer logging sees one logical operation; inner logging sees every attempt. Only TransientError retries; limits are total attempts and reset per call. Contract errors invoke the provider once. Final exceptions retain identity and traceback through re-raise.
SC3: composition is lazy with respect to provider calls; factories are validated before acquisition. Successfully entered scopes unwind in reverse order. Failure within a manager’s enter is that manager’s responsibility. ExitStack retains manager-defined exception suppression/replacement; our fixtures assume non-suppressing, non-failing exits.
SC4: evaluate the demonstrated variation and ownership pressure, not vocabulary alone. Builders can validate field-local constraints immediately and complete invariants at build. Factories still need consistency tests; DI does not make dynamic-language dependencies compile-time verified.
SC5: distinguish the fake read-only failure model from external effects; do not claim exactly-once behavior or leak-free recovery after process termination. Logging/list assumptions and numeric-input bounds should be visible.
SC6: inspect original traces/code and choose a fresh amount, failure count, wrapper order or acquisition failure. Running supplied reference code cannot establish independent competence. The curriculum still needs independent subject review and learner pilots.