临时工作空间管理Skill scratch-workspace

此技能用于管理软件开发中的临时文件和工作空间,通过创建和配置 .claude/.scratch 目录并设置 gitignore,确保临时文件不被提交到版本控制,适用于草稿实现、实验代码、临时测试文件等工作流优化。关键词:临时文件管理、版本控制、gitignore、工作流、代码组织、开发工具。

架构设计 0 次安装 0 次浏览 更新于 3/25/2026

名称: scratch-workspace 用户可调用: false 描述: 在创建临时文件、草稿、实验或任何不应提交到版本控制的内容时使用。确保正确放置在 .claude/.scratch 目录中,并配置 gitignore。 允许的工具:

  • 读取
  • 写入
  • 编辑
  • Bash
  • Glob

临时工作空间管理

此技能涵盖正确使用 .claude/.scratch/ 目录进行临时、探索性和草稿工作。

目的

临时工作空间提供一个被 gitignore 的位置,用于:

  • 草稿实现
  • 实验代码
  • 临时测试文件
  • 规划文档
  • 任何不应提交的工作进行中内容

设置检查清单

在创建临时文件之前:

  1. 确保目录存在

    mkdir -p .claude/.scratch
    
  2. 验证 gitignore

    检查 .gitignore 是否包含:

    .claude/.scratch
    

    如果缺失,添加它:

    echo '.claude/.scratch' >> .gitignore
    

目录结构

按目的组织临时文件:

.claude/
├── .scratch/
│   ├── drafts/           # 工作进行中实现
│   │   └── feature-x.ts
│   ├── experiments/      # 探索性代码
│   │   └── perf-test.js
│   ├── notes/            # 规划和笔记
│   │   └── architecture.md
│   └── temp/             # 真正临时文件
└── settings.json         # Claude 设置(非临时)

最佳实践

  • 创建子目录以组织
  • 使用描述性文件名
  • 工作完成后清理
  • 将最终代码移动到适当的项目位置

不做

  • 在临时文件中放置敏感数据(仍在磁盘上)
  • 使用临时文件存放应提交的文件
  • 无限期保留过时临时文件
  • 将临时文件放在 .claude/.scratch/ 之外

工作流

开始探索性工作

# 创建临时区域
mkdir -p .claude/.scratch/experiments

# 进行实验
# ... 在 .claude/.scratch/experiments/ 中创建文件

提升为真实代码

当临时工作准备就绪时:

  1. 审查并优化代码
  2. 移动到合适的项目位置
  3. 删除临时版本
  4. 提交提升的代码

清理

定期清理临时文件:

# 查看临时文件中的内容
ls -la .claude/.scratch/

# 删除旧实验
rm -rf .claude/.scratch/experiments/old-test/

与其他工具的集成

与 Git

.claude/.scratch 目录被 gitignore,因此:

  • git status 不会显示临时文件
  • git add . 不会暂存临时文件
  • 临时文件不会出现在提交中

与 IDE

大多数 IDE 会在文件树中显示 .claude/.scratch。您可以:

  • 添加到 IDE 的排除模式
  • 保持可见以便轻松访问
  • 使用 IDE 的“标记为排除”功能

常见模式

草稿实现

.claude/.scratch/drafts/
└── new-feature/
    ├── index.ts
    ├── types.ts
    └── test.ts

性能实验

.claude/.scratch/experiments/
└── perf-comparison/
    ├── approach-a.ts
    ├── approach-b.ts
    └── benchmark.ts

架构笔记

.claude/.scratch/notes/
└── refactor-plan.md

故障排除

临时文件出现在 git status 中

# 验证 gitignore 条目
grep -r ".claude/.scratch" .gitignore

# 如果缺失,添加它
echo '.claude/.scratch' >> .gitignore

目录不存在

mkdir -p .claude/.scratch

意外提交了临时文件

# 从跟踪中移除但本地保留
git rm -r --cached .claude/.scratch
git commit -m "chore: 从跟踪中移除临时文件"