https://github.com/tradewinds-center/rabbithole
· scanned 2026-06-16 00:41 UTC (2 months, 1 week ago)
189 raw signals (0 security + 189 graph)
Last scanned 2 months, 1 week ago · v1 · 189 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 2404 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 |
|---|---|---|---|
run |
software | healthy | scripts/verify-teacher-aide.mjs:run |
getMupdfWasmBinary |
software | healthy | scripts/gen-mupdf-wasm.mjs:getMupdfWasmBinary |
login |
software | healthy | scripts/screenshot-assignments.mjs:login |
snap |
software | healthy | scripts/screenshot-assignments.mjs:snap |
logout |
software | healthy | scripts/screenshot-assignments.mjs:logout |
run |
software | healthy | scripts/screenshot-assignments.mjs:run |
log |
software | healthy | scripts/verify-directives-tab.mjs:log |
ok |
software | healthy | scripts/verify-directives-tab.mjs:ok |
fail |
software | healthy | scripts/verify-directives-tab.mjs:fail |
run |
software | healthy | scripts/verify-directives-tab.mjs:run |
visible |
software | healthy | scripts/verify-directives-tab.mjs:visible |
interesting |
software | healthy | scripts/registrar-sweep.mjs:interesting |
visit |
software | healthy | scripts/registrar-sweep.mjs:visit |
run |
software | healthy | scripts/verify-progress-route.mjs:run |
runConvex |
software | healthy | scripts/verify-curriculum-bot-quest.mjs:runConvex |
login |
software | healthy | scripts/verify-curriculum-bot-quest.mjs:login |
reactFill |
software | healthy | scripts/verify-curriculum-bot-quest.mjs:reactFill |
run |
software | healthy | scripts/verify-curriculum-bot-quest.mjs:run |
check |
software | healthy | scripts/verify-curriculum-bot-quest.mjs:check |
runConvex |
software | healthy | scripts/verify-scholar-ia.mjs:runConvex |
login |
software | healthy | scripts/verify-scholar-ia.mjs:login |
run |
software | healthy | scripts/verify-scholar-ia.mjs:run |
check |
software | healthy | scripts/verify-scholar-ia.mjs:check |
log |
software | healthy | scripts/visual-tour.mjs:log |
ok |
software | healthy | scripts/visual-tour.mjs:ok |
warn |
software | healthy | scripts/visual-tour.mjs:warn |
fail |
software | healthy | scripts/visual-tour.mjs:fail |
convexRun |
software | healthy | scripts/visual-tour.mjs:convexRun |
shot |
software | healthy | scripts/visual-tour.mjs:shot |
waitForText |
software | healthy | scripts/visual-tour.mjs:waitForText |
run |
software | healthy | scripts/visual-tour.mjs:run |
runConvex |
software | healthy | scripts/verify-class-tab-redesign.mjs:runConvex |
login |
software | healthy | scripts/verify-class-tab-redesign.mjs:login |
clearActiveFocus |
software | healthy | scripts/verify-class-tab-redesign.mjs:clearActiveFocus |
run |
software | healthy | scripts/verify-class-tab-redesign.mjs:run |
check |
software | healthy | scripts/verify-class-tab-redesign.mjs:check |
aviationVisible |
software | healthy | scripts/verify-class-tab-redesign.mjs:aviationVisible |
login |
software | healthy | scripts/screenshot-shareback.mjs:login |
shot |
software | healthy | scripts/screenshot-shareback.mjs:shot |
run |
software | healthy | scripts/screenshot-shareback.mjs:run |
extractVideoId |
software | healthy | scripts/seed-video-units.js:extractVideoId |
json3ToTranscript |
software | healthy | scripts/seed-video-units.js:json3ToTranscript |
main |
software | healthy | scripts/seed-video-units.js:main |
runAs |
software | healthy | scripts/exploit-check.mjs:runAs |
interesting |
software | healthy | scripts/login-smoke.mjs:interesting |
mintToken |
software | healthy | scripts/login-smoke.mjs:mintToken |
login |
software | healthy | scripts/verify-quest-phase1.mjs:login |
run |
software | healthy | scripts/verify-quest-phase1.mjs:run |
check |
software | healthy | scripts/verify-quest-phase1.mjs:check |
log |
software | healthy | scripts/verify-documents-tab.mjs:log |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
RENAME_SUMMARY.md |
software | healthy | RENAME_SUMMARY.md |
plan.md |
software | healthy | plan.md |
PROMPT_HISTORY.md |
software | healthy | PROMPT_HISTORY.md |
skills-lock.json |
software | healthy | skills-lock.json |
vercel.json |
software | healthy | vercel.json |
README.md |
software | healthy | README.md |
PORTFOLIO_DRIVE_SETUP.md |
software | healthy | PORTFOLIO_DRIVE_SETUP.md |
pnpm-lock.yaml |
software | healthy | pnpm-lock.yaml |
CLAUDE.md |
software | healthy | CLAUDE.md |
VISUAL_STYLE.md |
software | healthy | VISUAL_STYLE.md |
package.json |
software | healthy | package.json |
mise.toml |
software | healthy | mise.toml |
next.config.js |
software | healthy | next.config.js |
capacitor.config.ts |
software | healthy | capacitor.config.ts |
pnpm-workspace.yaml |
software | healthy | pnpm-workspace.yaml |
tsconfig.json |
software | healthy | tsconfig.json |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
UX_AUDIT_2026-04-19.md |
software | healthy | UX_AUDIT_2026-04-19.md |
rabbithole-overview.md |
software | healthy | rabbithole-overview.md |
vitest.config.ts |
software | healthy | vitest.config.ts |
TODO.md |
software | healthy | TODO.md |
portfolio-offline-projects-plan.md |
software | healthy | review/portfolio-offline-projects-plan.md |
slack-bot-plan.md |
software | healthy | review/slack-bot-plan.md |
capacitor-ipad-plan.md |
software | healthy | review/capacitor-ipad-plan.md |
observer-assessment-redesign.md |
software | healthy | review/observer-assessment-redesign.md |
assignments-screenshots.md |
software | healthy | review/assignments-screenshots.md |
quests-prd.md |
software | healthy | review/quests-prd.md |
design-vs-execution-split.md |
software | healthy | review/design-vs-execution-split.md |
shareback-offline-activity.md |
software | healthy | review/shareback-offline-activity.md |
passkey-auth-plan.md |
software | healthy | review/passkey-auth-plan.md |
homework-on-assignment.md |
software | healthy | review/homework-on-assignment.md |
class-tab-redesign.md |
software | healthy | review/class-tab-redesign.md |
calendar-view-plan.md |
software | healthy | review/calendar-view-plan.md |
scholar-IS-codesign.md |
software | healthy | review/scholar-IS-codesign.md |
learner-parent-pedagogy.md |
software | healthy | review/learner-parent-pedagogy.md |
mcp-oauth-plan.md |
software | healthy | review/mcp-oauth-plan.md |
web-assignment-plan.md |
software | healthy | review/web-assignment-plan.md |
quests-built.md |
software | healthy | review/quests-built.md |
registrar-role-plan.md |
software | healthy | review/registrar-role-plan.md |
opus-vs-sonnet-tutor-bakeoff-2026-06-01.md |
software | healthy | review/opus-vs-sonnet-tutor-bakeoff-2026-06-01.md |
assignments-built.md |
software | healthy | review/assignments-built.md |
parent-role-plan.md |
software | healthy | review/parent-role-plan.md |
kill-quests-elevate-IS.md |
software | healthy | review/kill-quests-elevate-IS.md |
chat-surface-consolidation-plan.md |
software | healthy | review/chat-surface-consolidation-plan.md |
mcp-auth-manual-test.md |
software | healthy | review/mcp-auth-manual-test.md |
visual-harmonization.md |
software | healthy | review/visual-harmonization.md |
assignments-prd.md |
software | healthy | review/assignments-prd.md |
shareback-screenshots.md |
software | healthy | review/shareback-screenshots.md |
auth-dry-test-plan.md |
software | healthy | review/auth-dry-test-plan.md |
scholar-home-activity-centric.md |
software | healthy | review/scholar-home-activity-centric.md |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
review |
software | healthy | review |
scripts |
software | healthy | scripts |
lib |
software | healthy | scripts/lib |
components |
software | healthy | components |
hierarchy |
software | healthy | components/hierarchy |
ui |
software | healthy | components/ui |
nodeEditor |
software | healthy | components/nodeEditor |
convex |
software | healthy | convex |
__tests__ |
software | healthy | convex/__tests__ |
lib |
software | healthy | convex/lib |
__tests__ |
software | healthy | convex/lib/__tests__ |
_generated |
software | healthy | convex/_generated |
app |
software | healthy | app |
setup-passkey |
software | healthy | app/setup-passkey |
sign-up |
software | healthy | app/sign-up |
parent |
software | healthy | app/parent |
[[...tab]] |
software | healthy | app/parent/[[...tab]] |
login |
software | healthy | app/login |
api |
software | healthy | app/api |
mcp |
software | healthy | app/api/mcp |
drive |
software | healthy | app/api/drive |
webhook |
software | healthy | app/api/drive/webhook |
oauth |
software | healthy | app/api/oauth |
token |
software | healthy | app/api/oauth/token |
metadata |
software | healthy | app/api/oauth/metadata |
protected-resource |
software | healthy | app/api/oauth/metadata/protected-resource |
authorization-server |
software | healthy | app/api/oauth/metadata/authorization-server |
register |
software | healthy | app/api/oauth/register |
dev-web-assignment |
software | healthy | app/dev-web-assignment |
sign-in |
software | healthy | app/sign-in |
homework |
software | healthy | app/homework |
oauth |
software | healthy | app/oauth |
authorize |
software | healthy | app/oauth/authorize |
admin |
software | healthy | app/admin |
enroll |
software | healthy | app/enroll |
scholar |
software | healthy | app/scholar |
unit |
software | healthy | app/scholar/unit |
[unitId] |
software | healthy | app/scholar/unit/[unitId] |
[projectId] |
software | healthy | app/scholar/[projectId] |
progress |
software | healthy | app/scholar/[projectId]/progress |
profile |
software | healthy | app/scholar/profile |
me |
software | healthy | app/me |
dev-scrolltest |
software | healthy | app/dev-scrolltest |
dev-login |
software | healthy | app/dev-login |
teacher |
software | healthy | app/teacher |
process |
software | healthy | app/teacher/process |
[processId] |
software | healthy | app/teacher/process/[processId] |
unit |
software | healthy | app/teacher/unit |
[unitId] |
software | healthy | app/teacher/unit/[unitId] |
activity |
software | healthy | app/teacher/activity |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
focus |
software | healthy | scripts/screenshot-assignments.mjs:focus |
focus |
software | healthy | scripts/verify-scholar-ia.mjs:focus |
assignment |
software | healthy | scripts/verify-class-tab-redesign.mjs:assignment |
focus |
software | healthy | scripts/verify-class-tab-redesign.mjs:focus |
focus |
software | healthy | scripts/verify-assignments-phase3.mjs:focus |
yet |
software | healthy | components/UnitProgressDashboard.tsx:yet |
focus |
software | healthy | components/AssignmentPanel.tsx:focus |
focus |
software | healthy | components/UnitPickerDialog.tsx:focus |
assignment |
software | healthy | components/ClassActiveView.tsx:assignment |
focus |
software | healthy | components/ClassActiveView.tsx:focus |
ErrorBoundary |
software | healthy | components/ErrorBoundary.tsx:ErrorBoundary |
with |
software | healthy | components/ShareBackFacilitation.tsx:with |
produced |
software | healthy | components/ShareBackFacilitation.tsx:produced |
units |
software | healthy | components/ScholarPlate.tsx:units |
progress |
software | healthy | components/CurriculumUnitsBrowser.tsx:progress |
or |
software | healthy | components/CurriculumUnitsBrowser.tsx:or |
focus |
software | healthy | components/CurriculumUnitsBrowser.tsx:focus |
as |
software | healthy | components/ScheduleActivityDialog.tsx:as |
focus |
software | healthy | components/ScholarAssignmentsCard.tsx:focus |
assignment |
software | healthy | components/StartAssignmentDialog.tsx:assignment |
with |
software | healthy | components/StartAssignmentDialog.tsx:with |
with |
software | healthy | components/IndependentStudyTab.tsx:with |
assignment |
software | healthy | components/ui/SectionEyebrow.tsx:assignment |
produced |
software | healthy | components/nodeEditor/ShareBackSection.tsx:produced |
visual |
software | healthy | components/nodeEditor/SlidesFields.tsx:visual |
focus |
software | healthy | convex/seedUnitForTesting.ts:focus |
progress |
software | healthy | convex/schema.ts:progress |
focus |
software | healthy | convex/schema.ts:focus |
focus |
software | healthy | convex/users.ts:focus |
right |
software | healthy | convex/slackBot.ts:right |
focus |
software | healthy | convex/assignments.ts:focus |
progress |
software | healthy | convex/assignments.ts:progress |
collectively |
software | healthy | convex/shareBackActions.ts:collectively |
of |
software | healthy | convex/shareBackActions.ts:of |
can |
software | healthy | convex/shareBackActions.ts:can |
focus |
software | healthy | convex/_devVerify.ts:focus |
focus |
software | healthy | convex/__tests__/calendarScheduling.test.ts:focus |
SlackStreamer |
software | healthy | convex/lib/slackApi.ts:SlackStreamer |
working |
software | healthy | convex/lib/aideTools.ts:working |
progress |
software | healthy | convex/lib/roles.ts:progress |
is |
software | healthy | app/scholar/page.tsx:is |
SentenceAccumulator |
software | healthy | lib/sentenceStream.ts:SentenceAccumulator |
focus |
software | healthy | lib/activityMode.tsx:focus |
TestEngine |
software | healthy | lib/__tests__/ttsEngine.test.ts:TestEngine |
TTSEngine |
software | healthy | hooks/useTTSQueue.ts:TTSEngine |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::convex/auth.ts |
security | healthy | convex/auth.ts |
auth::convex/lib/__tests__/aideTools.test.ts |
security | healthy | convex/lib/__tests__/aideTools.test.ts |
auth::convex/googleAccounts.ts |
security | healthy | convex/googleAccounts.ts |
auth::convex/__tests__/mcp.test.ts |
security | healthy | convex/__tests__/mcp.test.ts |
auth::convex/mcpOauth.ts |
security | healthy | convex/mcpOauth.ts |
auth::convex/seedData.ts |
security | healthy | convex/seedData.ts |
auth::app/api/oauth/metadata/authorization-server/route.ts |
security | healthy | app/api/oauth/metadata/authorization-server/route.ts |
auth::convex/lib/scholarReads.ts |
security | healthy | convex/lib/scholarReads.ts |
auth::app/oauth/authorize/page.tsx |
security | healthy | app/oauth/authorize/page.tsx |
auth::convex/lib/oauthCrypto.ts |
security | healthy | convex/lib/oauthCrypto.ts |
auth::convex/lib/scholarReadTools.ts |
security | healthy | convex/lib/scholarReadTools.ts |
auth::next.config.js |
security | healthy | next.config.js |
auth::app/api/oauth/register/route.ts |
security | healthy | app/api/oauth/register/route.ts |
auth::convex/lib/__tests__/scholarReadPolicy.test.ts |
security | healthy | convex/lib/__tests__/scholarReadPolicy.test.ts |
auth::components/AuthForm.tsx |
security | healthy | components/AuthForm.tsx |
auth::convex/http.ts |
security | healthy | convex/http.ts |
auth::convex/lib/aideTools.ts |
security | healthy | convex/lib/aideTools.ts |
auth::components/GoogleAccountConnect.tsx |
security | healthy | components/GoogleAccountConnect.tsx |
auth::lib/oauthHttp.ts |
security | healthy | lib/oauthHttp.ts |
auth::scripts/login-smoke.mjs |
security | healthy | scripts/login-smoke.mjs |
auth::convex/lib/__tests__/scholarReadTools.test.ts |
security | healthy | convex/lib/__tests__/scholarReadTools.test.ts |
auth::convex/lib/google.ts |
security | healthy | convex/lib/google.ts |
auth::app/api/oauth/token/route.ts |
security | healthy | app/api/oauth/token/route.ts |
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
auth::app/api/oauth/metadata/protected-resource/route.ts |
security | healthy | app/api/oauth/metadata/protected-resource/route.ts |
auth::scripts/registrar-shots.mjs |
security | healthy | scripts/registrar-shots.mjs |
auth::hooks/useStreamRegistry.tsx |
security | healthy | hooks/useStreamRegistry.tsx |
auth::convex/slidesActions.ts |
security | healthy | convex/slidesActions.ts |
auth::hooks/useAgentStream.ts |
security | healthy | hooks/useAgentStream.ts |
auth::scripts/verify-mcp-oauth.mjs |
security | healthy | scripts/verify-mcp-oauth.mjs |
auth::scripts/registrar-sweep.mjs |
security | healthy | scripts/registrar-sweep.mjs |
auth::convex/__tests__/scholarReadTools.test.ts |
security | healthy | convex/__tests__/scholarReadTools.test.ts |
auth::convex/googleAccountsActions.ts |
security | healthy | convex/googleAccountsActions.ts |
auth::convex/mcp.ts |
security | healthy | convex/mcp.ts |
auth::scripts/worktree-up.sh |
security | healthy | scripts/worktree-up.sh |
auth::components/GooglePickerButton.tsx |
security | healthy | components/GooglePickerButton.tsx |
auth::scripts/exploit-check.mjs |
security | healthy | scripts/exploit-check.mjs |
auth::app/api/mcp/route.ts |
security | healthy | app/api/mcp/route.ts |
auth::convex/schema.ts |
security | healthy | convex/schema.ts |
auth::convex/__tests__/googleState.test.ts |
security | healthy | convex/__tests__/googleState.test.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
CurriculumAssistant |
frontend | healthy | components/CurriculumAssistant.tsx |
NotFound |
frontend | healthy | app/not-found.tsx |
Home |
frontend | healthy | app/page.tsx |
RootLayout |
frontend | healthy | app/layout.tsx |
SetupPasskeyPage |
frontend | healthy | app/setup-passkey/page.tsx |
SignUpPage |
frontend | healthy | app/sign-up/page.tsx |
ParentPage |
frontend | healthy | app/parent/[[...tab]]/page.tsx |
LoginRedirect |
frontend | healthy | app/login/page.tsx |
DevWebAssignmentPage |
frontend | healthy | app/dev-web-assignment/page.tsx |
SignInPage |
frontend | healthy | app/sign-in/page.tsx |
HomeworkPage |
frontend | healthy | app/homework/page.tsx |
AuthorizePage |
frontend | healthy | app/oauth/authorize/page.tsx |
AdminPage |
frontend | healthy | app/admin/page.tsx |
EnrollPage |
frontend | healthy | app/enroll/page.tsx |
ScholarPage |
frontend | healthy | app/scholar/page.tsx |
UnitProgressPage |
frontend | healthy | app/scholar/unit/[unitId]/page.tsx |
ScholarProjectPage |
frontend | healthy | app/scholar/[projectId]/page.tsx |
ProgressPage |
frontend | healthy | app/scholar/[projectId]/progress/page.tsx |
ScholarProfileRedirect |
frontend | healthy | app/scholar/profile/page.tsx |
MyLearningPage |
frontend | healthy | app/me/page.tsx |
DevScrollTest |
frontend | healthy | app/dev-scrolltest/page.tsx |
DevLoginPage |
frontend | healthy | app/dev-login/page.tsx |
TeacherPage |
frontend | healthy | app/teacher/page.tsx |
TeacherDashboardInner |
frontend | healthy | app/teacher/TeacherDashboard.tsx |
ProcessDetailPage |
frontend | healthy | app/teacher/process/[processId]/page.tsx |
UnitDesignerPage |
frontend | healthy | app/teacher/unit/[unitId]/page.tsx |
ActivityPresenterPage |
frontend | healthy | app/teacher/activity/[activityId]/present/page.tsx |
PersonaDetailPage |
frontend | healthy | app/teacher/persona/[personaId]/page.tsx |
ShareBackPage |
frontend | healthy | app/teacher/shareback/[activityId]/page.tsx |
AssignmentPage |
frontend | healthy | app/teacher/assignment/[assignmentId]/page.tsx |
PerspectiveDetailPage |
frontend | healthy | app/teacher/perspective/[perspectiveId]/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/project-stream |
frontend | healthy | convex/http.ts |
/aide-stream |
frontend | healthy | convex/http.ts |
/analyze |
frontend | healthy | convex/http.ts |
/tts |
frontend | healthy | convex/http.ts |
/google/oauth/callback |
frontend | healthy | convex/http.ts |
/drive-webhook |
frontend | healthy | convex/http.ts |
/parent-chat-stream |
frontend | healthy | convex/http.ts |
/slack/events |
frontend | healthy | convex/http.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
port:64 |
network | healthy | pnpm-lock.yaml |
port:16 |
network | healthy | pnpm-lock.yaml |
port:1041 |
network | healthy | scripts/write-launch-json.sh |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | scripts/worktree-up.sh |
120.0.0.0 |
network | healthy | convex/youtubeActions.ts |
4.1.2.1 |
network | healthy | convex/mcpOauth.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-6gzn9p7c |
software | healthy | /tmp/repobility-clone-6gzn9p7c |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
password_literal::scripts/verify-scholar-plate.mjs |
security | healthy | scripts/verify-scholar-plate.mjs |
This page is publicly accessible at:
https://repobility.com/scan/55e6a179-d84b-4be4-a6c3-8f81f42660aa/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/55e6a179-d84b-4be4-a6c3-8f81f42660aa/
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.