Skip to main content

Reviewer calibration for behavioral contracts

For BD1 accept a simple function, explicit transition table or composed object when the learner explains the actual change pressure. Strategy is not mandatory for one stateless policy. Template Method fixes a skeleton while subclasses supply steps; it is not inherently bound to compile-time selection. Iterator exposes a traversal contract; Chain must define first-handler versus all-handler semantics.

BD2: new subscriptions wait until the next publication; canceled pending tokens are skipped; duplicates have separate tokens; ordinary Exceptions are collected in order and other callbacks continue. Nested publish rejects before any nested delivery. A changed callback-snapshot contract may be valid but is not the current lab contract.

BD3: disposal removes the provider’s reference, close cancels pending callbacks, and closed publishers reject subscribe/publish. The currently running stack can still hold a callback until dispatch finishes. Do not demand immediate memory reclamation as the API guarantee.

BD4: rejected edits preserve the complete history snapshot. Valid no-ops preserve redo. A real edit after undo truncates the redo branch; boundary undo/redo returns false. Immutable strings and tuple snapshots prevent caller mutation through returned history. Snapshot storage grows with retained text versions.

BD5: neither order of a local ID write and an external send closes both crash windows. Require explicit receiver coordination or honest uncertain-outcome handling. Callback exception isolation is not atomic rollback of earlier effects.

BD6: inspect the learner’s code, retained traces and independent explanation. Change cancellation order, add a failing listener, or change an edit range. A copied reference can calibrate setup but does not establish independent reasoning. Review/pilot status of this curriculum remains separate from a learner’s result.

Scope alongside C01–C10​

This key grades the runtime comparison package only. The core key grades the different core API. C02/C03 and BD2/BD4 can therefore require different traces without contradiction. Require the learner to identify the API before judging a response or mutant.