https://github.com/selmetwa/parallel-arabic
· scanned 2026-06-16 00:07 UTC (2 months, 2 weeks ago)
173 raw signals (75 security + 98 graph)
Last scanned 2 months, 2 weeks ago · v1 · 106 actionable findings from 2 signal sources. 319 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 1175 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 |
|---|---|---|---|
fly.toml |
software | healthy | fly.toml |
playwright.config.ts |
software | healthy | playwright.config.ts |
vite.config.ts |
software | healthy | vite.config.ts |
skills-lock.json |
software | healthy | skills-lock.json |
.mcp.json |
software | healthy | .mcp.json |
vercel.json |
software | healthy | vercel.json |
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
postcss.config.cjs |
software | healthy | postcss.config.cjs |
tailwind.config.js |
software | healthy | tailwind.config.js |
.eslintrc.cjs |
software | healthy | .eslintrc.cjs |
package.json |
software | healthy | package.json |
posthog-setup-report.md |
software | healthy | posthog-setup-report.md |
schema.sql |
software | healthy | schema.sql |
Dockerfile |
software | healthy | Dockerfile |
capacitor.config.ts |
software | healthy | capacitor.config.ts |
package-lock.json |
software | healthy | package-lock.json |
svelte.config.js |
software | healthy | svelte.config.js |
declarations.d.ts |
software | healthy | declarations.d.ts |
tsconfig.json |
software | healthy | tsconfig.json |
AGENTS.md |
software | healthy | AGENTS.md |
entrypoint.sh |
software | healthy | entrypoint.sh |
test.ts |
software | healthy | tests/test.ts |
manifest.json |
software | healthy | static/manifest.json |
lesson1-template.md |
software | healthy | static/rules/lessons/lesson1-template.md |
populate-words.ts |
software | healthy | scripts/populate-words.ts |
generate-verb-conjugations.ts |
software | healthy | scripts/generate-verb-conjugations.ts |
README.md |
software | healthy | scripts/README.md |
verb-data-egyptian.ts |
software | healthy | scripts/verb-data-egyptian.ts |
upload-lessons-to-storage.ts |
software | healthy | scripts/upload-lessons-to-storage.ts |
seed-word-of-the-day.ts |
software | healthy | scripts/seed-word-of-the-day.ts |
sync-stripe-subscriptions.ts |
software | healthy | scripts/sync-stripe-subscriptions.ts |
CLAUDE.md |
software | healthy | .claude/CLAUDE.md |
settings.json |
software | healthy | .claude/settings.json |
SKILL.md |
software | healthy | .claude/skills/svelte-core-best-practices/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/d3-js/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/arabic-sentence-practice/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/svelte-code-writer/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/design/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/integration-sveltekit/SKILL.md |
EXAMPLE.md |
software | healthy | .claude/skills/integration-sveltekit/references/EXAMPLE.md |
svelte.md |
software | healthy | .claude/skills/integration-sveltekit/references/svelte.md |
basic-integration-1.1-edit.md |
software | healthy | .claude/skills/integration-sveltekit/references/basic-integ… |
basic-integration-1.0-begin.md |
software | healthy | .claude/skills/integration-sveltekit/references/basic-integ… |
identify-users.md |
software | healthy | .claude/skills/integration-sveltekit/references/identify-us… |
basic-integration-1.3-conclude.md |
software | healthy | .claude/skills/integration-sveltekit/references/basic-integ… |
basic-integration-1.2-revise.md |
software | healthy | .claude/skills/integration-sveltekit/references/basic-integ… |
SKILL.md |
software | healthy | .claude/skills/arabic-reading-display/SKILL.md |
SKILL.md |
software | healthy | .claude/skills/arabic-speaking-practice/SKILL.md |
word-of-the-day.md |
software | healthy | .claude/plans/word-of-the-day.md |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
fetchWordsFromApi |
software | healthy | scripts/populate-words.ts:fetchWordsFromApi |
insertWords |
software | healthy | scripts/populate-words.ts:insertWords |
processSection |
software | healthy | scripts/populate-words.ts:processSection |
populateAllWords |
software | healthy | scripts/populate-words.ts:populateAllWords |
cleanTransliteration |
software | healthy | scripts/generate-verb-conjugations.ts:cleanTransliteration |
toSlug |
software | healthy | scripts/generate-verb-conjugations.ts:toSlug |
sleep |
software | healthy | scripts/generate-verb-conjugations.ts:sleep |
parseJsonSafe |
software | healthy | scripts/generate-verb-conjugations.ts:parseJsonSafe |
generateConjugations |
software | healthy | scripts/generate-verb-conjugations.ts:generateConjugations |
main |
software | healthy | scripts/generate-verb-conjugations.ts:main |
uploadLessons |
software | healthy | scripts/upload-lessons-to-storage.ts:uploadLessons |
toDateStr |
software | healthy | scripts/seed-word-of-the-day.ts:toDateStr |
addDays |
software | healthy | scripts/seed-word-of-the-day.ts:addDays |
fetchWordsForDialect |
software | healthy | scripts/seed-word-of-the-day.ts:fetchWordsForDialect |
getNextStartDate |
software | healthy | scripts/seed-word-of-the-day.ts:getNextStartDate |
main |
software | healthy | scripts/seed-word-of-the-day.ts:main |
syncUserSubscription |
software | healthy | scripts/sync-stripe-subscriptions.ts:syncUserSubscription |
syncAllSubscriptions |
software | healthy | scripts/sync-stripe-subscriptions.ts:syncAllSubscriptions |
init |
software | healthy | src/hooks.client.ts:init |
also |
software | healthy | src/hooks.server.ts:also |
trackEvent |
software | healthy | src/lib/analytics.ts:trackEvent |
loadFromStorage |
software | healthy | src/lib/stores/import-job.ts:loadFromStorage |
saveToStorage |
software | healthy | src/lib/stores/import-job.ts:saveToStorage |
stopPolling |
software | healthy | src/lib/stores/import-job.ts:stopPolling |
processBatch |
software | healthy | src/lib/stores/import-job.ts:processBatch |
startImportJob |
software | healthy | src/lib/stores/import-job.ts:startImportJob |
resumeImportJobIfNeeded |
software | healthy | src/lib/stores/import-job.ts:resumeImportJobIfNeeded |
onImportComplete |
software | healthy | src/lib/stores/import-job.ts:onImportComplete |
onImportError |
software | healthy | src/lib/stores/import-job.ts:onImportError |
resetImportJob |
software | healthy | src/lib/stores/import-job.ts:resetImportJob |
computeAchievements |
software | healthy | src/lib/config/achievements.ts:computeAchievements |
formatDialectName |
software | healthy | src/lib/utils/seo.ts:formatDialectName |
getPageMeta |
software | healthy | src/lib/utils/seo.ts:getPageMeta |
generateStructuredData |
software | healthy | src/lib/utils/seo.ts:generateStructuredData |
to |
software | healthy | src/lib/utils/audio-utils.ts:to |
getDataDirectory |
software | healthy | src/lib/utils/audio-utils.ts:getDataDirectory |
getStoryAudioPath |
software | healthy | src/lib/utils/audio-utils.ts:getStoryAudioPath |
storyAudioExists |
software | healthy | src/lib/utils/audio-utils.ts:storyAudioExists |
saveUploadedAudioFile |
software | healthy | src/lib/utils/audio-utils.ts:saveUploadedAudioFile |
authenticatedFetch |
software | healthy | src/lib/utils/api-client.ts:authenticatedFetch |
authenticatedPost |
software | healthy | src/lib/utils/api-client.ts:authenticatedPost |
authenticatedGet |
software | healthy | src/lib/utils/api-client.ts:authenticatedGet |
incrementSentencesViewed |
software | healthy | src/lib/utils/api-client.ts:incrementSentencesViewed |
incrementTensesViewed |
software | healthy | src/lib/utils/api-client.ts:incrementTensesViewed |
hasTashkeelDiacritics |
software | healthy | src/lib/utils/add-tashkeel.ts:hasTashkeelDiacritics |
stripTashkeel |
software | healthy | src/lib/utils/add-tashkeel.ts:stripTashkeel |
wordCount |
software | healthy | src/lib/utils/add-tashkeel.ts:wordCount |
addTashkeelToSentences |
software | healthy | src/lib/utils/add-tashkeel.ts:addTashkeelToSentences |
createSentenceSchema |
software | healthy | src/lib/utils/gemini-schemas.ts:createSentenceSchema |
createStorySchema |
software | healthy | src/lib/utils/gemini-schemas.ts:createStorySchema |
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 |
static |
software | healthy | static |
rules |
software | healthy | static/rules |
lessons |
software | healthy | static/rules/lessons |
scripts |
software | healthy | scripts |
.claude |
software | healthy | .claude |
skills |
software | healthy | .claude/skills |
svelte-core-best-practices |
software | healthy | .claude/skills/svelte-core-best-practices |
d3-js |
software | healthy | .claude/skills/d3-js |
arabic-sentence-practice |
software | healthy | .claude/skills/arabic-sentence-practice |
svelte-code-writer |
software | healthy | .claude/skills/svelte-code-writer |
design |
software | healthy | .claude/skills/design |
integration-sveltekit |
software | healthy | .claude/skills/integration-sveltekit |
references |
software | healthy | .claude/skills/integration-sveltekit/references |
arabic-reading-display |
software | healthy | .claude/skills/arabic-reading-display |
arabic-speaking-practice |
software | healthy | .claude/skills/arabic-speaking-practice |
plans |
software | healthy | .claude/plans |
www |
software | healthy | www |
.codex |
software | healthy | .codex |
.github |
software | healthy | .github |
workflows |
software | healthy | .github/workflows |
src |
software | healthy | src |
lib |
software | healthy | src/lib |
types |
software | healthy | src/lib/types |
stores |
software | healthy | src/lib/stores |
config |
software | healthy | src/lib/config |
constants |
software | healthy | src/lib/constants |
stories |
software | healthy | src/lib/constants/stories |
utils |
software | healthy | src/lib/utils |
components |
software | healthy | src/lib/components |
dialect-shared |
software | healthy | src/lib/components/dialect-shared |
speak |
software | healthy | src/lib/components/dialect-shared/speak |
conjugations |
software | healthy | src/lib/components/dialect-shared/conjugations |
lesson |
software | healthy | src/lib/components/dialect-shared/lesson |
components |
software | healthy | src/lib/components/dialect-shared/lesson/components |
vocab |
software | healthy | src/lib/components/dialect-shared/vocab |
sentences |
software | healthy | src/lib/components/dialect-shared/sentences |
story |
software | healthy | src/lib/components/dialect-shared/story |
types |
software | healthy | src/lib/components/dialect-shared/story/types |
components |
software | healthy | src/lib/components/dialect-shared/story/components |
helpers |
software | healthy | src/lib/components/dialect-shared/story/helpers |
stripe |
software | healthy | src/lib/components/stripe |
helpers |
software | healthy | src/lib/helpers |
server |
software | healthy | src/lib/server |
services |
software | healthy | src/lib/services |
store |
software | healthy | src/lib/store |
schemas |
software | healthy | src/lib/schemas |
routes |
software | healthy | src/routes |
speak |
software | healthy | src/routes/speak |
lessons-new |
software | healthy | src/routes/lessons-new |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
/ |
frontend | healthy | src/hooks.server.ts |
/learn |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/practice |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/explore |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/alphabet |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/alphabet/learn |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/alphabet/practice |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/alphabet/practice/handwriting |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/alphabet/practice/keyboard |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons/structured |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/vocabulary |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/stories |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/sentences |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/speak |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/videos |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/videos-new |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/tutor |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/egyptian-arabic |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/egyptian-arabic/conjugations |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/fusha |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/levantine |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/darija |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/stories?dialect=egyptian-arabic |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/stories?dialect=darija |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/stories?dialect=levantine |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/stories?dialect=fusha |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/vocabulary?dialect=egyptian-arabic |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons/structured/egyptian-arabic |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons/structured/fusha |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons/structured/levantine |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/lessons/structured/darija |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/anki-decks |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/keyboard |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/mobile-app |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/about |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/faq |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
/support |
frontend | healthy | src/routes/sitemap.xml/+server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/lib/constants/stories/at-the-hotel.ts |
security | healthy | src/lib/constants/stories/at-the-hotel.ts |
auth::src/routes/api/auth/google/callback/+server.ts |
security | healthy | src/routes/api/auth/google/callback/+server.ts |
auth::src/hooks.server.ts |
security | healthy | src/hooks.server.ts |
auth::src/routes/auth/callback-supabase/+server.ts |
security | healthy | src/routes/auth/callback-supabase/+server.ts |
auth::package.json |
security | healthy | package.json |
auth::src/routes/login/+page.svelte |
security | healthy | src/routes/login/+page.svelte |
auth::src/routes/signup/+page.svelte |
security | healthy | src/routes/signup/+page.svelte |
auth::src/routes/api/auth/sync/+server.ts |
security | healthy | src/routes/api/auth/sync/+server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
port:4173 |
network | healthy | playwright.config.ts |
port:5173 |
network | healthy | Dockerfile |
port:443 |
network | healthy | src/hooks.server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
for |
software | healthy | src/lib/utils/gemini-api-retry.ts:for |
GeminiApiError |
software | healthy | src/lib/utils/gemini-api-retry.ts:GeminiApiError |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | package.json |
redis |
data | healthy | package.json |
| Label | Layer | Status | Path |
|---|---|---|---|
generic_api_key::src/routes/api/short-transcript/+server.ts |
security | healthy | src/routes/api/short-transcript/+server.ts |
generic_api_key::src/routes/api/youtube-transcript/+server.… |
security | healthy | src/routes/api/youtube-transcript/+server.ts |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-_rlpidj8 |
software | healthy | /tmp/repobility-clone-_rlpidj8 |
| Label | Layer | Status | Path |
|---|---|---|---|
public |
data | healthy | schema.sql |
| Label | Layer | Status | Path |
|---|---|---|---|
image::Dockerfile |
hardware | healthy | Dockerfile |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::fly-deploy |
cicd | healthy | .github/workflows/fly-deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
deploy |
cicd | healthy | .github/workflows/fly-deploy.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
FLY_API_TOKEN |
cicd | healthy | — |
This page is publicly accessible at:
https://repobility.com/scan/192de74d-6a62-41d4-9ba3-147e3c4fea1b/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/192de74d-6a62-41d4-9ba3-147e3c4fea1b/
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.