Claude-code-skills ln-724-artifact-cleaner
Removes platform-specific artifacts from Replit, StackBlitz, CodeSandbox, Glitch. Use when preparing exported projects for production.
git clone https://github.com/levnikolaevich/claude-code-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/levnikolaevich/claude-code-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills-catalog/ln-724-artifact-cleaner" ~/.claude/skills/levnikolaevich-claude-code-skills-ln-724-artifact-cleaner && rm -rf "$T"
skills-catalog/ln-724-artifact-cleaner/SKILL.mdPaths: File paths (
,shared/,references/) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root. If../ln-*is missing, fetch files via WebFetch fromshared/.https://raw.githubusercontent.com/levnikolaevich/claude-code-skills/master/skills/{path}
ln-724-artifact-cleaner
Type: L3 Worker Category: 7XX Project Bootstrap
Removes platform-specific artifacts from projects exported from online platforms, preparing them for production deployment.
Overview
| Aspect | Details |
|---|---|
| Input | Project directory, platform (auto-detect or manual) |
| Output | Clean project without platform dependencies |
| Platforms | Replit, StackBlitz, CodeSandbox, Glitch |
| Duration | ~2-5 minutes |
| Invocation | Called from ln-720 (TRANSFORM mode, conditional) or user-invocable |
Invocation conditions:
- TRANSFORM mode only (SKIP in CREATE mode)
- At least one platform detected
- User confirmation before cleanup
Platform Support Matrix
| Platform | Config Files | Directories | NPM Packages | Build Config | Comments |
|---|---|---|---|---|---|
| Replit | , | , , | | checks | |
| StackBlitz | | | -- | Port overrides | -- |
| CodeSandbox | | | -- | CSB env checks | -- |
| Glitch | , | , | -- | Glitch env vars | -- |
Reference: platform_artifacts.md
Workflow
Phase 1: Detect & Scan | +---> 1.0 Detect platforms (auto-detect by config files) +---> 1.1 Scan platform-specific artifacts | v Phase 2: Preview | v Phase 3: Confirm | v Phase 4: Execute (per detected platform) | +---> 4.1 Delete files/directories +---> 4.2 Modify package.json +---> 4.3 Modify build config (vite/webpack) +---> 4.4 Remove platform comments +---> 4.5 Modify .gitignore | v Phase 5: Verify & Report
Phase 1: Detect & Scan
Step 1.0: Platform Detection
| Platform | Primary Indicator | Confidence |
|---|---|---|
| Replit | file | 100% |
| StackBlitz | | 100% |
| CodeSandbox | | 100% |
| Glitch | | 100% |
Output:
Detected Platforms: - replit (confidence: 100%)
Step 1.1: Scan Artifacts
Per detected platform, scan for artifacts using platform-specific detection rules.
Replit Detection Rules:
Files: - Glob: .replit, replit.nix, .replit.nix - Glob: vite-plugin-meta-images.ts (if uses REPLIT_* env vars) Directories: - Glob: .local/, .cache/, .upm/, .breakpoints Package.json: - Grep: "@replit/" in devDependencies Vite Config: - Grep: "@replit/" imports - Grep: "REPL_ID" or "REPLIT_" environment checks Code: - Grep: "// @replit" comments in *.tsx, *.ts, *.jsx, *.js .gitignore: - Grep: "^\.replit$" line
StackBlitz/CodeSandbox/Glitch: MANDATORY READ: Load platform_artifacts.md for detection rules.
Scan Output Format
Scan Results: Platform: Replit Files Found: 2 - .replit (729 bytes) - vite-plugin-meta-images.ts (2333 bytes) Directories Found: 1 - .local/ (6 files, 589KB) Package Dependencies: 3 - @replit/vite-plugin-cartographer - @replit/vite-plugin-dev-banner - @replit/vite-plugin-runtime-error-modal Build Config Modifications: 4 - Import: runtimeErrorOverlay - Import: metaImagesPlugin - Plugin: runtimeErrorOverlay() - Block: REPL_ID conditional (lines 14-24) Code Comments: 10 - button.tsx: 5 comments - badge.tsx: 5 comments Gitignore Entries: 1 - .replit
Phase 2: Preview
Show detailed preview of changes per platform.
Will DELETE files: - .replit (729 bytes) - vite-plugin-meta-images.ts (2333 bytes) Will DELETE directories: - .local/ (6 files, 589KB) Will MODIFY files: - package.json: Remove 3 @replit/* devDependencies - vite.config.ts: Remove 4 imports/plugins/blocks - 2 UI files: Remove 10 @replit comments - .gitignore: Remove ".replit" line Summary: 2 files deleted, 1 directory deleted, 5 files modified
Phase 3: Confirm
Proceed with platform cleanup (Replit)? [Y/n]
Options:
- Y (default): Execute cleanup
- n: Cancel operation
- Custom exclusions: User can specify files to skip
Phase 4: Execute
Platform Router
Based on detected platforms, dispatch to platform-specific cleanup. Execute sequentially if multiple platforms detected.
4.1 Replit Cleanup (Primary)
Delete files/directories:
rm -f .replit replit.nix .replit.nix rm -f vite-plugin-meta-images.ts rm -rf .local/ .cache/ .upm/ .breakpoints
Modify package.json: Remove keys starting with
@replit/ from devDependencies.
Modify vite.config.ts:
- Remove
imports@replit/* - Remove Replit plugins from plugins array
- Remove
conditional blocksREPL_ID
Remove
comments: Grep // @replit
// @replit.*$ in **/*.tsx, **/*.ts, **/*.jsx, **/*.js.
Modify .gitignore: Remove
.replit line.
4.2 StackBlitz Cleanup
rm -f .stackblitzrc rm -rf .turbo/ # Only if not used in production
4.3 CodeSandbox Cleanup
rm -f sandbox.config.json rm -rf .codesandbox/
Remove
"sandbox" field from package.json (if exists).
4.4 Glitch Cleanup
rm -f glitch.json .glitch-assets rm -rf .glitch/ # .data/ - ASK USER before deleting (may contain important data)
Remove Glitch env var checks (
PROJECT_DOMAIN, ASSETS_URL) from server code.
Phase 5: Verify & Report
Cleanup Complete! Platforms Cleaned: Replit Deleted: - .replit - vite-plugin-meta-images.ts - .local/ (6 files) Modified: - package.json (removed 3 dependencies) - vite.config.ts (removed 4 imports/plugins) - button.tsx (removed 5 comments) - badge.tsx (removed 5 comments) - .gitignore (removed 1 line) Next Steps: 1. Run `npm install` to update package-lock.json 2. Run `npm run build` to verify build works 3. Commit: git add . && git commit -m "chore: remove platform artifacts"
Edge Cases
| Case | Handling |
|---|---|
| No platform artifacts found | Report "Project is clean" and exit |
| Multiple platforms detected | Clean each sequentially, separate reports |
| Project uses Webpack (not Vite) | Search instead |
| No package.json | Skip NPM cleanup phase |
directory (Glitch) | Ask user before deleting (may contain data) |
Error Handling
| Error | Action |
|---|---|
| Permission denied | Log error, suggest or admin rights |
| File in use | Retry after delay, then warn user |
| JSON parse error | Log error, suggest manual fix |
| Build config syntax error | Log error, suggest manual fix |
Integration
With ln-720-structure-migrator
Called conditionally in TRANSFORM mode:
ln-720-structure-migrator: Phase 1: Detect project type + platform Phase 2: Clean artifacts (ln-724-artifact-cleaner) # CONDITIONAL Condition: Platform detected (Replit/StackBlitz/CodeSandbox/Glitch) Skipped if: CREATE mode OR no platform markers Phase 3: Restructure frontend (ln-721) Phase 4: Generate backend (ln-722) Phase 5: Generate seed data (ln-723)
Standalone Usage
User: Clean my project from platform artifacts Claude: Invokes ln-724-artifact-cleaner
Critical Rules
- Conditional Invocation: Only run when platform artifacts detected, SKIP in CREATE mode
- User Confirmation: Always preview and confirm before deleting
- No Data Loss: Ask user before deleting directories that may contain user data (.data/)
- Build Verification: Recommend
after cleanupnpm run build - Idempotent: Re-running on clean project reports "no artifacts found"
References
- platform_artifacts.md - Per-platform artifact catalog
Definition of Done
- At least one platform detected (Replit/StackBlitz/CodeSandbox/Glitch)
- All platform artifacts scanned and previewed to user
- User confirmation received before any deletions
- Platform files, directories, dependencies, build config, and comments cleaned
- .gitignore entries for platform files removed
- Cleanup report generated with deleted/modified file counts
Version: 2.0.0 Last Updated: 2026-02-07