Department of Vibe Code Assessment

Report Card

Student: chrisgscott/rag-boilerplateTerm: March 13, 2026
Grade
0
Needs Work

Grades by Subject

Subject
Grade
Score
Issues
Security
A
100
Dependencies
A
94
1
Documentation
A
100
Test Coverage
B
88
1
Code Structure
F
0
66
Error Handling
A
100
Share on X

Teacher's Comments

This repo is a prime example of “let’s shove everything into a few giant files and call it a day.” With over 3,000 lines in a single doc and multiple 500+ line files begging for mercy, your code structure is the dumpster fire here. The killer: you nailed error handling and security, but forgot to tell your package.json how to test itself. Fix the sprawling files and add a test script before this mess eats your sanity.

Error Handling:Zero errors found—your AI decided to actually do this one right.
Code Structure:Sixty-six issues and multiple monolithic files prove your codebase is a glutton for punishment.
Test Coverage:Almost perfect, but no test script in package.json means tests might as well not exist.
Security:No red flags here, your AI’s got the locks tight.
Dependencies:Mostly clean, but one issue suggests you’re not fully vetting your external baggage.
Documentation:Docs are colossal but present—just maybe split those 3k+ line beasts before anyone tries reading them.

Areas for Improvement

(68)
high·package.json

No test script defined in package.json

scripts: ['dev', 'build', 'start', 'lint', 'db:types', 'db:reset']
Add a test script to package.json. Example: "test": "vitest" or "test": "jest".
high·app/api/v1/chat/route.ts

Large file (511 lines) — likely doing too much

511 LOC, threshold is 400
app/api/v1/chat/route.ts is 511 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·components/ai/prompt-input.tsx

Large file (1298 lines) — likely doing too much

1298 LOC, threshold is 400
components/ai/prompt-input.tsx is 1298 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·components/chat/chat-interface.tsx

Large file (528 lines) — likely doing too much

528 LOC, threshold is 400
components/chat/chat-interface.tsx is 528 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·components/ui/sidebar.tsx

Large file (726 lines) — likely doing too much

726 LOC, threshold is 400
components/ui/sidebar.tsx is 726 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/api-guide.md

Large file (784 lines) — likely doing too much

784 LOC, threshold is 400
docs/api-guide.md is 784 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-19-phase-3-search-retrieval-plan.md

Large file (981 lines) — likely doing too much

981 LOC, threshold is 400
docs/plans/2026-02-19-phase-3-search-retrieval-plan.md is 981 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-19-phase-4-chat-implementation-plan.md

Large file (2034 lines) — likely doing too much

2034 LOC, threshold is 400
docs/plans/2026-02-19-phase-4-chat-implementation-plan.md is 2034 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-19-phase-5-eval-cost-impl.md

Large file (3246 lines) — likely doing too much

3246 LOC, threshold is 400
docs/plans/2026-02-19-phase-5-eval-cost-impl.md is 3246 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md

Large file (2096 lines) — likely doing too much

2096 LOC, threshold is 400
docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md is 2096 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md

Large file (533 lines) — likely doing too much

533 LOC, threshold is 400
docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md is 533 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-24-rest-api-plan.md

Large file (2090 lines) — likely doing too much

2090 LOC, threshold is 400
docs/plans/2026-02-24-rest-api-plan.md is 2090 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-24-vlm-visual-extraction-plan.md

Large file (1181 lines) — likely doing too much

1181 LOC, threshold is 400
docs/plans/2026-02-24-vlm-visual-extraction-plan.md is 1181 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-25-contextual-chunking-plan.md

Large file (761 lines) — likely doing too much

761 LOC, threshold is 400
docs/plans/2026-02-25-contextual-chunking-plan.md is 761 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·docs/plans/2026-02-25-semantic-caching-plan.md

Large file (1176 lines) — likely doing too much

1176 LOC, threshold is 400
docs/plans/2026-02-25-semantic-caching-plan.md is 1176 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·lib/demo/content.ts

Large file (561 lines) — likely doing too much

561 LOC, threshold is 400
lib/demo/content.ts is 561 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·planning/PHASE_2_5_PLAN.md

Large file (1745 lines) — likely doing too much

1745 LOC, threshold is 400
planning/PHASE_2_5_PLAN.md is 1745 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·pnpm-lock.yaml

Large file (10335 lines) — likely doing too much

10335 LOC, threshold is 400
pnpm-lock.yaml is 10335 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
high·types/database.types.ts

Large file (910 lines) — likely doing too much

910 LOC, threshold is 400
types/database.types.ts is 910 lines long. Break it into smaller, focused modules. Each file should have one clear responsibility.
medium·app/(dashboard)/admin/actions.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
app/(dashboard)/admin/actions.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/(dashboard)/documents/[id]/page.tsx

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
app/(dashboard)/documents/[id]/page.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/(dashboard)/eval/actions.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
app/(dashboard)/eval/actions.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/chat/route.ts

