feat: AI transparency page — model + LLM + data-API inventory (#108)#128
Merged
Conversation
Adds /ai-transparency listing every AI or AI-adjacent surface running in the dashboard with: algorithm, inputs, training data, where it runs, data flow on invocation, retention policy. Surfaces inventoried: - 6 homegrown ML models (retention, time-to-credential, credential type, gateway math, gateway English, low GPA) - 3 OpenAI gpt-4o-mini routes (prompt→SQL analyzer, query summarizer, course-pairing explainer) - 1 rule-based NLQ fallback (no LLM, no outbound flow) - 1 external data API at schools.syntex-ai.com - 1 in-development entry for the SHAP narrator Content lives in codebenders-dashboard/content/ai-transparency.ts as a typed AISurface[] (not markdown — matches the codebase TSX-with-content-arrays pattern used by /methodology and gives compile-time enforcement of required disclosure fields). Linked from nav-header (visible to all roles) and from /methodology. Closes #108. Part of #124 (spring-convening-followup epic).
…itles - Export AI_TRANSPARENCY_HREF, category order, groupAISurfacesByCategory from content - Thinner page: explicit section titles (fix explainability heading), rowCount tilde handling - Nav and methodology cross-link use shared href Co-authored-by: Cursor <cursoragent@cursor.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds
/ai-transparencylisting every AI or AI-adjacent surface running in the dashboard, with: algorithm, inputs, training data (if any), where the inference runs, what data flows on invocation, and the retention policy. Closes #108.What's inventoried
app/api/analyze), query-result summarizer (app/api/query-summary), course-pairing explainer (app/api/courses/explain-pairing).lib/prompt-analyzer.ts(no LLM, no outbound flow).schools.syntex-ai.com— disclosed honestly, even though it's project-controlled, because it isn't on the institution's infrastructure.Discoveries that shaped the disclosures
CLAUDE.mdandREADME.mdclaimed "5 ML models" and "OpenAI for natural language query analysis" — both inaccurate. The pipeline trains 6 models, and there are 3 distinct OpenAI routes (not just one). Filed fix: docs drift — CLAUDE.md and README claim 5 ML models / 'OpenAI for NLQ' but reality is 6 models + 3 distinct OpenAI routes #125 to fix the docs.schools.syntex-ai.comeven when a local DB is configured. Filed feat: deployment-hardening flag to forceuseDirectDB = trueend-to-end (eliminate schools.syntex-ai.com data flow) #126 to add aFORCE_DIRECT_DBflag for institutions that need a fully-local data path.Student_GUID) is enforced by prompt only, not by code. Filed test: enforce FERPA exclusions in NLQ-generated SQL (Student_GUID never appears in SELECT) #127 to add a runtime guard + test suite.Implementation notes
codebenders-dashboard/content/ai-transparency.tsas a typedAISurface[]. Chose typed TSX over markdown because (a) the codebase convention (/methodologyis the precedent) is structured TSX with content arrays, (b) typed entries enforce required disclosure fields at compile time — the failure mode of a transparency page is omission, and TS catches that, markdown can't.nav-header.tsx(visible to all roles) and from a new "See also" section at the bottom of/methodology.Test plan
npm run devand navigate to/ai-transparency; verify all entries render/methodologyand follow the new cross-linkDeployedvsIn developmentbadges render correctlyHomegrownvsThird-party: <provider>badges render correctlynpm run lintpassesnpx tsc --noEmitpassesRelated
useDirectDB = trueend-to-end (eliminate schools.syntex-ai.com data flow) #126 (FORCE_DIRECT_DB hardening flag), test: enforce FERPA exclusions in NLQ-generated SQL (Student_GUID never appears in SELECT) #127 (FERPA exclusion runtime guard)Deviations from acceptance criteria in #108
/methodology. Equivalent reachability.