https://github.com/vega-create/learn-chparenting-cloudflare
· scanned 2026-06-16 00:48 UTC (2 months, 1 week ago)
61 raw signals (0 security + 61 graph)
Last scanned 2 months, 1 week ago · v1 · 61 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 2006 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 |
|---|---|---|---|
getFont |
software | healthy | scripts/generate-ebooks.mjs:getFont |
ensureSpace |
software | healthy | scripts/generate-ebooks.mjs:ensureSpace |
roundedRect |
software | healthy | scripts/generate-ebooks.mjs:roundedRect |
drawCover |
software | healthy | scripts/generate-ebooks.mjs:drawCover |
drawTOC |
software | healthy | scripts/generate-ebooks.mjs:drawTOC |
drawUnitGuide |
software | healthy | scripts/generate-ebooks.mjs:drawUnitGuide |
dot |
software | healthy | scripts/generate-ebooks.mjs:dot |
sectionTitle |
software | healthy | scripts/generate-ebooks.mjs:sectionTitle |
drawEnding |
software | healthy | scripts/generate-ebooks.mjs:drawEnding |
angle |
software | healthy | scripts/generate-ebooks.mjs:angle |
size |
software | healthy | scripts/generate-ebooks.mjs:size |
mapUnits |
software | healthy | scripts/extract-guides.ts:mapUnits |
shuffleArray |
software | healthy | scripts/shuffle-answers.mjs:shuffleArray |
shuffleQuestion |
software | healthy | scripts/shuffle-answers.mjs:shuffleQuestion |
processFile |
software | healthy | scripts/shuffle-answers.mjs:processFile |
shouldShuffle |
software | healthy | scripts/shuffle-answers.mjs:shouldShuffle |
getFont |
software | healthy | scripts/generate-worksheets.mjs:getFont |
padUnit |
software | healthy | scripts/generate-worksheets.mjs:padUnit |
drawHeader |
software | healthy | scripts/generate-worksheets.mjs:drawHeader |
drawFooter |
software | healthy | scripts/generate-worksheets.mjs:drawFooter |
drawSectionTitle |
software | healthy | scripts/generate-worksheets.mjs:drawSectionTitle |
checkNewPage |
software | healthy | scripts/generate-worksheets.mjs:checkNewPage |
generateGeptWorksheet |
software | healthy | scripts/generate-worksheets.mjs:generateGeptWorksheet |
generateJlptWorksheet |
software | healthy | scripts/generate-worksheets.mjs:generateJlptWorksheet |
main |
software | healthy | scripts/generate-worksheets.mjs:main |
loadPosts |
software | healthy | scripts/generate-llms-txt.mjs:loadPosts |
generateLlmsTxt |
software | healthy | scripts/generate-llms-txt.mjs:generateLlmsTxt |
generateLlmsFullTxt |
software | healthy | scripts/generate-llms-txt.mjs:generateLlmsFullTxt |
escapeXml |
software | healthy | scripts/generate-blog-covers.mjs:escapeXml |
charWidth |
software | healthy | scripts/generate-blog-covers.mjs:charWidth |
wrapTitle |
software | healthy | scripts/generate-blog-covers.mjs:wrapTitle |
tokenWidth |
software | healthy | scripts/generate-blog-covers.mjs:tokenWidth |
buildSvg |
software | healthy | scripts/generate-blog-covers.mjs:buildSvg |
middleware |
software | healthy | src/middleware.ts:middleware |
StreakBadge |
software | healthy | src/components/StreakBadge.tsx:StreakBadge |
buildCrumbs |
software | healthy | src/components/Breadcrumb.tsx:buildCrumbs |
Breadcrumb |
software | healthy | src/components/Breadcrumb.tsx:Breadcrumb |
SpeechCleanup |
software | healthy | src/components/SpeechCleanup.tsx:SpeechCleanup |
EbookModal |
software | healthy | src/components/EbookModal.tsx:EbookModal |
handleSubmit |
software | healthy | src/components/EbookModal.tsx:handleSubmit |
getToday |
software | healthy | src/components/DailyChallenge.tsx:getToday |
DailyChallengeBlock |
software | healthy | src/components/DailyChallenge.tsx:DailyChallengeBlock |
handleAnswer |
software | healthy | src/components/DailyChallenge.tsx:handleAnswer |
trackShare |
software | healthy | src/components/ShareButtons.tsx:trackShare |
ShareButtons |
software | healthy | src/components/ShareButtons.tsx:ShareButtons |
shareToFB |
software | healthy | src/components/ShareButtons.tsx:shareToFB |
shareToLINE |
software | healthy | src/components/ShareButtons.tsx:shareToLINE |
copyLink |
software | healthy | src/components/ShareButtons.tsx:copyLink |
ToolIntroSection |
software | healthy | src/components/ToolIntroSection.tsx:ToolIntroSection |
WorksheetActions |
software | healthy | src/components/WorksheetActions.tsx:WorksheetActions |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
.env.local.example |
software | healthy | .env.local.example |
postcss.config.mjs |
software | healthy | postcss.config.mjs |
README.md |
software | healthy | README.md |
tailwind.config.ts |
software | healthy | tailwind.config.ts |
CLAUDE.md |
software | healthy | CLAUDE.md |
package.json |
software | healthy | package.json |
wrangler.toml |
software | healthy | wrangler.toml |
package-lock.json |
software | healthy | package-lock.json |
.eslintrc.json |
software | healthy | .eslintrc.json |
tsconfig.json |
software | healthy | tsconfig.json |
supabase-schema.sql |
software | healthy | supabase-schema.sql |
next.config.mjs |
software | healthy | next.config.mjs |
generate-ebooks.mjs |
software | healthy | scripts/generate-ebooks.mjs |
extract-guides.ts |
software | healthy | scripts/extract-guides.ts |
shuffle-answers.mjs |
software | healthy | scripts/shuffle-answers.mjs |
generate-worksheets.mjs |
software | healthy | scripts/generate-worksheets.mjs |
generate-llms-txt.mjs |
software | healthy | scripts/generate-llms-txt.mjs |
extract-data.ts |
software | healthy | scripts/extract-data.ts |
generate-blog-covers.mjs |
software | healthy | scripts/generate-blog-covers.mjs |
launch.json |
software | healthy | .claude/launch.json |
manifest.json |
software | healthy | public/manifest.json |
deploy.yml |
software | healthy | .github/workflows/deploy.yml |
middleware.ts |
software | healthy | src/middleware.ts |
StreakBadge.tsx |
software | healthy | src/components/StreakBadge.tsx |
Breadcrumb.tsx |
software | healthy | src/components/Breadcrumb.tsx |
SpeechCleanup.tsx |
software | healthy | src/components/SpeechCleanup.tsx |
EbookModal.tsx |
software | healthy | src/components/EbookModal.tsx |
DailyChallenge.tsx |
software | healthy | src/components/DailyChallenge.tsx |
ShareButtons.tsx |
software | healthy | src/components/ShareButtons.tsx |
ToolIntroSection.tsx |
software | healthy | src/components/ToolIntroSection.tsx |
WorksheetActions.tsx |
software | healthy | src/components/WorksheetActions.tsx |
NewsletterCTA.tsx |
software | healthy | src/components/NewsletterCTA.tsx |
ToolStructuredData.tsx |
software | healthy | src/components/ToolStructuredData.tsx |
MobileHeaderBadge.tsx |
software | healthy | src/components/MobileHeaderBadge.tsx |
SubjectVisitTracker.tsx |
software | healthy | src/components/SubjectVisitTracker.tsx |
AchievementNotification.tsx |
software | healthy | src/components/AchievementNotification.tsx |
AnswerPage.tsx |
software | healthy | src/components/AnswerPage.tsx |
MobileBottomNav.tsx |
software | healthy | src/components/MobileBottomNav.tsx |
Footer.tsx |
software | healthy | src/components/Footer.tsx |
SchedulePicker.tsx |
software | healthy | src/components/SchedulePicker.tsx |
ActivityCard.tsx |
software | healthy | src/components/ActivityCard.tsx |
BlogCategoryFilter.tsx |
software | healthy | src/components/BlogCategoryFilter.tsx |
ParentGuide.tsx |
software | healthy | src/components/ParentGuide.tsx |
PracticeCounter.tsx |
software | healthy | src/components/PracticeCounter.tsx |
HeaderAuthButton.tsx |
software | healthy | src/components/HeaderAuthButton.tsx |
Header.tsx |
software | healthy | src/components/Header.tsx |
OnboardingTutorial.tsx |
software | healthy | src/components/OnboardingTutorial.tsx |
UnitSEOContent.tsx |
software | healthy | src/components/seo/UnitSEOContent.tsx |
AuthContext.tsx |
software | healthy | src/contexts/AuthContext.tsx |
AchievementContext.tsx |
software | healthy | src/contexts/AchievementContext.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
StreakBadge |
frontend | healthy | src/components/StreakBadge.tsx |
Breadcrumb |
frontend | healthy | src/components/Breadcrumb.tsx |
SpeechCleanup |
frontend | healthy | src/components/SpeechCleanup.tsx |
EbookModal |
frontend | healthy | src/components/EbookModal.tsx |
DailyChallengeBlock |
frontend | healthy | src/components/DailyChallenge.tsx |
ShareButtons |
frontend | healthy | src/components/ShareButtons.tsx |
WorksheetActions |
frontend | healthy | src/components/WorksheetActions.tsx |
NewsletterCTA |
frontend | healthy | src/components/NewsletterCTA.tsx |
MobileHeaderBadge |
frontend | healthy | src/components/MobileHeaderBadge.tsx |
SubjectVisitTracker |
frontend | healthy | src/components/SubjectVisitTracker.tsx |
AchievementNotification |
frontend | healthy | src/components/AchievementNotification.tsx |
AnswerPage |
frontend | healthy | src/components/AnswerPage.tsx |
MobileBottomNav |
frontend | healthy | src/components/MobileBottomNav.tsx |
Footer |
frontend | healthy | src/components/Footer.tsx |
SchedulePicker |
frontend | healthy | src/components/SchedulePicker.tsx |
ActivityCard |
frontend | healthy | src/components/ActivityCard.tsx |
BlogCategoryFilter |
frontend | healthy | src/components/BlogCategoryFilter.tsx |
ParentGuide |
frontend | healthy | src/components/ParentGuide.tsx |
PracticeCounter |
frontend | healthy | src/components/PracticeCounter.tsx |
HeaderAuthButton |
frontend | healthy | src/components/HeaderAuthButton.tsx |
Header |
frontend | healthy | src/components/Header.tsx |
OnboardingTutorial |
frontend | healthy | src/components/OnboardingTutorial.tsx |
UnitSEOContent |
frontend | healthy | src/components/seo/UnitSEOContent.tsx |
HomePage |
frontend | healthy | src/app/page.tsx |
RootLayout |
frontend | healthy | src/app/layout.tsx |
AboutPage |
frontend | healthy | src/app/about/page.tsx |
BlogPage |
frontend | healthy | src/app/blog/page.tsx |
JlptN5Page |
frontend | healthy | src/app/jlpt-n5/page.tsx |
JlptUnitPage |
frontend | healthy | src/app/jlpt-n5/unit/[id]/ClientPage.tsx |
SpeakingPage |
frontend | healthy | src/app/jlpt-n5/speaking/page.tsx |
JlptN5SpeakingLayout |
frontend | healthy | src/app/jlpt-n5/speaking/layout.tsx |
AnswerPageClient |
frontend | healthy | src/app/jlpt-n5/answers/[unitId]/AnswerPageClient.tsx |
MockTestPage |
frontend | healthy | src/app/jlpt-n5/mock-test/page.tsx |
JlptN5MockTestLayout |
frontend | healthy | src/app/jlpt-n5/mock-test/layout.tsx |
GamePage |
frontend | healthy | src/app/jlpt-n5/game/page.tsx |
JlptN5GameLayout |
frontend | healthy | src/app/jlpt-n5/game/layout.tsx |
GojuonPage |
frontend | healthy | src/app/jlpt-n5/gojuon/page.tsx |
GojuonLayout |
frontend | healthy | src/app/jlpt-n5/gojuon/layout.tsx |
WritingPage |
frontend | healthy | src/app/jlpt-n5/writing/page.tsx |
JlptN5WritingLayout |
frontend | healthy | src/app/jlpt-n5/writing/layout.tsx |
Page |
frontend | healthy | src/app/jlpt-n5/guide/page.tsx |
GuideOverviewClient |
frontend | healthy | src/app/jlpt-n5/guide/GuideOverviewClient.tsx |
GuidePageClient |
frontend | healthy | src/app/jlpt-n5/guide/[unitId]/GuidePageClient.tsx |
GeptAboutPage |
frontend | healthy | src/app/gept/about/page.tsx |
ElementaryPage |
frontend | healthy | src/app/intermediate/page.tsx |
UnitPage |
frontend | healthy | src/app/intermediate/unit/[id]/ClientPage.tsx |
SpeakingPage |
frontend | healthy | src/app/intermediate/speaking/page.tsx |
IntermediateSpeakingLayout |
frontend | healthy | src/app/intermediate/speaking/layout.tsx |
AnswerPageClient |
frontend | healthy | src/app/intermediate/answers/[unitId]/AnswerPageClient.tsx |
MockTestPage |
frontend | healthy | src/app/intermediate/mock-test/page.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
scripts |
software | healthy | scripts |
.claude |
software | healthy | .claude |
public |
software | healthy | public |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
components |
software | healthy | src/components |
seo |
software | healthy | src/components/seo |
contexts |
software | healthy | src/contexts |
app |
software | healthy | src/app |
about |
software | healthy | src/app/about |
blog |
software | healthy | src/app/blog |
[slug] |
software | healthy | src/app/blog/[slug] |
jlpt-n5 |
software | healthy | src/app/jlpt-n5 |
unit |
software | healthy | src/app/jlpt-n5/unit |
[id] |
software | healthy | src/app/jlpt-n5/unit/[id] |
speaking |
software | healthy | src/app/jlpt-n5/speaking |
answers |
software | healthy | src/app/jlpt-n5/answers |
[unitId] |
software | healthy | src/app/jlpt-n5/answers/[unitId] |
mock-test |
software | healthy | src/app/jlpt-n5/mock-test |
game |
software | healthy | src/app/jlpt-n5/game |
gojuon |
software | healthy | src/app/jlpt-n5/gojuon |
writing |
software | healthy | src/app/jlpt-n5/writing |
guide |
software | healthy | src/app/jlpt-n5/guide |
[unitId] |
software | healthy | src/app/jlpt-n5/guide/[unitId] |
gept |
software | healthy | src/app/gept |
about |
software | healthy | src/app/gept/about |
intermediate |
software | healthy | src/app/intermediate |
unit |
software | healthy | src/app/intermediate/unit |
[id] |
software | healthy | src/app/intermediate/unit/[id] |
speaking |
software | healthy | src/app/intermediate/speaking |
answers |
software | healthy | src/app/intermediate/answers |
[unitId] |
software | healthy | src/app/intermediate/answers/[unitId] |
mock-test |
software | healthy | src/app/intermediate/mock-test |
game |
software | healthy | src/app/intermediate/game |
writing |
software | healthy | src/app/intermediate/writing |
guide |
software | healthy | src/app/intermediate/guide |
[unitId] |
software | healthy | src/app/intermediate/guide/[unitId] |
auth |
software | healthy | src/app/auth |
callback |
software | healthy | src/app/auth/callback |
login |
software | healthy | src/app/login |
api |
software | healthy | src/app/api |
track-practice |
software | healthy | src/app/api/track-practice |
daily-challenge |
software | healthy | src/app/api/daily-challenge |
ebook-request |
software | healthy | src/app/api/ebook-request |
newsletter |
software | healthy | src/app/api/newsletter |
stats |
software | healthy | src/app/api/stats |
history-geo |
software | healthy | src/app/history-geo |
[regionId] |
software | healthy | src/app/history-geo/[regionId] |
[topicId] |
software | healthy | src/app/history-geo/[regionId]/[topicId] |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/page.tsx |
frontend | healthy | src/app/page.tsx |
/about |
frontend | healthy | src/app/about/page.tsx |
/blog |
frontend | healthy | src/app/blog/page.tsx |
/blog/[slug] |
frontend | healthy | src/app/blog/[slug]/page.tsx |
/jlpt-n5 |
frontend | healthy | src/app/jlpt-n5/page.tsx |
/jlpt-n5/unit/[id] |
frontend | healthy | src/app/jlpt-n5/unit/[id]/page.tsx |
/jlpt-n5/speaking |
frontend | healthy | src/app/jlpt-n5/speaking/page.tsx |
/jlpt-n5/answers/[unitId] |
frontend | healthy | src/app/jlpt-n5/answers/[unitId]/page.tsx |
/jlpt-n5/mock-test |
frontend | healthy | src/app/jlpt-n5/mock-test/page.tsx |
/jlpt-n5/game |
frontend | healthy | src/app/jlpt-n5/game/page.tsx |
/jlpt-n5/gojuon |
frontend | healthy | src/app/jlpt-n5/gojuon/page.tsx |
/jlpt-n5/writing |
frontend | healthy | src/app/jlpt-n5/writing/page.tsx |
/jlpt-n5/guide |
frontend | healthy | src/app/jlpt-n5/guide/page.tsx |
/jlpt-n5/guide/[unitId] |
frontend | healthy | src/app/jlpt-n5/guide/[unitId]/page.tsx |
/gept/about |
frontend | healthy | src/app/gept/about/page.tsx |
/intermediate |
frontend | healthy | src/app/intermediate/page.tsx |
/intermediate/unit/[id] |
frontend | healthy | src/app/intermediate/unit/[id]/page.tsx |
/intermediate/speaking |
frontend | healthy | src/app/intermediate/speaking/page.tsx |
/intermediate/answers/[unitId] |
frontend | healthy | src/app/intermediate/answers/[unitId]/page.tsx |
/intermediate/mock-test |
frontend | healthy | src/app/intermediate/mock-test/page.tsx |
/intermediate/game |
frontend | healthy | src/app/intermediate/game/page.tsx |
/intermediate/writing |
frontend | healthy | src/app/intermediate/writing/page.tsx |
/intermediate/guide |
frontend | healthy | src/app/intermediate/guide/page.tsx |
/intermediate/guide/[unitId] |
frontend | healthy | src/app/intermediate/guide/[unitId]/page.tsx |
/auth/callback |
frontend | healthy | src/app/auth/callback/page.tsx |
/login |
frontend | healthy | src/app/login/page.tsx |
/history-geo |
frontend | healthy | src/app/history-geo/page.tsx |
/history-geo/[regionId] |
frontend | healthy | src/app/history-geo/[regionId]/page.tsx |
/history-geo/[regionId]/[topicId] |
frontend | healthy | src/app/history-geo/[regionId]/[topicId]/page.tsx |
/achievements |
frontend | healthy | src/app/achievements/page.tsx |
/chinese-lang |
frontend | healthy | src/app/chinese-lang/page.tsx |
/chinese-lang/[gradeId] |
frontend | healthy | src/app/chinese-lang/[gradeId]/page.tsx |
/chinese-lang/[gradeId]/[topicId] |
frontend | healthy | src/app/chinese-lang/[gradeId]/[topicId]/page.tsx |
/board-games |
frontend | healthy | src/app/board-games/page.tsx |
/board-games/loop-builder |
frontend | healthy | src/app/board-games/loop-builder/page.tsx |
/board-games/speed-sort |
frontend | healthy | src/app/board-games/speed-sort/page.tsx |
/board-games/word-search |
frontend | healthy | src/app/board-games/word-search/page.tsx |
/board-games/sequence-quest |
frontend | healthy | src/app/board-games/sequence-quest/page.tsx |
/board-games/color-tap |
frontend | healthy | src/app/board-games/color-tap/page.tsx |
/board-games/math-rush |
frontend | healthy | src/app/board-games/math-rush/page.tsx |
/board-games/emoji-puzzle |
frontend | healthy | src/app/board-games/emoji-puzzle/page.tsx |
/board-games/pattern-master |
frontend | healthy | src/app/board-games/pattern-master/page.tsx |
/board-games/code-path |
frontend | healthy | src/app/board-games/code-path/page.tsx |
/board-games/mini-sudoku |
frontend | healthy | src/app/board-games/mini-sudoku/page.tsx |
/board-games/memory-sequence |
frontend | healthy | src/app/board-games/memory-sequence/page.tsx |
/board-games/memory-match |
frontend | healthy | src/app/board-games/memory-match/page.tsx |
/board-games/chinese-checkers |
frontend | healthy | src/app/board-games/chinese-checkers/page.tsx |
/board-games/logic-gates |
frontend | healthy | src/app/board-games/logic-gates/page.tsx |
/board-games/whack-a-mole |
frontend | healthy | src/app/board-games/whack-a-mole/page.tsx |
/board-games/go-game |
frontend | healthy | src/app/board-games/go-game/page.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
newsletter_subscribers |
data | healthy | supabase-schema.sql |
learning_activities |
data | healthy | supabase-schema.sql |
daily_checkins |
data | healthy | supabase-schema.sql |
weekly_schedules |
data | healthy | supabase-schema.sql |
user_streaks |
data | healthy | supabase-schema.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
CLOUDFLARE_PAGES_TOKEN |
cicd | healthy | — |
CLOUDFLARE_ACCOUNT_ID |
cicd | healthy | — |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
cicd | healthy | — |
NEXT_PUBLIC_GSC_CODE |
cicd | healthy | — |
NEXT_PUBLIC_SUPABASE_URL |
cicd | healthy | — |
| Label | Layer | Status | Path |
|---|---|---|---|
for |
software | healthy | src/app/board-games/color-tap/page.tsx:for |
FetchTable |
software | healthy | src/lib/supabase-server.ts:FetchTable |
FetchClient |
software | healthy | src/lib/supabase-server.ts:FetchClient |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-h_e2rm7y |
software | healthy | /tmp/repobility-clone-h_e2rm7y |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::CLAUDE.md |
security | healthy | CLAUDE.md |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::deploy |
cicd | healthy | .github/workflows/deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
deploy |
cicd | healthy | .github/workflows/deploy.yml |
This page is publicly accessible at:
https://repobility.com/scan/52663643-fa50-45fc-a6c0-dfbbffd20d77/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/52663643-fa50-45fc-a6c0-dfbbffd20d77/
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.