关于 ln-724-artifact-cleaner
ln-724-artifact-cleaner 是用于清理从在线平台导出项目的技能,面向准备生产部署的项目维护者。它检测 Replit、StackBlitz、CodeSandbox 和 Glitch 的平台文件与依赖,并在执行前预览并要求确认。
主要功能
- 01检测四种平台标记
- 02扫描平台专属文件与依赖
- 03预览拟删除和修改内容
- 04确认后清理并生成报告
- 05保护 Glitch .data/ 数据
适用场景
- 01清理 Replit 导出项目
- 02移除 StackBlitz 或 CodeSandbox 配置
- 03准备 Glitch 项目用于部署
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ levnikolaevich/ claude-code-skills --skill ln-724-artifact-cleaner安装后在 Claude Code 中输入/ln-724-artifact-cleaner确认已加载。
附带文件references/platform_artifacts.md
详细介绍
**路径:**文件路径(
references/、../ln-*)均相对于此技能目录。
ln-724-artifact-cleaner
**类型:**L3 Worker
**类别:**7XX 项目初始化
从在线平台导出的项目中移除平台专属产物,为生产部署做好准备。
概览
| 方面 | 详情 |
|---|---|
| 输入 | 项目目录、平台(自动检测或手动指定) |
| 输出 | 不含平台依赖的干净项目 |
| 平台 | Replit、StackBlitz、CodeSandbox、Glitch |
| 耗时 | 约 2-5 分钟 |
| 调用方式 | 由 ln-720 调用(TRANSFORM 模式,有条件触发),或由用户主动调用 |
调用条件:
- 仅限 TRANSFORM 模式(CREATE 模式下跳过)
- 至少检测到一个平台
- 清理前需获得用户确认
平台支持矩阵
| 平台 | 配置文件 | 目录 | NPM 包 | 构建配置 | 注释 |
|---|---|---|---|---|---|
| Replit | .replit、replit.nix | .local/、.cache/、.upm/ | @replit/* | REPL_ID 检查 | // @replit |
| StackBlitz | .stackblitzrc | .turbo/ | -- | 端口覆盖 | -- |
| CodeSandbox | sandbox.config.json | .codesandbox/ | -- | CSB 环境检查 | -- |
| Glitch | glitch.json、.glitch-assets | .glitch/、.data/ | -- | Glitch 环境变量 | -- |
工作流
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
阶段 1:检测与扫描
步骤 1.0:平台检测
| 平台 | 主要标识 | 置信度 |
|---|---|---|
| Replit | .replit 文件 | 100% |
| StackBlitz | .stackblitzrc | 100% |
| CodeSandbox | sandbox.config.json | 100% |
| Glitch | glitch.json | 100% |
输出:
Detected Platforms:
- replit (confidence: 100%)
步骤 1.1:扫描产物
针对检测到的每个平台,根据该平台专属的检测规则扫描产物。
Replit 检测规则:
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:****必须读取:**加载 platform_artifacts.md 以获取检测规则。
扫描输出格式
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
阶段 2:预览
按平台显示变更的详细预览。
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
阶段 3:确认
Proceed with platform cleanup (Replit)? [Y/n]
选项:
- **Y(默认):**执行清理
- **n:**取消操作
- **自定义排除项:**用户可以指定要跳过的文件
阶段 4:执行
平台路由器
根据检测到的平台,分派至对应的平台专属清理流程。如果检测到多个平台,则按顺序执行。
4.1 Replit 清理(主要)
删除文件/目录:
rm -f .replit replit.nix .replit.nix
rm -f vite-plugin-meta-images.ts
rm -rf .local/ .cache/ .upm/ .breakpoints
**修改 package.json:**从 devDependencies 中移除以 @replit/ 开头的键。
修改 vite.config.ts:
- 移除
@replit/*导入 - 从 plugins 数组中移除 Replit 插件
- 移除
REPL_ID条件代码块
**移除 // @replit 注释:**在 **/*.tsx、**/*.ts、**/*.jsx、**/*.js 中搜索 // @replit.*$。
**修改 .gitignore:**移除 .replit 行。
4.2 StackBlitz 清理
rm -f .stackblitzrc
rm -rf .turbo/ # Only if not used in production
4.3 CodeSandbox 清理
rm -f sandbox.config.json
rm -rf .codesandbox/
如果 package.json 中存在 "sandbox" 字段,则将其移除。
4.4 Glitch 清理
rm -f glitch.json .glitch-assets
rm -rf .glitch/
# .data/ - ASK USER before deleting (may contain important data)
从服务器代码中移除 Glitch 环境变量检查(PROJECT_DOMAIN、ASSETS_URL)。
阶段 5:验证与报告
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"
边缘情况
| 情况 | 处理方式 |
|---|---|
| 未发现平台产物 | 报告“项目已清理”并退出 |
| 检测到多个平台 | 依次清理各平台,并分别报告 |
| 项目使用 Webpack(而非 Vite) | 改为搜索 webpack.config.* |
| 没有 package.json | 跳过 NPM 清理阶段 |
.data/ 目录(Glitch) | 删除前询问用户(其中可能包含数据) |
错误处理
| 错误 | 操作 |
|---|---|
| 权限被拒绝 | 记录错误,建议使用 chmod 或管理员权限 |
| 文件正在使用 | 延迟后重试,然后提醒用户 |
| JSON 解析错误 | 记录错误,建议手动修复 |
| 构建配置语法错误 | 记录错误,建议手动修复 |
集成
与 ln-720-structure-migrator 集成
在 TRANSFORM 模式下有条件地调用:
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)
独立使用
User: Clean my project from platform artifacts
Claude: Invokes ln-724-artifact-cleaner
关键规则
- 有条件地调用: 仅在检测到平台产物时运行,CREATE 模式下跳过
- 用户确认: 删除前始终预览并确认
- 不丢失数据: 删除可能包含用户数据的目录(.data/)前询问用户
- 构建验证: 建议清理后运行
npm run build - 幂等: 在干净的项目上重新运行时报告“未发现产物”
参考资料
- platform_artifacts.md - 各平台产物目录
完成定义
- 至少检测到一个平台(Replit/StackBlitz/CodeSandbox/Glitch)
- 已扫描所有平台产物并向用户预览
- 删除任何内容前已获得用户确认
- 已清理平台文件、目录、依赖项、构建配置和注释
- 已移除 .gitignore 中的平台文件条目
- 已生成清理报告,其中包含已删除/修改的文件数量
版本: 2.0.0 最后更新: 2026-02-07