https://github.com/sean712/languageteacher
· scanned 2026-06-16 00:05 UTC (2 months, 3 weeks ago)
36 raw signals (0 security + 36 graph)
Last scanned 2 months, 3 weeks ago · v1 · 34 actionable findings from 1 signal source. 2 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 337 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 |
|---|---|---|---|
fetchTranscript |
software | healthy | scripts/ingest-local.mjs:fetchTranscript |
parseCaptionBody |
software | healthy | scripts/ingest-local.mjs:parseCaptionBody |
normalize |
software | healthy | scripts/ingest-local.mjs:normalize |
decodeXmlEntities |
software | healthy | scripts/ingest-local.mjs:decodeXmlEntities |
invoke |
software | healthy | scripts/ingest-local.mjs:invoke |
printResults |
software | healthy | scripts/ingest-local.mjs:printResults |
tally |
software | healthy | scripts/ingest-local.mjs:tally |
from |
software | healthy | supabase/functions/ingest-channel/index.ts:from |
json |
software | healthy | supabase/functions/process-videos/index.ts:json |
json |
software | healthy | supabase/functions/lesson-chat/index.ts:json |
callerUserId |
software | healthy | supabase/functions/lesson-chat/index.ts:callerUserId |
videoId |
software | healthy | supabase/functions/lesson-chat/index.ts:videoId |
callerUserId |
software | healthy | supabase/functions/connect-channel/index.ts:callerUserId |
json |
software | healthy | supabase/functions/connect-channel/index.ts:json |
slugify |
software | healthy | supabase/functions/connect-channel/index.ts:slugify |
uniqueSlug |
software | healthy | supabase/functions/connect-channel/index.ts:uniqueSlug |
channelInput |
software | healthy | supabase/functions/connect-channel/index.ts:channelInput |
displayName |
software | healthy | supabase/functions/connect-channel/index.ts:displayName |
callerUserId |
software | healthy | supabase/functions/evaluate-sentence/index.ts:callerUserId |
json |
software | healthy | supabase/functions/evaluate-sentence/index.ts:json |
word |
software | healthy | supabase/functions/evaluate-sentence/index.ts:word |
language |
software | healthy | supabase/functions/evaluate-sentence/index.ts:language |
sentence |
software | healthy | supabase/functions/evaluate-sentence/index.ts:sentence |
body |
software | healthy | supabase/functions/_shared/supadata-provider.ts:body |
parseCaptionBody |
software | healthy | supabase/functions/_shared/innertube-transcript-provider.ts… |
normalizeWhitespace |
software | healthy | supabase/functions/_shared/innertube-transcript-provider.ts… |
decodeXmlEntities |
software | healthy | supabase/functions/_shared/innertube-transcript-provider.ts… |
getTranscriptProviders |
software | healthy | supabase/functions/_shared/transcript-factory.ts:getTranscr… |
fetchTranscriptViaChain |
software | healthy | supabase/functions/_shared/transcript-factory.ts:fetchTrans… |
lessonChatSystemPrompt |
software | healthy | supabase/functions/_shared/prompts.ts:lessonChatSystemPrompt |
sentenceFeedbackPrompt |
software | healthy | supabase/functions/_shared/prompts.ts:sentenceFeedbackPrompt |
detectLanguageAndLevelPrompt |
software | healthy | supabase/functions/_shared/prompts.ts:detectLanguageAndLeve… |
activityGenerationPrompt |
software | healthy | supabase/functions/_shared/prompts.ts:activityGenerationPro… |
parseIsoDuration |
software | healthy | supabase/functions/_shared/youtube.ts:parseIsoDuration |
getAIProvider |
software | healthy | supabase/functions/_shared/provider-factory.ts:getAIProvider |
name |
software | healthy | supabase/functions/_shared/provider-factory.ts:name |
syncCatalogue |
software | healthy | supabase/functions/_shared/pipeline.ts:syncCatalogue |
upsertDemoTeacher |
software | healthy | supabase/functions/_shared/pipeline.ts:upsertDemoTeacher |
processVideoRow |
software | healthy | supabase/functions/_shared/pipeline.ts:processVideoRow |
isShort |
software | healthy | supabase/functions/_shared/pipeline.ts:isShort |
updateVideo |
software | healthy | supabase/functions/_shared/pipeline.ts:updateVideo |
json |
software | healthy | supabase/functions/_shared/pipeline.ts:json |
App |
software | healthy | src/App.tsx:App |
YouTubeEmbed |
software | healthy | src/components/YouTubeEmbed.tsx:YouTubeEmbed |
LessonChat |
software | healthy | src/components/LessonChat.tsx:LessonChat |
send |
software | healthy | src/components/LessonChat.tsx:send |
parseActivities |
software | healthy | src/components/LessonActivities.tsx:parseActivities |
countLabel |
software | healthy | src/components/LessonActivities.tsx:countLabel |
LessonActivities |
software | healthy | src/components/LessonActivities.tsx:LessonActivities |
requireSignIn |
software | healthy | src/components/LessonActivities.tsx:requireSignIn |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
tsconfig.app.json |
software | healthy | tsconfig.app.json |
vite.config.ts |
software | healthy | vite.config.ts |
vercel.json |
software | healthy | vercel.json |
README.md |
software | healthy | README.md |
package.json |
software | healthy | package.json |
tsconfig.node.json |
software | healthy | tsconfig.node.json |
index.html |
software | healthy | index.html |
package-lock.json |
software | healthy | package-lock.json |
.env.example |
software | healthy | .env.example |
eslint.config.js |
software | healthy | eslint.config.js |
tsconfig.json |
software | healthy | tsconfig.json |
HANDOVER.md |
software | healthy | HANDOVER.md |
ingest-local.mjs |
software | healthy | scripts/ingest-local.mjs |
index.ts |
software | healthy | supabase/functions/sync-channel/index.ts |
index.ts |
software | healthy | supabase/functions/ingest-channel/index.ts |
index.ts |
software | healthy | supabase/functions/process-videos/index.ts |
index.ts |
software | healthy | supabase/functions/lesson-chat/index.ts |
index.ts |
software | healthy | supabase/functions/connect-channel/index.ts |
index.ts |
software | healthy | supabase/functions/evaluate-sentence/index.ts |
anthropic-provider.ts |
software | healthy | supabase/functions/_shared/anthropic-provider.ts |
supadata-provider.ts |
software | healthy | supabase/functions/_shared/supadata-provider.ts |
innertube-transcript-provider.ts |
software | healthy | supabase/functions/_shared/innertube-transcript-provider.ts |
transcript-factory.ts |
software | healthy | supabase/functions/_shared/transcript-factory.ts |
prompts.ts |
software | healthy | supabase/functions/_shared/prompts.ts |
schemas.ts |
software | healthy | supabase/functions/_shared/schemas.ts |
transcript-types.ts |
software | healthy | supabase/functions/_shared/transcript-types.ts |
youtube.ts |
software | healthy | supabase/functions/_shared/youtube.ts |
openai-provider.ts |
software | healthy | supabase/functions/_shared/openai-provider.ts |
provider-factory.ts |
software | healthy | supabase/functions/_shared/provider-factory.ts |
ai-types.ts |
software | healthy | supabase/functions/_shared/ai-types.ts |
pipeline.ts |
software | healthy | supabase/functions/_shared/pipeline.ts |
20260611_owner_can_delete_teacher.sql |
software | healthy | supabase/migrations/20260611_owner_can_delete_teacher.sql |
20260612_learner_saves_and_follows.sql |
software | healthy | supabase/migrations/20260612_learner_saves_and_follows.sql |
20260612_learner_lesson_progress.sql |
software | healthy | supabase/migrations/20260612_learner_lesson_progress.sql |
20260611_owner_edit_activities.sql |
software | healthy | supabase/migrations/20260611_owner_edit_activities.sql |
20260611_review_and_public_coming_soon.sql |
software | healthy | supabase/migrations/20260611_review_and_public_coming_soon.… |
20260610_pg_cron_autonomous_pipeline.sql |
software | healthy | supabase/migrations/20260610_pg_cron_autonomous_pipeline.sql |
20260612_learner_notes.sql |
software | healthy | supabase/migrations/20260612_learner_notes.sql |
20260612_teacher_category_audience.sql |
software | healthy | supabase/migrations/20260612_teacher_category_audience.sql |
index.css |
software | healthy | src/index.css |
main.tsx |
software | healthy | src/main.tsx |
App.tsx |
software | healthy | src/App.tsx |
YouTubeEmbed.tsx |
software | healthy | src/components/YouTubeEmbed.tsx |
LessonChat.tsx |
software | healthy | src/components/LessonChat.tsx |
LessonActivities.tsx |
software | healthy | src/components/LessonActivities.tsx |
Matching.tsx |
software | healthy | src/components/Matching.tsx |
AppGate.tsx |
software | healthy | src/components/AppGate.tsx |
FreeWrite.tsx |
software | healthy | src/components/FreeWrite.tsx |
Quiz.tsx |
software | healthy | src/components/Quiz.tsx |
LessonNotes.tsx |
software | healthy | src/components/LessonNotes.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | src/App.tsx |
YouTubeEmbed |
frontend | healthy | src/components/YouTubeEmbed.tsx |
LessonChat |
frontend | healthy | src/components/LessonChat.tsx |
LessonActivities |
frontend | healthy | src/components/LessonActivities.tsx |
Matching |
frontend | healthy | src/components/Matching.tsx |
AppGate |
frontend | healthy | src/components/AppGate.tsx |
FreeWrite |
frontend | healthy | src/components/FreeWrite.tsx |
Quiz |
frontend | healthy | src/components/Quiz.tsx |
LessonNotes |
frontend | healthy | src/components/LessonNotes.tsx |
GapFill |
frontend | healthy | src/components/GapFill.tsx |
LessonView |
frontend | healthy | src/components/LessonView.tsx |
FlashcardDeck |
frontend | healthy | src/components/FlashcardDeck.tsx |
RequireAuth |
frontend | healthy | src/components/RequireAuth.tsx |
CreatorHeader |
frontend | healthy | src/components/CreatorHeader.tsx |
HeroAnimation |
frontend | healthy | src/components/HeroAnimation.tsx |
LessonCard |
frontend | healthy | src/components/LessonCard.tsx |
QuickPractice |
frontend | healthy | src/components/QuickPractice.tsx |
ActivityEditor |
frontend | healthy | src/components/ActivityEditor.tsx |
TeacherPage |
frontend | healthy | src/pages/TeacherPage.tsx |
Notebook |
frontend | healthy | src/pages/Notebook.tsx |
Dashboard |
frontend | healthy | src/pages/Dashboard.tsx |
Login |
frontend | healthy | src/pages/Login.tsx |
Connect |
frontend | healthy | src/pages/Connect.tsx |
ReviewVideo |
frontend | healthy | src/pages/ReviewVideo.tsx |
Library |
frontend | healthy | src/pages/Library.tsx |
Home |
frontend | healthy | src/pages/Home.tsx |
ChannelManage |
frontend | healthy | src/pages/ChannelManage.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/TeacherPage |
frontend | healthy | src/pages/TeacherPage.tsx |
/Notebook |
frontend | healthy | src/pages/Notebook.tsx |
/Dashboard |
frontend | healthy | src/pages/Dashboard.tsx |
/Login |
frontend | healthy | src/pages/Login.tsx |
/Connect |
frontend | healthy | src/pages/Connect.tsx |
/ReviewVideo |
frontend | healthy | src/pages/ReviewVideo.tsx |
/Library |
frontend | healthy | src/pages/Library.tsx |
/Home |
frontend | healthy | src/pages/Home.tsx |
/ChannelManage |
frontend | healthy | src/pages/ChannelManage.tsx |
/ |
frontend | healthy | src/App.tsx |
/login |
frontend | healthy | src/App.tsx |
/dashboard |
frontend | healthy | src/App.tsx |
/dashboard/:slug |
frontend | healthy | src/App.tsx |
/dashboard/:slug/review/:videoId |
frontend | healthy | src/App.tsx |
/connect |
frontend | healthy | src/App.tsx |
/library |
frontend | healthy | src/App.tsx |
/notebook |
frontend | healthy | src/App.tsx |
/:teacherSlug |
frontend | healthy | src/App.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
supabase |
software | healthy | supabase |
functions |
software | healthy | supabase/functions |
sync-channel |
software | healthy | supabase/functions/sync-channel |
ingest-channel |
software | healthy | supabase/functions/ingest-channel |
process-videos |
software | healthy | supabase/functions/process-videos |
lesson-chat |
software | healthy | supabase/functions/lesson-chat |
connect-channel |
software | healthy | supabase/functions/connect-channel |
evaluate-sentence |
software | healthy | supabase/functions/evaluate-sentence |
_shared |
software | healthy | supabase/functions/_shared |
migrations |
software | healthy | supabase/migrations |
src |
software | healthy | src |
components |
software | healthy | src/components |
lib |
software | healthy | src/lib |
pages |
software | healthy | src/pages |
| Label | Layer | Status | Path |
|---|---|---|---|
20260611_owner_can_delete_teacher.sql |
data | healthy | supabase/migrations/20260611_owner_can_delete_teacher.sql |
20260612_learner_saves_and_follows.sql |
data | healthy | supabase/migrations/20260612_learner_saves_and_follows.sql |
20260612_learner_lesson_progress.sql |
data | healthy | supabase/migrations/20260612_learner_lesson_progress.sql |
20260611_owner_edit_activities.sql |
data | healthy | supabase/migrations/20260611_owner_edit_activities.sql |
20260611_review_and_public_coming_soon.sql |
data | healthy | supabase/migrations/20260611_review_and_public_coming_soon.… |
20260610_pg_cron_autonomous_pipeline.sql |
data | healthy | supabase/migrations/20260610_pg_cron_autonomous_pipeline.sql |
20260612_learner_notes.sql |
data | healthy | supabase/migrations/20260612_learner_notes.sql |
20260612_teacher_category_audience.sql |
data | healthy | supabase/migrations/20260612_teacher_category_audience.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
AnthropicProvider |
software | healthy | supabase/functions/_shared/anthropic-provider.ts:AnthropicP… |
SupadataTranscriptProvider |
software | healthy | supabase/functions/_shared/supadata-provider.ts:SupadataTra… |
InnertubeTranscriptProvider |
software | healthy | supabase/functions/_shared/innertube-transcript-provider.ts… |
YouTubeClient |
software | healthy | supabase/functions/_shared/youtube.ts:YouTubeClient |
OpenAIProvider |
software | healthy | supabase/functions/_shared/openai-provider.ts:OpenAIProvider |
AIProviderError |
software | healthy | supabase/functions/_shared/ai-types.ts:AIProviderError |
ErrorBoundary |
software | healthy | src/components/AppGate.tsx:ErrorBoundary |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
auth::supabase/functions/connect-channel/index.ts |
security | healthy | supabase/functions/connect-channel/index.ts |
auth::supabase/functions/lesson-chat/index.ts |
security | healthy | supabase/functions/lesson-chat/index.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-d8artcqu |
software | healthy | /tmp/repobility-clone-d8artcqu |
| Label | Layer | Status | Path |
|---|---|---|---|
postgres |
data | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
public |
data | healthy | supabase/migrations/20260612_learner_saves_and_follows.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
port:5173 |
network | healthy | vite.config.ts |
This page is publicly accessible at:
https://repobility.com/scan/c869d39b-23ae-4a03-bb5b-a658cbe357ec/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c869d39b-23ae-4a03-bb5b-a658cbe357ec/
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.