Parent: #116 · Spec: docs/superpowers/specs/2026-05-02-sis-pdp-ar-sandbox-design.md
Scope
- New
sandbox_sis Postgres schema with Banner-flavored tables: students, enrollments, terms, courses, grades, financial_aid, holds.
- New
upload_events table (append-only) keyed by event_id with source/target stage, row count, transformations, actor, ts.
sandbox/seed_sis.py deterministic seed (~500 students) matching Bishop State distributions, no real identifiers.
is_sandbox=true flag and namespacing rules so sandbox data is wipeable in one command.
Acceptance
Estimate: 2–3 days.
Parent: #116 · Spec:
docs/superpowers/specs/2026-05-02-sis-pdp-ar-sandbox-design.mdScope
sandbox_sisPostgres schema with Banner-flavored tables: students, enrollments, terms, courses, grades, financial_aid, holds.upload_eventstable (append-only) keyed by event_id with source/target stage, row count, transformations, actor, ts.sandbox/seed_sis.pydeterministic seed (~500 students) matching Bishop State distributions, no real identifiers.is_sandbox=trueflag and namespacing rules so sandbox data is wipeable in one command.Acceptance
sandbox_sisandupload_eventspython sandbox/seed_sis.py --seed 42produces identical output across runsmake sandbox-resetdrops only sandbox data, leaves real tables untouchedEstimate: 2–3 days.