Competencies, Evidence, and Remediation
Score each gate: 0 absent/incorrect; 1 partial or materially prompted; 2 independently correct with trace, assumptions and limits; 3 also defends a changed case and plausible alternative. Every gate needs at least 2; no average can hide a missing ownership, failure or state competency.
| Gate | Competency | Practice / lab evidence | Assessment |
|---|---|---|---|
| C01 | Policy and skeleton contracts | P01–P05 / L01 | A01 |
| C02 | Subscription identity, ordering and errors | P06–P10 / L02 | A02 |
| C03 | Reversible local history and mementos | P11–P12 / L03 | A03 |
| C04 | Command intent, accepted facts and uncertain effects | P13 / L04 | A04 |
| C05 | Complete lifecycle and compatible representation | P14–P15 / L04 | A05 |
| C06 | Lazy traversal and resource ownership | P16 / L05 | A06 |
| C07 | Handler terminal and continuation semantics | P17 / L06 | A07 |
| C08 | Visitor and Interpreter extension/semantic tradeoffs | P18,P20 / L07 | A08 |
| C09 | Mediator and reactive lifetime | P09–P10,P19 / E1 | A09 |
| C10 | Independent evidence and pattern composition | E2–E3 / project | A10 |
Passing all seven labs is required, alongside manual transfer evidence. The kit does not automatically grade Template Method, Mediator, the Boolean interpreter, resource-owning iteration, or the integration project. Review those artifacts directly; do not infer completion from a green suite.
Critical errors block the relevant gate: claiming a callback exception rolls back accepted state; calling local snapshots external undo; treating a command ID as proof of exactly-once effects; losing redo on rejected edit; allowing an unhandled request accidentally; or claiming bounded enumeration proves arbitrary execution.
Complete all experiments and project. Repair weak gates with a fresh trace, then recheck the weakest and one other gate after 7–14 days without keys. Record self-review separately from independent review and state which work used tools, peers or AI. No forced mistake quota.
Runtime comparison gates: BD1–BD6
The ten gates above assess the broad core package. These six additional gates
assess behavioral-contracts.zip, whose live-cancellation and no-op policies differ
from the core L02/L03 contracts. Use the comparison table
before grading; do not mix the two implementations' expected traces.
Use the same 0–3 rubric; every BD gate also requires at least 2. Read the separate BD reviewer key only after attempting the task. Reuse shared explanations and delayed rechecks, but retain evidence for both contracts and the additional close/ownership obligations.
- BD1 — Pattern selection: compare a function, Strategy and Template Method for two pricing policies; explain when a state-transition table is clearer than State classes. Defend an Iterator or Chain choice from the original practice and one simpler alternative. No class-count requirement earns credit.
- BD2 — Delivery: predict and implement cancellation, registration during dispatch, duplicate subscriptions and callback exceptions. On an unseen trace, defend the difference between token snapshots with live checks and callback snapshots.
- BD3 — Lifecycle: demonstrate repeated mounting/disposal, close during dispatch, and release of callback ownership after unsubscribe. Distinguish deterministic cleanup from garbage collection timing.
- BD4 — History: implement insert/delete/undo/redo with failure atomicity, preserved redo after no-ops, branch invalidation after a real edit and immutable snapshots. Explain storage cost and give a changed operation’s contract before implementation.
- BD5 — Failure boundaries: explain the two remote send/record crash windows, the limits of a processed-ID set, and why observer error collection does not provide a transaction. State the lab’s single-threaded/in-memory boundary.
- BD6 — Reproduction and review: pass the public checks from a fresh extraction with your implementation, retain an event trace and editor-history trace, and submit a short decision record comparing one rejected policy. Reproduce a changed case without reference code or generated assistance.
Submit original attempts, repaired failures, source/help declarations and evidence paths. All existing behavioral-pattern practice remains required. After 7–14 days recheck one weak gate and one changed trace; label solo scoring self-assessed. Passing reference tests alone does not pass a gate. No aggregate semester score can waive these runtime contracts.