mcpField
C
Cleaning Up Research Sessions

Cleaning Up Research Sessions

github.com/kthorn生产力13157 次安装53 周前更新
代码仓库

关于 Cleaning Up Research Sessions

Cleaning Up Research Sessions 是一项用于整理研究会话文件夹的技能,适合研究工作完成并准备归档或分享时使用。它先列出可清理内容并要求确认,同时保护论文、摘要和方法记录等重要文件。

主要功能

  1. 01区分受保护文件与清理候选项
  2. 02清理前展示计划并要求确认
  3. 03优先将文件移至回收站
  4. 04清理后验证关键文件和 JSON
  5. 05保留辅助脚本以支持复现

适用场景

  1. 01清理已完成研究会话的临时文件
  2. 02归档或分享前整理研究文件夹
  3. 03确认清理不会移除核心研究资料

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/kthorn/research-superpower --skill cleaning-up-research-sessions

安装后在 Claude Code 中输入/cleaning-up-research-sessions确认已加载。

详细介绍

清理研究会话

概述

删除研究工作流中创建的中间文件,同时保留所有重要数据。

核心原则: 谨慎清理,并征求用户确认。绝不删除任何重要内容。

适用场景

在以下情况下使用此技能:

  • 研究会话已完成并整理汇总
  • 准备归档或分享研究会话文件夹
  • 研究文件夹中积累了临时文件或中间文件
  • 用户明确要求清理

不适用场景:

  • 研究仍在进行中
  • 用户尚未检查最终输出
  • 不确定哪些文件可以安全删除

始终保留的文件

绝不删除以下文件(受保护列表):

核心输出:

  • SUMMARY.md - 包含方法论的扩展研究发现
  • relevant-papers.json - 筛选出的相关论文
  • papers-reviewed.json - 完整的筛选历史
  • papers/ 目录 - 所有 PDF 和补充文件
  • citations/citation-graph.json - 引用关系

方法论文档:

  • screening-criteria.json - 评分标准定义(如果存在)
  • test-set.json - 用于验证评分标准的论文(如果存在)
  • abstracts-cache.json - 用于重新筛选的缓存摘要(如果存在)
  • rubric-changelog.md - 评分标准版本历史(如果存在)

辅助文档(如果存在):

  • README.md - 项目概述
  • TOP_PRIORITY_PAPERS.md - 精选优先级列表
  • evaluated-papers.json - 丰富的结构化数据

项目配置:

  • .claude/ 目录 - 权限和设置
  • 已创建的 *.py 辅助脚本 - 为确保可复现性而保留

可以清理的文件

可考虑删除的文件(需确认):

中间搜索结果:

  • initial-search-results.json - 筛选前的原始 PubMed 结果
    • 可以安全删除:数据已包含在 papers-reviewed.json 中
    • 保留理由:可查看原始搜索结果,确保可复现性

临时文件:

  • *.tmp 文件
  • *.swp 文件(vim 交换文件)
  • .DS_Store(macOS)
  • __pycache__/(Python 缓存)
  • *.pyc(Python 编译文件)

日志文件:

  • *.log 文件
  • debug-*.txt 文件

清理工作流

步骤 1:分析研究会话
cd research-sessions/YYYY-MM-DD-description/

# List all files with sizes
find . -type f -exec ls -lh {} \; | awk '{print $5, $9}' | sort -rh

按类别识别文件:

  • 核心输出(必须保留)
  • 方法论文档(应当保留)
  • 中间文件(可考虑清理)
  • 临时文件(可以安全删除)
步骤 2:向用户展示清理计划

展示将要删除的内容:

🧹 Cleanup Analysis for: research-sessions/2025-10-11-btk-selectivity/

Files to KEEP (protected):
  ✅ SUMMARY.md (45 KB)
  ✅ relevant-papers.json (12 KB)
  ✅ papers-reviewed.json (28 KB)
  ✅ papers/ (14 PDFs, 32 MB)
  ✅ citations/citation-graph.json (5 KB)
  ✅ screening-criteria.json (2 KB)
  ✅ abstracts-cache.json (156 KB)

Files that CAN be removed (intermediate):
  🗑️  initial-search-results.json (8 KB) - Raw PubMed results
  🗑️  .DS_Store (6 KB) - macOS metadata

