https://github.com/zackharen/mathclaw-next
· scanned 2026-06-16 01:10 UTC (2 months, 1 week ago)
41 raw signals (0 security + 41 graph)
Last scanned 2 months, 1 week ago · v1 · 41 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1870 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
middleware |
software | healthy | middleware.js:middleware |
formatChoices |
software | healthy | tests/double-board-multiple-choice.test.mjs:formatChoices |
makeEntry |
software | healthy | tests/integer-progression.test.mjs:makeEntry |
buildProfile |
software | healthy | tests/integer-progression.test.mjs:buildProfile |
players |
software | healthy | tests/connect4-tournaments.test.mjs:players |
readEnvFile |
software | healthy | scripts/compact-auth-metadata.mjs:readEnvFile |
removeLegacySavedGames |
software | healthy | scripts/compact-auth-metadata.mjs:removeLegacySavedGames |
byteLength |
software | healthy | scripts/compact-auth-metadata.mjs:byteLength |
findUserByEmail |
software | healthy | scripts/compact-auth-metadata.mjs:findUserByEmail |
stable_uuid |
software | healthy | scripts/build_curriculum_seed.py:63 |
norm_text |
software | healthy | scripts/build_curriculum_seed.py:68 |
normalize_standard |
software | healthy | scripts/build_curriculum_seed.py:72 |
extract_source_lesson_code |
software | healthy | scripts/build_curriculum_seed.py:95 |
read_csv_lessons |
software | healthy | scripts/build_curriculum_seed.py:111 |
sql_literal |
software | healthy | scripts/build_curriculum_seed.py:156 |
build_sql |
software | healthy | scripts/build_curriculum_seed.py:163 |
main |
software | healthy | scripts/build_curriculum_seed.py:250 |
MathText |
software | healthy | components/math-display.js:MathText |
MathInlineText |
software | healthy | components/math-display.js:MathInlineText |
HomePage |
software | healthy | app/page.js:HomePage |
isActive |
software | healthy | app/app-nav.js:isActive |
AppNav |
software | healthy | app/app-nav.js:AppNav |
RootLayout |
software | healthy | app/layout.js:RootLayout |
courseIds |
software | healthy | app/layout.js:courseIds |
AboutPage |
software | healthy | app/about/page.js:AboutPage |
signOutAction |
software | healthy | app/auth/actions.js:signOutAction |
SignUpPage |
software | healthy | app/auth/sign-up/page.js:SignUpPage |
buildCallbackUrl |
software | healthy | app/auth/sign-up/sign-up-form.js:buildCallbackUrl |
friendlyAuthError |
software | healthy | app/auth/sign-up/sign-up-form.js:friendlyAuthError |
SignUpForm |
software | healthy | app/auth/sign-up/sign-up-form.js:SignUpForm |
onSignUp |
software | healthy | app/auth/sign-up/sign-up-form.js:onSignUp |
onGoogleSignUp |
software | healthy | app/auth/sign-up/sign-up-form.js:onGoogleSignUp |
appendQueryParams |
software | healthy | app/auth/callback/route.js:appendQueryParams |
joinCourseByCodeForUser |
software | healthy | app/auth/callback/route.js:joinCourseByCodeForUser |
GET |
software | healthy | app/auth/callback/route.js:GET |
friendlyAuthError |
software | healthy | app/auth/sign-in/sign-in-form.js:friendlyAuthError |
SignInForm |
software | healthy | app/auth/sign-in/sign-in-form.js:SignInForm |
onEmailSignIn |
software | healthy | app/auth/sign-in/sign-in-form.js:onEmailSignIn |
onGoogleSignIn |
software | healthy | app/auth/sign-in/sign-in-form.js:onGoogleSignIn |
SignInPage |
software | healthy | app/auth/sign-in/page.js:SignInPage |
gameHref |
software | healthy | app/play/page.js:gameHref |
tournamentHref |
software | healthy | app/play/page.js:tournamentHref |
describeCourseRelationship |
software | healthy | app/play/page.js:describeCourseRelationship |
getGameTags |
software | healthy | app/play/page.js:getGameTags |
formatStatNumber |
software | healthy | app/play/page.js:formatStatNumber |
formatPercent |
software | healthy | app/play/page.js:formatPercent |
formatAwardPoints |
software | healthy | app/play/page.js:formatAwardPoints |
formatAwardDate |
software | healthy | app/play/page.js:formatAwardDate |
ArcadeDisclosure |
software | healthy | app/play/page.js:ArcadeDisclosure |
statRowsForGame |
software | healthy | app/play/page.js:statRowsForGame |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
middleware.js |
software | healthy | middleware.js |
jsconfig.json |
software | healthy | jsconfig.json |
README.md |
software | healthy | README.md |
package.json |
software | healthy | package.json |
package-lock.json |
software | healthy | package-lock.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
next.config.mjs |
software | healthy | next.config.mjs |
double-board-multiple-choice.test.mjs |
software | healthy | tests/double-board-multiple-choice.test.mjs |
integer-progression.test.mjs |
software | healthy | tests/integer-progression.test.mjs |
connect4-tournaments.test.mjs |
software | healthy | tests/connect4-tournaments.test.mjs |
connect4-replay.test.mjs |
software | healthy | tests/connect4-replay.test.mjs |
mvp-flow.md |
software | healthy | docs/mvp-flow.md |
curriculum-import.md |
software | healthy | docs/curriculum-import.md |
auth-setup.md |
software | healthy | docs/auth-setup.md |
compact-auth-metadata.mjs |
software | healthy | scripts/compact-auth-metadata.mjs |
build_curriculum_seed.py |
software | healthy | scripts/build_curriculum_seed.py |
math-display.js |
software | healthy | components/math-display.js |
page.js |
software | healthy | app/page.js |
globals.css |
software | healthy | app/globals.css |
app-nav.js |
software | healthy | app/app-nav.js |
page.module.css |
software | healthy | app/page.module.css |
layout.js |
software | healthy | app/layout.js |
page.js |
software | healthy | app/about/page.js |
actions.js |
software | healthy | app/auth/actions.js |
page.js |
software | healthy | app/auth/sign-up/page.js |
sign-up-form.js |
software | healthy | app/auth/sign-up/sign-up-form.js |
route.js |
software | healthy | app/auth/callback/route.js |
sign-in-form.js |
software | healthy | app/auth/sign-in/sign-in-form.js |
page.js |
software | healthy | app/auth/sign-in/page.js |
page.js |
software | healthy | app/play/page.js |
actions.js |
software | healthy | app/play/actions.js |
page.js |
software | healthy | app/play/number-compare/page.js |
game-client.js |
software | healthy | app/play/number-compare/game-client.js |
page.js |
software | healthy | app/play/money-counting/page.js |
game-client.js |
software | healthy | app/play/money-counting/game-client.js |
page.js |
software | healthy | app/play/sudoku/page.js |
game-client.js |
software | healthy | app/play/sudoku/game-client.js |
page.js |
software | healthy | app/play/showdown-framework/page.js |
game-client.js |
software | healthy | app/play/showdown-framework/game-client.js |
page.js |
software | healthy | app/play/lowest-number-wins/page.js |
game-client.js |
software | healthy | app/play/lowest-number-wins/game-client.js |
page.js |
software | healthy | app/play/question-kind-review/page.js |
game-client.js |
software | healthy | app/play/question-kind-review/game-client.js |
page.js |
software | healthy | app/play/minesweeper/page.js |
game-client.js |
software | healthy | app/play/minesweeper/game-client.js |
page.js |
software | healthy | app/play/locker-practice/page.js |
game-client.js |
software | healthy | app/play/locker-practice/game-client.js |
page.js |
software | healthy | app/play/comet-typing/page.js |
game-client.js |
software | healthy | app/play/comet-typing/game-client.js |
page.js |
software | healthy | app/play/review-games/page.js |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
LessonRow |
software | healthy | scripts/build_curriculum_seed.py:52 |
code |
software | healthy | app/auth/sign-up/sign-up-form.js:code |
yet |
software | healthy | app/play/page.js:yet |
games |
software | healthy | app/play/page.js:games |
code |
software | healthy | app/play/page.js:code |
could |
software | healthy | app/play/page.js:could |
first |
software | healthy | app/play/page.js:first |
selected |
software | healthy | app/play/number-compare/game-client.js:selected |
leaderboard |
software | healthy | app/play/number-compare/game-client.js:leaderboard |
to |
software | healthy | app/play/number-compare/game-client.js:to |
scores |
software | healthy | app/play/number-compare/game-client.js:scores |
selected |
software | healthy | app/play/money-counting/game-client.js:selected |
leaderboard |
software | healthy | app/play/money-counting/game-client.js:leaderboard |
to |
software | healthy | app/play/money-counting/game-client.js:to |
scores |
software | healthy | app/play/money-counting/game-client.js:scores |
leaderboard |
software | healthy | app/play/sudoku/game-client.js:leaderboard |
to |
software | healthy | app/play/sudoku/game-client.js:to |
Sudoku |
software | healthy | app/play/sudoku/game-client.js:Sudoku |
selected |
software | healthy | app/play/showdown-framework/game-client.js:selected |
leaderboard |
software | healthy | app/play/showdown-framework/game-client.js:leaderboard |
scores |
software | healthy | app/play/showdown-framework/game-client.js:scores |
to |
software | healthy | app/play/showdown-framework/game-client.js:to |
with |
software | healthy | app/play/lowest-number-wins/game-client.js:with |
right |
software | healthy | app/play/lowest-number-wins/game-client.js:right |
selected |
software | healthy | app/play/question-kind-review/game-client.js:selected |
leaderboard |
software | healthy | app/play/question-kind-review/game-client.js:leaderboard |
to |
software | healthy | app/play/question-kind-review/game-client.js:to |
review |
software | healthy | app/play/question-kind-review/game-client.js:review |
leaderboard |
software | healthy | app/play/minesweeper/game-client.js:leaderboard |
to |
software | healthy | app/play/minesweeper/game-client.js:to |
scores |
software | healthy | app/play/minesweeper/game-client.js:scores |
selected |
software | healthy | app/play/locker-practice/game-client.js:selected |
leaderboard |
software | healthy | app/play/locker-practice/game-client.js:leaderboard |
to |
software | healthy | app/play/locker-practice/game-client.js:to |
scores |
software | healthy | app/play/locker-practice/game-client.js:scores |
selected |
software | healthy | app/play/comet-typing/game-client.js:selected |
leaderboard |
software | healthy | app/play/comet-typing/game-client.js:leaderboard |
to |
software | healthy | app/play/comet-typing/game-client.js:to |
scores |
software | healthy | app/play/comet-typing/game-client.js:scores |
context |
software | healthy | app/play/review-games/page.js:context |
yet |
software | healthy | app/play/review-games/page.js:yet |
yet |
software | healthy | app/play/open-middle/game-client.js:yet |
or |
software | healthy | app/play/tournaments/tournament-client.js:or |
yet |
software | healthy | app/play/tournaments/tournament-client.js:yet |
DoubleBoardErrorBoundary |
software | healthy | app/play/double-board/game-client.js:DoubleBoardErrorBounda… |
roster |
software | healthy | app/play/double-board/game-client.js:roster |
choose |
software | healthy | app/play/double-board/game-client.js:choose |
selected |
software | healthy | app/play/telling-time/game-client.js:selected |
leaderboard |
software | healthy | app/play/telling-time/game-client.js:leaderboard |
to |
software | healthy | app/play/telling-time/game-client.js:to |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
docs |
software | healthy | docs |
scripts |
software | healthy | scripts |
components |
software | healthy | components |
app |
software | healthy | app |
about |
software | healthy | app/about |
auth |
software | healthy | app/auth |
sign-up |
software | healthy | app/auth/sign-up |
callback |
software | healthy | app/auth/callback |
sign-in |
software | healthy | app/auth/sign-in |
play |
software | healthy | app/play |
number-compare |
software | healthy | app/play/number-compare |
money-counting |
software | healthy | app/play/money-counting |
sudoku |
software | healthy | app/play/sudoku |
showdown-framework |
software | healthy | app/play/showdown-framework |
lowest-number-wins |
software | healthy | app/play/lowest-number-wins |
question-kind-review |
software | healthy | app/play/question-kind-review |
minesweeper |
software | healthy | app/play/minesweeper |
locker-practice |
software | healthy | app/play/locker-practice |
comet-typing |
software | healthy | app/play/comet-typing |
review-games |
software | healthy | app/play/review-games |
open-middle |
software | healthy | app/play/open-middle |
[sessionId] |
software | healthy | app/play/open-middle/[sessionId] |
tournaments |
software | healthy | app/play/tournaments |
lowest_number_wins |
software | healthy | app/play/lowest_number_wins |
double-board |
software | healthy | app/play/double-board |
telling-time |
software | healthy | app/play/telling-time |
2048 |
software | healthy | app/play/2048 |
integer-practice |
software | healthy | app/play/integer-practice |
connect4 |
software | healthy | app/play/connect4 |
skill-builder |
software | healthy | app/play/skill-builder |
spiral-review |
software | healthy | app/play/spiral-review |
slope-intercept |
software | healthy | app/play/slope-intercept |
api |
software | healthy | app/api |
play |
software | healthy | app/api/play |
lowest-number-wins |
software | healthy | app/api/play/lowest-number-wins |
connect4-tournaments |
software | healthy | app/api/play/connect4-tournaments |
open-middle |
software | healthy | app/api/play/open-middle |
leaderboard |
software | healthy | app/api/play/leaderboard |
double-board |
software | healthy | app/api/play/double-board |
save-state |
software | healthy | app/api/play/save-state |
session |
software | healthy | app/api/play/session |
connect4 |
software | healthy | app/api/play/connect4 |
dashboard |
software | healthy | app/api/dashboard |
announcement-assignments |
software | healthy | app/api/dashboard/announcement-assignments |
projector |
software | healthy | app/api/projector |
upload-video |
software | healthy | app/api/projector/upload-video |
dashboard |
software | healthy | app/dashboard |
projector |
software | healthy | app/projector |
screen |
software | healthy | app/projector/screen |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
migrations_20260608_teacher_announcement_assignments.sql |
data | healthy | supabase/migrations_20260608_teacher_announcement_assignmen… |
migrations_20260326_account_types.sql |
data | healthy | supabase/migrations_20260326_account_types.sql |
migrations_20260331_teacher_course_students_rpc.sql |
data | healthy | supabase/migrations_20260331_teacher_course_students_rpc.sql |
migrations_20260423_player_account_type.sql |
data | healthy | supabase/migrations_20260423_player_account_type.sql |
migrations_20260421_saved_game_progress.sql |
data | healthy | supabase/migrations_20260421_saved_game_progress.sql |
migrations_20260607_teacher_absences.sql |
data | healthy | supabase/migrations_20260607_teacher_absences.sql |
migrations_20260423_connect4_rls_tighten.sql |
data | healthy | supabase/migrations_20260423_connect4_rls_tighten.sql |
migrations_20260424_course_members_table.sql |
data | healthy | supabase/migrations_20260424_course_members_table.sql |
migrations_20260401_course_game_leaderboard_rpc.sql |
data | healthy | supabase/migrations_20260401_course_game_leaderboard_rpc.sql |
migrations_20260607_teacher_marking_period_rules.sql |
data | healthy | supabase/migrations_20260607_teacher_marking_period_rules.s… |
migrations_20260605_relabel_ab_days_skip_off.sql |
data | healthy | supabase/migrations_20260605_relabel_ab_days_skip_off.sql |
migrations_20260602_projector_library_category.sql |
data | healthy | supabase/migrations_20260602_projector_library_category.sql |
migrations_20260401_editable_courses_rpc.sql |
data | healthy | supabase/migrations_20260401_editable_courses_rpc.sql |
migrations_20260605_grace_day_type.sql |
data | healthy | supabase/migrations_20260605_grace_day_type.sql |
migrations_20260303_teacher_discovery.sql |
data | healthy | supabase/migrations_20260303_teacher_discovery.sql |
migrations_20260401_course_game_settings.sql |
data | healthy | supabase/migrations_20260401_course_game_settings.sql |
migrations_20260303_performance_indexes.sql |
data | healthy | supabase/migrations_20260303_performance_indexes.sql |
migrations_20260426_lowest_number_wins.sql |
data | healthy | supabase/migrations_20260426_lowest_number_wins.sql |
migrations_20260609_teacher_announcement_assignment_rule_ov… |
data | healthy | supabase/migrations_20260609_teacher_announcement_assignmen… |
migrations_20260607_teacher_absences_grants.sql |
data | healthy | supabase/migrations_20260607_teacher_absences_grants.sql |
migrations_20260324_student_games_foundation.sql |
data | healthy | supabase/migrations_20260324_student_games_foundation.sql |
migrations_20260413_double_board_sessions.sql |
data | healthy | supabase/migrations_20260413_double_board_sessions.sql |
migrations_20260427_double_board_decimal_percents.sql |
data | healthy | supabase/migrations_20260427_double_board_decimal_percents.… |
migrations_20260331_join_course_by_code_rpc.sql |
data | healthy | supabase/migrations_20260331_join_course_by_code_rpc.sql |
migrations_20260609_announcement_assignment_override_skips.… |
data | healthy | supabase/migrations_20260609_announcement_assignment_overri… |
migrations_20260602_projector_scene_library_items.sql |
data | healthy | supabase/migrations_20260602_projector_scene_library_items.… |
migrations_20260601_projector_sessions.sql |
data | healthy | supabase/migrations_20260601_projector_sessions.sql |
migrations_20260513_profile_nicknames.sql |
data | healthy | supabase/migrations_20260513_profile_nicknames.sql |
migrations_20260303_announcement_ai_blocks.sql |
data | healthy | supabase/migrations_20260303_announcement_ai_blocks.sql |
migrations_20260402_add_arcade_focus_games.sql |
data | healthy | supabase/migrations_20260402_add_arcade_focus_games.sql |
migrations_20260423_profiles_courses_rls.sql |
data | healthy | supabase/migrations_20260423_profiles_courses_rls.sql |
migrations_20260408_rls_for_bug_reports_and_game_settings.s… |
data | healthy | supabase/migrations_20260408_rls_for_bug_reports_and_game_s… |
migrations_20260506_connect4_tournaments.sql |
data | healthy | supabase/migrations_20260506_connect4_tournaments.sql |
migrations_20260424_open_middle.sql |
data | healthy | supabase/migrations_20260424_open_middle.sql |
migrations_add_ab_meeting_day.sql |
data | healthy | supabase/migrations_add_ab_meeting_day.sql |
migrations_20260401_bug_reports.sql |
data | healthy | supabase/migrations_20260401_bug_reports.sql |
migrations_20260609_announcement_rule_count_range.sql |
data | healthy | supabase/migrations_20260609_announcement_rule_count_range.… |
migrations_20260605_pacing_lesson_slots.sql |
data | healthy | supabase/migrations_20260605_pacing_lesson_slots.sql |
migrations_20260401_internal_event_logs.sql |
data | healthy | supabase/migrations_20260401_internal_event_logs.sql |
migrations_20260401_arcade_co_teacher_access.sql |
data | healthy | supabase/migrations_20260401_arcade_co_teacher_access.sql |
migrations_20260602_projector_scene_folders.sql |
data | healthy | supabase/migrations_20260602_projector_scene_folders.sql |
migrations_20260423_rls_intent_docs.sql |
data | healthy | supabase/migrations_20260423_rls_intent_docs.sql |
migrations_20260608_teacher_announcement_assignment_rules.s… |
data | healthy | supabase/migrations_20260608_teacher_announcement_assignmen… |
migrations_20260331_accessible_courses_and_save_session_rpc… |
data | healthy | supabase/migrations_20260331_accessible_courses_and_save_se… |
migrations_20260424_rls_security_definer_functions.sql |
data | healthy | supabase/migrations_20260424_rls_security_definer_functions… |
migrations_20260303_pacing_and_template_options.sql |
data | healthy | supabase/migrations_20260303_pacing_and_template_options.sql |
migrations_20260303_school_calendar.sql |
data | healthy | supabase/migrations_20260303_school_calendar.sql |
migrations_20260331_connect4_join_rpc.sql |
data | healthy | supabase/migrations_20260331_connect4_join_rpc.sql |
migrations_20260607_teacher_marking_periods.sql |
data | healthy | supabase/migrations_20260607_teacher_marking_periods.sql |
migrations_20260331_teacher_course_stats_rpc.sql |
data | healthy | supabase/migrations_20260331_teacher_course_stats_rpc.sql |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
public |
data | healthy | supabase/migrations_20260608_teacher_announcement_assignmen… |
lowest_number_wins_sessions |
data | healthy | supabase/migrations_20260426_lowest_number_wins.sql |
lowest_number_wins_players |
data | healthy | supabase/migrations_20260426_lowest_number_wins.sql |
lowest_number_wins_picks |
data | healthy | supabase/migrations_20260426_lowest_number_wins.sql |
projector_scene_library_items |
data | healthy | supabase/migrations_20260602_projector_scene_library_items.… |
projector_sessions |
data | healthy | supabase/migrations_20260601_projector_sessions.sql |
projector_scene_folders |
data | healthy | supabase/migrations_20260602_projector_scene_folders.sql |
projector_library_items |
data | healthy | supabase/migrations_20260601_projector_library_items.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-is23_465 |
software | healthy | /tmp/repobility-clone-is23_465 |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | lib/auth/account-type.js |
This page is publicly accessible at:
https://repobility.com/scan/2d9c04f1-4fa9-44ac-aacd-8a0ba7a9b1fa/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/2d9c04f1-4fa9-44ac-aacd-8a0ba7a9b1fa/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.