Claude-skill-registry fresh-install-cleanup
Clean up and perform a fresh install of the Orient monorepo. Use when asked to "fresh install", "clean install", "rebuild from scratch", "fix build issues", "clean node_modules", or when encountering stale build artifacts, tsbuildinfo issues, or turbo cache problems.
git clone https://github.com/majiayu000/claude-skill-registry
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/fresh-install-cleanup" ~/.claude/skills/majiayu000-claude-skill-registry-fresh-install-cleanup && rm -rf "$T"
skills/data/fresh-install-cleanup/SKILL.mdFresh Install Cleanup
Quick Reference
# Full cleanup and reinstall rm -rf node_modules .turbo packages/*/node_modules packages/*/.turbo packages/*/dist find packages/*/src -type f \( -name "*.js" -o -name "*.js.map" -o -name "*.d.ts" -o -name "*.d.ts.map" \) -delete find packages -name "*.tsbuildinfo" -delete rm -f .tsbuildinfo pnpm install pnpm run build:packages
Common Issues & Fixes
1. Stale tsbuildinfo Files (Incremental Compilation)
Symptoms:
runs without error but produces no outputtsc- Turbo shows "cache hit" but dist/ folders are empty
- Turbo warns: "no output files found for task @orient/mcp-tools#build"
- Build completes "successfully" but dependent packages fail with TS2307
Cause: TypeScript's
.tsbuildinfo files store incremental compilation state. When stale, tsc believes everything is up-to-date and skips compilation entirely - even when dist/ is empty.
Key indicator: The warning "no output files found" after a build means tsbuildinfo is stale.
Fix:
find packages -name "*.tsbuildinfo" -delete rm -f .tsbuildinfo
Verification (critical step after cleaning):
# Rebuild pnpm run build:packages # Verify dist directories are populated BEFORE proceeding ls packages/mcp-tools/dist/index.js ls packages/core/dist/index.js ls packages/agents/dist/index.js
If dist/ is still empty after rebuild, check for other issues (stray files in src/, turbo cache).
2. Stray Compiled Files in src/
Symptom: Build errors about missing modules even though dependencies are installed.
Cause: Previous builds left
.js, .d.ts, .js.map, .d.ts.map files in src/ directories instead of dist/.
Fix:
find packages/*/src -type f \( -name "*.js" -o -name "*.js.map" -o -name "*.d.ts" -o -name "*.d.ts.map" \) -delete
3. Turbo Cache Issues
Symptom: Build appears cached but dist folders are empty or stale.
Fix:
rm -rf .turbo packages/*/.turbo
4. Stale Worktrees
Symptom: Many old worktrees consuming disk space.
Check:
git worktree list
Fix:
# Remove worktree directories rm -rf ~/claude-worktrees/orient/* rm -rf ~/.cursor/worktrees/orient/* # Prune git references git worktree prune
5. Stale Fresh Install Folders
Symptom: Multiple
orient-fresh-* directories in parent folder.
Fix:
rm -rf ../orient-fresh-*
6. Module Resolution Errors (TS2307)
Symptom: Build fails with
error TS2307: Cannot find module '@orient/mcp-tools' or similar.
Cause: Turbo's dependency graph wasn't respected because:
- Stale tsbuildinfo made turbo think prerequisite packages were already built
- The
folder was empty or missing despite turbo showing "cache hit"dist/
Troubleshooting:
- Verify turbo.json has
for the build task"dependsOn": ["^build"] - Check package.json has correct
dependenciesworkspace:* - Manually verify prerequisite package dist exists:
ls packages/mcp-tools/dist/index.js
Fix: Clean tsbuildinfo and turbo cache, then rebuild:
find packages -name "*.tsbuildinfo" -delete rm -rf .turbo packages/*/.turbo packages/*/dist pnpm run build:packages
Full Cleanup Procedure
-
Remove node_modules and build artifacts:
rm -rf node_modules .turbo packages/*/node_modules packages/*/.turbo packages/*/dist -
Clean stray compiled files from src directories:
find packages/*/src -type f \( -name "*.js" -o -name "*.js.map" -o -name "*.d.ts" -o -name "*.d.ts.map" \) -delete -
Clean tsbuildinfo files:
find packages -name "*.tsbuildinfo" -delete rm -f .tsbuildinfo -
Clean worktrees (optional):
rm -rf ~/claude-worktrees/orient/* ~/.cursor/worktrees/orient/* git worktree prune -
Fresh install:
pnpm install -
Build packages:
pnpm run build:packages -
Verify build completion (critical - don't skip):
# Turbo's "cache hit" can be misleading - always verify dist/ exists ls packages/*/dist/index.jsIf any package is missing dist/index.js, clean tsbuildinfo and rebuild that package.
Docker Testing Mode
Running Tests with Docker Stack
./run.sh test # Build and start full Docker stack ./run.sh test pull # Use pre-built images from ghcr.io (requires auth) ./run.sh test status # Check container health ./run.sh test stop # Stop containers
7. Docker Build Hangs on Metadata Loading
Symptom:
./run.sh test hangs at "load metadata for docker.io/library/node:20-alpine"
Cause: Docker buildx can be slow to fetch metadata from Docker Hub on macOS.
Workaround: Use existing local images without rebuilding:
cd docker docker compose --env-file ../.env -f docker-compose.v2.yml -f docker-compose.local.yml --profile slack up -d --no-build
8. Port Conflicts (9000, 5432, 80)
Symptom:
Bind for 0.0.0.0:9000 failed: port is already allocated
Cause: Dev containers (orienter--0) share ports with test containers (orienter-).
Fix: Stop dev containers first:
docker stop orienter-nginx-0 orienter-postgres-0 orienter-minio-0 docker rm orienter-nginx-0 orienter-postgres-0 orienter-minio-0
Then start test containers:
./run.sh test
9. ghcr.io Authentication Required
Symptom:
./run.sh test pull fails with 401 Unauthorized
Cause: Private images require GitHub authentication.
Fix: Either authenticate to ghcr.io or use local builds:
# Option 1: Authenticate echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin # Option 2: Use local images (skip pull) ./run.sh test # builds locally
Verification
After cleanup and rebuild, verify:
# Check dist directories exist ls packages/*/dist # Run unit tests pnpm run test:ci # Run e2e tests with Docker stack ./run.sh test status # Ensure all healthy E2E_TESTS=true pnpm vitest run tests/e2e