Total space to recover: 14 KB

Proceed with cleanup? (y/n/review)

选项:

  • y - 删除中间文件
  • n - 取消清理,保留所有文件
  • review - 在决定前展示每个文件的内容
步骤 3:确认删除

删除任何文件前:

  1. 确认文件不在受保护列表中
  2. 检查 SUMMARY.md 是否引用了该文件
  3. 再次征求用户确认

确认示例:

About to delete:
- initial-search-results.json (8 KB)

This file contains raw PubMed search results. The data is preserved in
papers-reviewed.json, so this is safe to delete.

Confirm deletion? (y/n)
步骤 4:执行清理

删除已确认的文件:

# Move to trash instead of rm (safer)
# On macOS:
mv initial-search-results.json ~/.Trash/

# On Linux:
mv initial-search-results.json ~/.local/share/Trash/files/

# Or use rm if user confirms
rm initial-search-results.json

报告结果:

✅ Cleanup complete!

Removed:
- initial-search-results.json (8 KB)
- .DS_Store (6 KB)

Space recovered: 14 KB

Protected files preserved:
- All 8 core files kept
- All 14 PDFs kept
- All methodology documentation kept
步骤 5:验证完整性

清理后,验证关键文件:

# Check core files exist
test -f SUMMARY.md && echo "✓ SUMMARY.md"
test -f relevant-papers.json && echo "✓ relevant-papers.json"
test -f papers-reviewed.json && echo "✓ papers-reviewed.json"
test -d papers && echo "✓ papers/ directory"

# Verify JSON files are valid
jq empty relevant-papers.json && echo "✓ relevant-papers.json valid JSON"
jq empty papers-reviewed.json && echo "✓ papers-reviewed.json valid JSON"

向用户报告:

✅ Integrity check passed
   - All core files present
   - All JSON files valid
   - All PDFs intact

特殊情况

情况 1:较大的 abstracts-cache.json

如果 abstracts-cache.json 非常大(>100 MB):

⚠️  abstracts-cache.json is 256 MB

