Public scan — anyone with this URL can view this analysis. Sign up to track your own repos privately, run scheduled re-scans, and get AI fix prompts via your dashboard.

sculptdotfun/viberank

https://github.com/sculptdotfun/viberank · scanned 2026-06-16 00:05 UTC (2 months, 3 weeks ago)

51 raw signals (0 security + 51 graph)

UNIFIED Repobility · multi-layer engine · AI coders

Complete repo analysis

Last scanned 2 months, 3 weeks ago · v1 · 51 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.

JSON
Severity distribution — click a segment to filter
Active filters: excluding tests × Reset all
Corpus Intelligence Cross-corpus context (cohort percentile, top patterns, fix plan) is shown only on repositories you own. Sign up and connect your repo to view it.
Scan summary Repository scanned at 74.8/100 with 100.0% coverage. It contains 333 nodes across 15 cross-layer flows, written primarily in mixed languages. Engine surfaced 51 findings — concentrated in frontend (23), security (15), quality (11). Risk profile is low: 0 critical, 0 high, 32 medium. Recommended next step: open the frontend layer findings first — that's where the highest-impact wins live.

Showing 38 of 51 actionable findings. Click TP / FP to vote on a finding's accuracy — votes adjust the confidence weighting and improve detection across the platform.

medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/claude-code-complete-guide/page.tsx:62
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/codex-vs-claude-code-vs-gemini-cli/page.tsx:45
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/cursor-vs-claude-code-vs-copilot/page.tsx:62
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/how-much-does-claude-code-cost/page.tsx:45
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/mcp-servers-guide/page.tsx:62
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/reduce-ai-coding-costs/page.tsx:45
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/state-of-ai-coding-2026/page.tsx:109
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/blog/vibe-coding-revolution/page.tsx:61
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/layout.tsx:119
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/page.tsx:44
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/profile/[username]/layout.tsx:160
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph frontend Frontend quality conf 1.00 `dangerouslySetInnerHTML` used in a React component — src/app/tool/[tool]/page.tsx:88
Open XSS surface unless the input is provably trusted. Replace with explicit JSX or sanitize via a vetted library. Why: OWASP basics. Already partially flagged by the security analyzer. Rule id: fq.dangerous-html
Fq dangerous html
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — packages/viberank-mcp-server/src/index.ts:285
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Integrity conf 1.00 `fetch()` without try/.catch or AbortSignal — src/app/api/og/route.tsx:17
Bare `fetch(...)` will throw an unhandled rejection on network failure. Wrap in try/catch, attach a `.catch(...)`, or pass an AbortSignal with a timeout.
runtime safetyRobustness
medium System graph quality Placeholder conf 1.00 Critical user flow still appears backed by mock or placeholder data
A payment/auth/admin/order/billing-style flow contains mock, fake, TODO, dummy, or placeholder markers in runtime source. In the Fable corpus this is a high-leverage completeness smell: the app can look finished while the money, identity, or tenant flow is still scaffolded.
Mock dataCritical flowGenerated repo pattern
medium System graph security security conf 1.00 Insecure pattern 'cors_wildcard' in src/app/api/submit/route.ts:363
Found a known-risky pattern (cors_wildcard). Review and replace if possible.
src/app/api/submit/route.ts:363 Cors wildcard
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/claude-code-complete-guide/page.tsx:62
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/claude-code-complete-guide/page.tsx:62 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/codex-vs-claude-code-vs-gemini-cli/page.tsx:45
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/codex-vs-claude-code-vs-gemini-cli/page.tsx:45 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/cursor-vs-claude-code-vs-copilot/page.tsx:62
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/cursor-vs-claude-code-vs-copilot/page.tsx:62 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/how-much-does-claude-code-cost/page.tsx:45
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/how-much-does-claude-code-cost/page.tsx:45 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/mcp-servers-guide/page.tsx:62
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/mcp-servers-guide/page.tsx:62 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/reduce-ai-coding-costs/page.tsx:45
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/reduce-ai-coding-costs/page.tsx:45 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/state-of-ai-coding-2026/page.tsx:109
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/state-of-ai-coding-2026/page.tsx:109 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/blog/vibe-coding-revolution/page.tsx:61
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/blog/vibe-coding-revolution/page.tsx:61 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/layout.tsx:119
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/layout.tsx:119 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/page.tsx:44
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/page.tsx:44 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/profile/[username]/layout.tsx:160
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/profile/[username]/layout.tsx:160 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'dangerous_innerhtml' in src/app/tool/[tool]/page.tsx:88
Found a known-risky pattern (dangerous_innerhtml). Review and replace if possible.
src/app/tool/[tool]/page.tsx:88 Dangerous innerhtml
medium System graph security security conf 1.00 Insecure pattern 'node_child_process' in packages/viberank-cli/cli.js:3
Found a known-risky pattern (node_child_process). Review and replace if possible.
packages/viberank-cli/cli.js:3 Node child process
medium System graph security security conf 1.00 Insecure pattern 'node_child_process' in packages/viberank-mcp-server/src/index.ts:9
Found a known-risky pattern (node_child_process). Review and replace if possible.
packages/viberank-mcp-server/src/index.ts:9 Node child process
medium System graph cicd CI/CD security conf 1.00 No CI/CD pipelines detected
No GitHub Actions, GitLab CI, or CircleCI configs found. Without CI you can't gate deploys on tests/lints.
CI/CD securityCoverage
medium System graph quality Tests conf 1.00 Very low test-to-source ratio
0 test file(s) for 66 source file(s) (ratio 0.00). Consider adding integration or unit tests for critical paths.
Coverage
low System graph quality Production readiness conf 1.00 Composite production-readiness gap
Multiple low-cost hardening controls are missing together: ci, tests. Opus verification showed these co-occurring gaps are a better readiness signal than reading each flag in isolation.
Repo hardeningGenerated repo pattern
low System graph quality Debug conf 1.00 Debug logging residue appears in source files
Found 37 console/debugger/print-style debug statements in non-test source. This is a common fast-generation residue before production cleanup.
CleanupRepo hardeningGenerated repo pattern
low System graph quality Provenance conf 1.00 Shallow git history limits provenance confidence
The repository is a shallow clone. Origin/evolution analysis cannot distinguish fresh generation, imported legacy code, or long-lived human code with high confidence.
Git historyGenerated repo pattern
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — packages/viberank-cli/cli.js:20
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/app/api/og/route.tsx:337
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
low System graph frontend Frontend quality conf 1.00 Stray `console.log` in TS/JS — src/app/api/submit/route.ts:15
Replace with the toast helper, an error boundary, or remove. `console.warn` / `console.error` are acceptable. Why: Hygiene — easy to leak debug output. Rule id: fq.console-leak
Fq console leak
For AI agents: Voting guide (TP/FP) MCP manifest Stdio wrapper SARIF Integrate Findings queue Vote TP/FP on findings to calibrate the engine.
For AI agents + API integrations
Email me when this repo regresses
Free. We re-scan periodically; new criticals → your inbox. No signup required for the scan itself.
API access

This page is publicly accessible at: https://repobility.com/scan/bd948bc8-dd55-4153-9e38-2bcdaa9af873/

To check status programmatically (no auth required):

curl -s https://repobility.com/api/v1/public/scan/bd948bc8-dd55-4153-9e38-2bcdaa9af873/

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.