# File 1: Backup test setup (9KB) - NEVER USED
rm src/__mocks__/setup.backup.ts
# File 2: Orphaned test component (70 lines) - NEVER IMPORTED
rm src/test-social-links.tsx
# Files 3-5: Unused mock setup files (not referenced in vitest config)
rm src/__mocks__/isolated-setup.ts
rm src/__mocks__/minimal-setup.ts
rm src/__mocks__/simple-setup.tsTotal lines removed: ~600 lines
File: src/evals/datasets/ground-truth-extractor.ts
// BEFORE (WRONG)
private balanceDataset(contributorRoles: any[]): any[] {
// AFTER (CORRECT)
private balanceDataset(contributorRoles: ContributorRole[]): ContributorRole[] {File: src/components/features/contributor/contributor-of-the-month-simple.tsx
// BEFORE (WRONG)
contributor: any;
contributors: any[];
// AFTER (CORRECT)
contributor: Contributor;
contributors: Contributor[];File: src/hooks/use-admin-auth.ts
// BEFORE (WRONG)
} catch (error: any) {
// AFTER (CORRECT)
} catch (error: unknown) {
if (error instanceof Error) {
console.error(error.message);
}
}-
metrics-and-trends-card.tsx- Add debouncing/rate limiting -
ActivityFeed.tsx- Use real workspaceId data fetch
-
layout.tsx- Populate recent repositories -
layout.tsx- Track recent items
-
workspace-page.tsx- Generate real activities from repositories -
workspace-page.tsx- Generate real trend data -
workspace.service.ts(4 TODOs) - Calculate star/contributor counts
| File | Size | Suggestion |
|---|---|---|
workspace-page.tsx |
1831L | Split into hooks/components |
workspace.service.ts |
1825L | Extract into focused modules |
health-metrics.ts |
1556L | Merge with issue-metrics.ts |
llm-service.ts |
1289L | Extract OpenAI integration |
ContributorProfileModal.tsx |
1265L | Extract modal sections |
🔴 CRITICAL (Use immediately)
- src/evals/datasets/ground-truth-extractor.ts (4+ any)
- src/components/features/contributor/contributor-of-the-month-simple.tsx (2+ any)
- src/hooks/use-repository-summary.ts (3+ any)
🟠 HIGH (Next week)
- src/components/features/repository/progressive-repo-view.tsx
- src/components/features/repository/repo-stats-summary.tsx
- src/hooks/use-github-organizations.ts
- src/hooks/use-admin-auth.ts
- d3-interpolate - Only in mocks, check if needed
- @nivo/core - Used only in contributions.tsx (OK)
- @react-spring/web - Used only in contributions.tsx (OK)
- dub - Verify sharing functionality is active
- html2canvas - Verify social card generation is active
// Step 1: Find the interface definition
import type { Contributor } from '@/types';
// Step 2: Replace any with interface
// ❌ BEFORE
const contributors: any[] = data;
// ✅ AFTER
const contributors: Contributor[] = data;
// Step 3: Add proper error handling if needed
// ✅ AFTER
const contributors = (data: unknown): data is Contributor[] => {
return Array.isArray(data) &&
data.every(item => 'id' in item && 'username' in item);
};# Check remaining any types
grep -r ": any" src --include="*.ts" --include="*.tsx" | grep -v __tests__ | grep -v __mocks__
# Check remaining TODOs
grep -r "TODO\|FIXME" src --include="*.ts" --include="*.tsx" | grep -v __tests__
# Check references to deleted files (after cleanup)
grep -r "setup.backup\|test-social-links\|isolated-setup" src --include="*.ts"
# Count lines before/after
find src -type f \( -name "*.ts" -o -name "*.tsx" \) | xargs wc -l | tail -1✅ 600+ lines of dead code removed
✅ 20+ any types converted to proper interfaces
✅ 18 TODOs tracked and prioritized
✅ Test setup configuration simplified
✅ Type safety improved
✅ Codebase clarity improved
Duration: 2-3 sprints (phased cleanup)
Risk Level: Low (mostly removing unused code)
Testing: Run npm run typecheck and npm run test after changes