This file enables re-screening if you update the rubric. Options:
1. Keep (recommended if you might refine rubric)
2. Compress (gzip to ~50 MB, can decompress later)
3. Delete (only if research is final and won't be updated)

Choice? (1/2/3)

如果用户选择压缩:

gzip abstracts-cache.json
# Creates abstracts-cache.json.gz

echo "Compressed abstracts-cache.json to $(du -h abstracts-cache.json.gz | cut -f1)"
情况 2:辅助脚本

如果用户在研究期间创建了辅助脚本:

📝 Found helper scripts:
   - screen_papers.py (created for batch screening)
   - deep_dive_papers.py (created for data extraction)

These scripts document your methodology. Recommendations:
- Keep for reproducibility
- Add comments if not already documented
- Reference in SUMMARY.md under "Reproducibility" section

Keep scripts? (y/n)
情况 3:多个研究会话

如果要清理多个会话:

# Find all research sessions
find research-sessions/ -maxdepth 1 -type d

# For each session:
for session in research-sessions/*/; do
    echo "Analyzing: $session"
    # Run cleanup analysis
done

询问用户:

Found 5 completed research sessions.

Clean up all sessions? (y/n/select)
- y: Analyze and clean all sessions
- n: Cancel
- select: Choose which sessions to clean

安全机制

受保护文件列表

维护一份硬编码的模式列表,绝不删除匹配项:

PROTECTED_PATTERNS = [
    'SUMMARY.md',
    'relevant-papers.json',
    'papers-reviewed.json',
    'papers/*.pdf',
    'papers/*.zip',
    'citations/citation-graph.json',
    'screening-criteria.json',
    'test-set.json',
    'abstracts-cache.json',
    'rubric-changelog.md',
    'README.md',
    'TOP_PRIORITY_PAPERS.md',
    'evaluated-papers.json',
    '*.py',  # Helper scripts
    '.claude/*',  # Project settings
]

删除任何文件前:

def is_protected(filepath):
    """Check if file matches any protected pattern"""
    for pattern in PROTECTED_PATTERNS:
        if fnmatch(filepath, pattern):
            return True
    return False

# Never delete protected files
if is_protected(file_to_delete):
    print(f"⚠️  ERROR: {file_to_delete} is protected and cannot be deleted")
    return
空运行模式

始终先展示将要删除的内容,再执行删除:

# Dry run (show only, don't delete)
echo "DRY RUN - No files will be deleted"

for file in $candidate_files; do
    if is_safe_to_delete "$file"; then
        echo "Would delete: $file ($(du -h $file | cut -f1))"
    fi
done

echo ""
echo "Proceed with actual deletion? (y/n)"

与其他技能集成

完成 answering-research-questions 工作流后:

  1. 完成阶段 8(整理汇总)
  2. 用户检查 SUMMARY.md 和 relevant-papers.json
  3. 可选: 运行 cleaning-up-research-sessions
  4. 归档或分享研究文件夹

添加到 answering-research-questions 的阶段 8:

### Optional: Cleanup

After reviewing outputs, optionally clean up intermediate files:

"Research session is complete. Would you like me to clean up intermediate files?
I'll show you what will be deleted before removing anything."

If yes: Use `cleaning-up-research-sessions` skill

常见错误

**删除 papers-reviewed.json:**这是用于去重的数据库,绝对不要删除 → 始终通过硬编码列表保护 **删除 abstracts-cache.json:**重新筛选时需要用到 → 先询问用户,默认保留 **删除辅助脚本:**对可复现性很重要 → 默认保留,询问用户是否要移除 **不向用户展示将要删除的内容:**用户需要查看计划 → 始终先展示试运行结果 **未经确认就删除:**风险太高 → 始终征求最终确认 **清理后未验证:**文件可能已损坏 → 删除后运行完整性检查

快速参考

操作命令
列出所有文件及其大小find . -type f -exec ls -lh {} \; | sort -rh
检查 JSON 是否有效jq empty file.json
移至废纸篓(macOS)mv file ~/.Trash/
移至废纸篓(Linux)mv file ~/.local/share/Trash/files/
压缩大文件gzip file
计算文件夹大小du -sh .

成功标准

满足以下条件即表示清理成功:

  • 所有受保护文件仍然存在且有效
  • 仅删除已确认的中间文件
  • 用户知道删除了什么以及原因
  • 已报告释放的空间
  • 完整性检查已通过
  • 研究会话仍可正常运行

示例会话

User: "Can you clean up the research session folder?"

Agent: "I'll analyze the research session and show you what can be safely cleaned up."

[Analyzes folder]

Agent: "🧹 Cleanup Analysis for: research-sessions/2025-10-11-btk-selectivity/

Files to KEEP (protected):
  ✅ SUMMARY.md (45 KB) - Final findings
  ✅ relevant-papers.json (12 KB) - Filtered results
  ✅ papers-reviewed.json (28 KB) - Complete history
  ✅ papers/ (14 PDFs, 32 MB) - Downloaded papers
  ✅ citations/citation-graph.json (5 KB) - Citation network
  ✅ screening-criteria.json (2 KB) - Rubric definition
  ✅ abstracts-cache.json (156 KB) - Cached abstracts

Files that CAN be removed:
  🗑️  initial-search-results.json (8 KB) - Raw PubMed results
     → Data is preserved in papers-reviewed.json
  🗑️  .DS_Store (6 KB) - macOS metadata
     → Not needed

Total space to recover: 14 KB

Proceed with cleanup? (y/n/review)"

User: "y"

Agent: "Final confirmation - About to delete:
- initial-search-results.json (8 KB)
- .DS_Store (6 KB)

All protected files will be preserved. Confirm? (y/n)"

User: "y"

Agent: [Deletes files]

"✅ Cleanup complete!

Removed:
- initial-search-results.json (8 KB)
- .DS_Store (6 KB)

Space recovered: 14 KB

Running integrity check...
✅ All core files intact
✅ All JSON files valid
✅ All 14 PDFs present

Research session is ready for archiving or sharing."

后续步骤

清理后:

  • 研究文件夹已整理干净,可供归档
  • 与协作者共享文件夹
  • 移至长期存储
  • 如有需要,继续后续研究

评论

支持 Markdown