Deep nesting detected (8 levels) — hard to read and maintain

Max nesting depth: 8
app/api/chat/route.ts has 8 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/v1/chat/route.ts

Deep nesting detected (7 levels) — hard to read and maintain

Max nesting depth: 7
app/api/v1/chat/route.ts has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/api/v1/search/route.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
app/api/v1/search/route.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·app/auth/confirm/route.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
app/auth/confirm/route.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/admin/demo-manager.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/admin/demo-manager.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ai/message.tsx

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
components/ai/message.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ai/prompt-input.tsx

Deep nesting detected (7 levels) — hard to read and maintain

Max nesting depth: 7
components/ai/prompt-input.tsx has 7 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/chat/chat-interface.tsx

Deep nesting detected (9 levels) — hard to read and maintain

Max nesting depth: 9
components/chat/chat-interface.tsx has 9 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/chat/conversation-list.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/chat/conversation-list.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/document-detail.tsx

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
components/documents/document-detail.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/document-list.tsx

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
components/documents/document-list.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/documents/upload-form.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/documents/upload-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/eval-results.tsx

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
components/eval/eval-results.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/feedback-suggestions.tsx

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
components/eval/feedback-suggestions.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/eval/test-set-manager.tsx

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
components/eval/test-set-manager.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/forgot-password-form.tsx

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
components/forgot-password-form.tsx has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/login-form.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/login-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/settings/api-keys-section.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/settings/api-keys-section.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/settings/system-prompt-editor.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/settings/system-prompt-editor.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/sign-up-form.tsx

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
components/sign-up-form.tsx has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/tutorial/fetch-data-steps.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/tutorial/fetch-data-steps.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/tutorial/sign-up-user-steps.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/tutorial/sign-up-user-steps.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ui/input-group.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/ui/input-group.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/ui/sidebar.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/ui/sidebar.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·components/update-password-form.tsx

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
components/update-password-form.tsx has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/api-guide.md

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
docs/api-guide.md has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-19-phase-3-search-retrieval-plan.md

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
docs/plans/2026-02-19-phase-3-search-retrieval-plan.md has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-19-phase-4-chat-implementation-plan.md

Deep nesting detected (10 levels) — hard to read and maintain

Max nesting depth: 10
docs/plans/2026-02-19-phase-4-chat-implementation-plan.md has 10 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-19-phase-5-eval-cost-impl.md

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
docs/plans/2026-02-19-phase-5-eval-cost-impl.md has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
docs/plans/2026-02-19-phase-6-proptech-demo-polish-impl.md has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
docs/plans/2026-02-20-eval-retrieval-detail-view-plan.md has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-24-rest-api-plan.md

Deep nesting detected (10 levels) — hard to read and maintain

Max nesting depth: 10
docs/plans/2026-02-24-rest-api-plan.md has 10 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·docs/plans/2026-02-25-semantic-caching-plan.md

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
docs/plans/2026-02-25-semantic-caching-plan.md has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/embedder.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
lib/rag/embedder.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/eval-runner.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
lib/rag/eval-runner.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/config.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
lib/rag/optimizer/config.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/experiment.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
lib/rag/optimizer/experiment.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/optimizer/session.ts

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
lib/rag/optimizer/session.ts has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/rag/reranker.ts

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
lib/rag/reranker.ts has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/supabase/proxy.ts

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
lib/supabase/proxy.ts has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·lib/supabase/server.ts

Deep nesting detected (6 levels) — hard to read and maintain

Max nesting depth: 6
lib/supabase/server.ts has 6 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·services/ingestion/src/vlm.py

Deep nesting detected (4 levels) — hard to read and maintain

Max nesting depth: 4
services/ingestion/src/vlm.py has 4 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·types/database.types.ts

Deep nesting detected (5 levels) — hard to read and maintain

Max nesting depth: 5
types/database.types.ts has 5 levels of nesting. Use early returns, extract helper functions, or restructure conditionals to flatten the code.
medium·package.json

High dependency count (36)

36 production dependencies
Review your 36 dependencies. Some may be unused or replaceable with built-in alternatives.
low

Multiple files with similar names suggesting copy-paste: app/(dashboard)/actions.ts, app/(dashboard)/admin/actions.ts, app/(dashboard)/chat/actions.ts

7 files with base name 'actions'
There are 7 files that look like copies of each other. Consolidate them or give them meaningful, distinct names.
low

Multiple files with similar names suggesting copy-paste: lib/rag/optimizer/config.ts, services/ingestion/src/config.py, supabase/config.toml

3 files with base name 'config'
There are 3 files that look like copies of each other. Consolidate them or give them meaningful, distinct names.

Progress Report

7 runs on record for this student

Run 1 of 7

Overall72
Code Structure0
Error Handling100
Test Coverage88
Security100
Dependencies94
Documentation100