# Binary Leak Check

Before shipping an app, report, migration probe, QA result, or deliverable with this skill, answer every line yes.

## Required Yes Answers

- The output called the live Analytics Alpha API or quoted a failed API Problem response.
- The output named the canonical docs used.
- Every report value came from an Analytics response field.
- Source-shaped imports were sent to the surface unchanged except for transport envelope fields.
- Missing primitives were reported as surface gaps instead of patched in local code.

## Required No Answers

- Did the client classify active, inactive, or waste time from raw Events?
- Did the client intersect activity with a school calendar or enrollment window?
- Did the client compute minutes_per_enrolled_school_day?
- Did the client sum XP ledger rows, compute repeat discounts, or apply penalty rules?
- Did the client compute accuracy_percent from question attempts or processed_facts?
- Did the client compute mastery, decay, confidence, or transitions?
- Did the client choose a MAP test of record, parse term strings, unpivot goal columns, maintain a private norms/R90 table, or compute Growth X?
- Did the client convert percentile to RIT, RIT to percentile, or RIT to grade position without calling the Analytics norms/R90 endpoints?
- Did the client treat R90/r90_percent_complete/rit90_grade_band_percent as actual course or grade-level progress?
- Did the client count remaining school days or convert XP to target-date effort locally?
- Did the client derive actual progress from MAP/RIT/R90, walk Curriculum trees, count Results rows, or include remediation/hole-filling/catalog courses in grade-level progress?
- Did the client parse ids, subjects, app names, policy refs, or typed values out of free text?
- Did the client read Supabase, Postgres, implementation source, private logs, raw Caliper payloads, raw Results rows, or JWT contents?
- Did the client persist Analytics domain data outside the surface?

If any forbidden item is yes, stop. The surface leaked. Report the earliest upstream deliverable that must change rather than adding private logic.
