Scan timing: clone 1.67s · analysis 0.25s · 0.2 MB · GitHub preflight 561ms
https://github.com/toylala03-star/learnhskforme12.github.io.git
· scanned 2026-05-29 07:57 UTC (1 week ago)
· 10 languages
39 findings (23 legacy + 16 scanner) 18th percentile · Typescript · small (2-20K LoC) Scanner says 94 (lower by 38)
Last scanned 1 week ago · v2 · 31 findings from 2 sources. Findings combine the legacy security pipeline AND the multi-layer engine (atlas, wiring, flows, ranked) AND verified AI agent contributions.
| Component | Sub-score | Weight | Contribution |
|---|---|---|---|
structure_score |
100.0 | 0.15 | 15.00 |
security_score |
94.1 | 0.25 | 23.52 |
testing_score |
0.0 | 0.20 | 0.00 |
documentation_score |
38.7 | 0.15 | 5.81 |
practices_score |
30.0 | 0.15 | 4.50 |
code_quality |
70.0 | 0.10 | 7.00 |
| Overall | 1.00 | 55.8 |
All 71 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 |
|---|---|---|---|
getGeminiClient |
software | healthy | server.ts:getGeminiClient |
initializeServer |
software | healthy | server.ts:initializeServer |
App |
software | healthy | src/App.tsx:App |
fetchVocab |
software | healthy | src/App.tsx:fetchVocab |
handleToggleFavorite |
software | healthy | src/App.tsx:handleToggleFavorite |
handleUpdateStatus |
software | healthy | src/App.tsx:handleUpdateStatus |
handleAiDictionaryLookup |
software | healthy | src/App.tsx:handleAiDictionaryLookup |
simulateOfflineLookup |
software | healthy | src/App.tsx:simulateOfflineLookup |
handleAddAiWordToVocabList |
software | healthy | src/App.tsx:handleAddAiWordToVocabList |
handleResetProgress |
software | healthy | src/App.tsx:handleResetProgress |
AITutor |
software | healthy | src/components/AITutor.tsx:AITutor |
scrollToBottom |
software | healthy | src/components/AITutor.tsx:scrollToBottom |
speakText |
software | healthy | src/components/AITutor.tsx:speakText |
handleSendMessage |
software | healthy | src/components/AITutor.tsx:handleSendMessage |
triggerOfflineTutorResponse |
software | healthy | src/components/AITutor.tsx:triggerOfflineTutorResponse |
HSKQuiz |
software | healthy | src/components/HSKQuiz.tsx:HSKQuiz |
playWordSound |
software | healthy | src/components/HSKQuiz.tsx:playWordSound |
generateQuiz |
software | healthy | src/components/HSKQuiz.tsx:generateQuiz |
handleOptionClick |
software | healthy | src/components/HSKQuiz.tsx:handleOptionClick |
handleNextQuestion |
software | healthy | src/components/HSKQuiz.tsx:handleNextQuestion |
handleRestart |
software | healthy | src/components/HSKQuiz.tsx:handleRestart |
AIStory |
software | healthy | src/components/AIStory.tsx:AIStory |
handleWordToggle |
software | healthy | src/components/AIStory.tsx:handleWordToggle |
speakText |
software | healthy | src/components/AIStory.tsx:speakText |
handleGenerateStory |
software | healthy | src/components/AIStory.tsx:handleGenerateStory |
triggerOfflineFallback |
software | healthy | src/components/AIStory.tsx:triggerOfflineFallback |
FlashcardDeck |
software | healthy | src/components/FlashcardDeck.tsx:FlashcardDeck |
handleNext |
software | healthy | src/components/FlashcardDeck.tsx:handleNext |
handlePrev |
software | healthy | src/components/FlashcardDeck.tsx:handlePrev |
handleShuffle |
software | healthy | src/components/FlashcardDeck.tsx:handleShuffle |
speakChinese |
software | healthy | src/components/FlashcardDeck.tsx:speakChinese |
StrokePractice |
software | healthy | src/components/StrokePractice.tsx:StrokePractice |
speakWord |
software | healthy | src/components/StrokePractice.tsx:speakWord |
getCoordinates |
software | healthy | src/components/StrokePractice.tsx:getCoordinates |
startDrawing |
software | healthy | src/components/StrokePractice.tsx:startDrawing |
draw |
software | healthy | src/components/StrokePractice.tsx:draw |
stopDrawing |
software | healthy | src/components/StrokePractice.tsx:stopDrawing |
clearCanvas |
software | healthy | src/components/StrokePractice.tsx:clearCanvas |
⚙ express.json( |
software | healthy | server.ts |
⚙ vite.middlewares |
software | healthy | server.ts |
⚙ express.static(distPath |
software | healthy | server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
vite.config.ts |
software | warning | vite.config.ts |
README.md |
software | healthy | README.md |
package.json |
software | healthy | package.json |
index.html |
software | healthy | index.html |
server.ts |
software | healthy | server.ts |
tsconfig.json |
software | healthy | tsconfig.json |
metadata.json |
software | healthy | metadata.json |
index.css |
software | healthy | src/index.css |
main.tsx |
software | warning | src/main.tsx |
App.tsx |
software | healthy | src/App.tsx |
types.ts |
software | warning | src/types.ts |
AITutor.tsx |
software | healthy | src/components/AITutor.tsx |
HSKQuiz.tsx |
software | healthy | src/components/HSKQuiz.tsx |
AIStory.tsx |
software | healthy | src/components/AIStory.tsx |
FlashcardDeck.tsx |
software | healthy | src/components/FlashcardDeck.tsx |
StrokePractice.tsx |
software | healthy | src/components/StrokePractice.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
App |
frontend | healthy | src/App.tsx |
AITutor |
frontend | healthy | src/components/AITutor.tsx |
HSKQuiz |
frontend | healthy | src/components/HSKQuiz.tsx |
AIStory |
frontend | healthy | src/components/AIStory.tsx |
FlashcardDeck |
frontend | healthy | src/components/FlashcardDeck.tsx |
StrokePractice |
frontend | healthy | src/components/StrokePractice.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
GET /api/vocabulary |
api | healthy | server.ts |
POST /api/gemini/explain |
api | healthy | server.ts |
POST /api/gemini/story |
api | healthy | server.ts |
POST /api/gemini/tutor |
api | healthy | server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
src |
software | healthy | src |
components |
software | healthy | src/components |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-krfu00on |
software | healthy | /tmp/repobility-clone-krfu00on |
| Label | Layer | Status | Path |
|---|---|---|---|
port:3000 |
network | healthy | server.ts |
This page is publicly accessible at:
https://repobility.com/scan/8bd8b392-5a86-49d2-bbae-ce13836146fb/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/8bd8b392-5a86-49d2-bbae-ce13836146fb/
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.