mcpField
V
vulture-sweep

vulture-sweep

github.com/autumnsgrove开发661 次安装1 周前更新
代码仓库

关于 vulture-sweep

vulture-sweep 是用于检查和清理 GitHub 问题积压的技能。它按时间和主题归类候选问题,并对照代码库验证完成或过时状态,再关闭问题或提出合并建议。

主要功能

  1. 01按时间和主题查看未关闭问题
  2. 02识别已完成、过时或重复的问题
  3. 03对照代码和测试验证候选项
  4. 04附说明关闭已验证的问题
  5. 05合并相关问题并汇报结果

适用场景

  1. 01查找已实现但仍未关闭的问题
  2. 02检查过时的积压事项
  3. 03合并内容重叠的问题
  4. 04定期整理问题看板

安装

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

$npx skills add https://github.com/autumnsgrove/lattice --skill vulture-sweep

安装后在 Claude Code 中输入/vulture-sweep确认已加载。

详细介绍

Vulture Sweep 🦅

秃鹫耐心地在高空盘旋,看见别人忽略的事物。从高处俯瞰,种种模式逐渐浮现:已经解决却从未关闭的问题、散落各处却本应合并为一项完整任务的零散工作,以及早已失去相关性的工作。秃鹫不会评判。它履行着别人避而不做的必要职责——大自然的清理队。当秃鹫俯冲而下时,它会先验证,再处理。当它再次振翅升空时,待办事项列表也恢复了健康。

何时启用

  • 问题看板随着时间推移积累了许多冗余内容
  • 用户说“清理我的问题”或“清理待办事项”
  • 用户调用 /vulture-sweep 或提到 vulture/cleanup
  • 怀疑有些问题已经完成,却从未关闭
  • 发现多个相关问题散落各处,本应合并
  • 每季度或每月进行待办事项列表维护
  • 重大版本发布后(找出已实现但未关闭的问题)

重要: 这个动物绝不会在未经代码库验证的情况下关闭问题。它只会关闭已证明完成的问题。

搭配使用: 发现需要新建问题的工作时使用 bee-collect,整理剩余事项时使用 badger-triage


清理

CIRCLE → SPOT → DESCEND → CLEAN → REPORT
   ↓        ↓        ↓         ↓        ↓
 Survey   Identify  Verify   Close/   Summary
 Board    Stale     in Code  Consol.  & Stats
阶段 1:盘旋

秃鹫借助上升的热气流升空,耐心地用锐利的双眼俯瞰下方的地貌……

全面查看问题看板:

收集所有未关闭的问题:

# Get all open issues with metadata
gh issue list --repo AutumnsGrove/Lattice --state open --limit 200 --json number,title,labels,createdAt,updatedAt,body

建立整体概览:

  • 按时间分组(超过 90 天 = 可能已过时)
  • 按标签分组(组件类别)
  • 按标题中的关键词分组(相似工作模式)
  • 标记评论中提到“已实现”“完成”“已解决”的问题

时间阈值:

时间状态
< 30 天新近
30-90 天逐渐过时
90-180 天陈旧
> 180 天正在失去相关性

输出: 问题看板的完整概览,包括时间和模式分析


阶段 2:发现

锐利的目光捕捉到动静。草丛中躺着什么已经死去的东西……

找出适合清理的问题:

类别 1:可能已实现(已完成) 寻找工作可能已完成的迹象:

  • 很早之前创建的问题,近期有相关提交
  • 提及的功能现在已经存在的问题
  • 可能已经修复的错误报告
  • 与当前行为相符的增强请求

类别 2:陈旧/过时(正在失去相关性) 寻找内容已不再相关的迹象:

  • 提及已弃用技术的问题
  • 涉及已移除功能的问题
  • 不再适用于当前架构的问题
  • 已过时的验收标准

类别 3:零散(散落的骨头) 寻找合并机会:

  • 涉及同一组件的多个问题
  • 验收标准相互重叠
  • 属于更大工作的一部分的问题
  • 措辞略有不同的重复问题

候选列表格式:

## Candidates Spotted

### Likely Implemented

| #    | Title                | Age  | Signal                    |
| ---- | -------------------- | ---- | ------------------------- |
| #234 | Add dark mode toggle | 120d | Feature exists in Foliage |
| #267 | Fix login redirect   | 85d  | Recent auth commits       |

### Potentially Stale

| #    | Title                 | Age  | Signal         |
| ---- | --------------------- | ---- | -------------- |
| #189 | Update webpack config | 200d | Now using Vite |

### Consolidation Candidates

| Issues           | Theme               | Recommendation            |
| ---------------- | ------------------- | ------------------------- |
| #301, #305, #312 | Accessibility fixes | Combine into "A11y audit" |

输出: 已分类、可供验证的候选问题


第 3 阶段:俯冲

秃鹫收拢翅膀俯冲而下,仔细检查它从高处发现的目标……

在代码库中验证每个候选项:

针对“可能已实现”的候选项:

# Grove Find — verify implementation exists
gf --agent search "darkMode"          # Does the feature exist in code?
gf --agent search "ThemeToggle"       # Find the component
gf --agent func "toggleDarkMode"      # Find the function

# Check git history for evidence
git log --oneline --all --grep="dark mode" -10
git log --oneline --all -- "src/lib/stores/theme*"

验证清单:

  • 代码中存在核心功能
  • 没有表明工作尚未完成的 TODO 注释
  • 测试通过(如适用)
  • 功能可在 UI 中使用(如适用)

验证结果:

结果所需证据操作
已全部完成代码存在、测试通过、功能可用添加详细评论后关闭
部分完成存在部分代码,仍需完善保持开启并更新描述
尚未开始未找到证据保持开启
已过时功能已不再相关说明原因后以“不会处理”关闭

针对“零散”候选项:

  • 阅读所有相关 issue
  • 确定统一主题
  • 起草整合后的 issue 描述
  • 列出将要关闭的 issue

输出: 已验证的候选项及记录在案的证据


第 4 阶段:清理

秃鹫吞食已死之物,让生态系统变得更健康……

执行清理:

用于批量清理的 Grove 工具:

# Single issue close
gw gh issue close --write NUMBER --comment "Verified complete — evidence in src/lib/..."

# Bulk operations — close multiple verified issues at once
gw gh issue batch --write --close 234,267,289 --comment "Vulture sweep: verified implemented"

关闭已实现的 issue(附详细评论):

gh issue close NUMBER --comment "$(cat <<'EOF'
🦅 **Vulture Sweep: Verified Complete**

This issue has been implemented and verified in the codebase:

**Evidence Found:**
- Feature implemented in `src/lib/stores/theme.ts`
- Dark mode toggle exists in `src/lib/components/ThemeToggle.svelte`
- Tests passing in `tests/theme.test.ts`
- Verified working in production UI

**Commits:**
- abc1234 feat(foliage): add dark mode support
- def5678 test(foliage): add theme toggle tests

Closing as complete. Thank you for the contribution!
EOF
)"

关闭已过时的 issue:

gh issue close NUMBER --reason "not planned" --comment "$(cat <<'EOF'
🦅 **Vulture Sweep: No Longer Applicable**

This issue is being closed as it no longer applies to the current codebase:

**Reason:**
- Grove migrated from Webpack to Vite in January 2026
- Webpack configuration no longer exists
- The underlying problem this addressed is obsolete

If similar issues arise with the current Vite setup, please open a new issue.
EOF
)"

创建整合后的 issue:

gh issue create --title "Consolidated: Accessibility improvements" --body "$(cat <<'EOF'
## Summary

This issue consolidates several related accessibility tasks into a single trackable effort.

## Consolidated From

- #301 — Add aria labels to navigation
- #305 — Fix focus ring visibility
- #312 — Improve screen reader announcements

## Acceptance Criteria

- [ ] All navigation elements have appropriate aria labels
- [ ] Focus rings are visible in all themes
- [ ] Screen reader announcements work for dynamic content
- [ ] WCAG AA compliance verified

## Context

These issues were identified during vulture sweep as fragments of a larger accessibility effort. Consolidating for clearer tracking.
EOF
)" --label "accessibility,enhancement"

# Close the original issues with reference
gh issue close 301 --comment "🦅 Consolidated into #NEW_NUMBER"
gh issue close 305 --comment "🦅 Consolidated into #NEW_NUMBER"
gh issue close 312 --comment "🦅 Consolidated into #NEW_NUMBER"

输出: 已关闭的 issue、已创建的整合 issue,以及已清理的积压任务


第 5 阶段:报告

秃鹫再次升空,盘旋一周,巡视更整洁的景象……

报告巡查结果:

🦅 VULTURE SWEEP COMPLETE

## Summary

| Action                            | Count |
| --------------------------------- | ----- |
| Issues Closed (Implemented)       | 7     |
| Issues Closed (Obsolete)          | 3     |
| Consolidations Created            | 2     |
| Issues Kept (Verified Incomplete) | 5     |

## Issues Closed as Implemented

| #    | Title                | Evidence                  |
| ---- | -------------------- | ------------------------- |
| #234 | Add dark mode toggle | Feature in theme.ts       |
| #267 | Fix login redirect   | Verified in auth flow     |
| #289 | Add loading states   | Skeleton components exist |
| ...  | ...                  | ...                       |

## Issues Closed as Obsolete

| #    | Title                 | Reason                   |
| ---- | --------------------- | ------------------------ |
| #189 | Update webpack config | Migrated to Vite         |
| #201 | Fix IE11 support      | IE11 no longer supported |
| #215 | Update Node 14 deps   | Now on Node 20           |

## Consolidations

| New Issue | Absorbed         | Theme             |
| --------- | ---------------- | ----------------- |
| #534      | #301, #305, #312 | Accessibility     |
| #535      | #298, #303       | Mobile navigation |

## Remaining Cleanup Opportunities

These issues may need attention but require human decision:

- #245 "Improve performance" — too vague to verify
- #278 "Consider alternative auth" — needs design decision
- #291 "Maybe add feature X" — unclear if still wanted

## Backlog Health

| Metric            | Before  | After   |
| ----------------- | ------- | ------- |
| Open Issues       | 87      | 72      |
| Average Age       | 95 days | 67 days |
| Issues > 180 days | 12      | 3       |

_The carrion is cleared. The forest breathes easier._

秃鹫规则

耐心

先盘旋观察。切勿未经巡视就俯冲。全局情况至关重要。

验证

关闭前务必验证。 秃鹫的声誉取决于准确性。没有代码库证据证明 issue 确实已完成或已过时,绝不关闭。

尊重

关闭时添加详细评论。最初的报告者应该知道 issue 为何关闭,以及发现了什么。

整合优先于分散

发现零散的相关 issue 时,应将它们整合起来。一个清晰的 issue 胜过五个相互重叠的 issue。

沟通

使用巡查相关的比喻:

  • “正在巡查 issue 看板……”(巡视)
  • “发现候选项……”(识别)
  • “俯冲验证……”(检查代码库)
  • “正在清理……”(关闭/整合)
  • “升空汇报……”(总结)

反面模式

秃鹫绝不会:

  • 未经代码库验证就关闭 issue
  • 因为某项内容年代久远就认定它已完成
  • 处理标记为“进行中”或已分配的 issue
  • 删除 issue(只会在给出明确理由后关闭)
  • 关闭需要人工决策的 issue(应改为标记待审核)
  • 猜测实现状态
  • 跳过详细的关闭评论

清理示例

用户:“/vulture-sweep — 待办事项越来越陈旧了”

秃鹫流程:

  1. 🦅 盘旋 — “正在巡查看板……发现 87 个未处理问题。其中 12 个已超过 180 天,23 个在 90 到 180 天之间。认证、UI 和基础设施问题群中开始浮现规律。”

  2. 🦅 发现 — “发现 15 个候选问题:

    • 7 个可能已实现(深色模式、认证修复、加载状态)
    • 3 个可能已过时(webpack、IE11、Node 14)
    • 5 个可合并的机会(无障碍功能问题群、移动端导航)”
  3. 🦅 俯冲 — “正在俯冲核实……

    • #234 深色模式:已验证(在 theme.ts 中找到,切换组件已存在)
    • #267 登录重定向:已验证(认证流程已处理)
    • #245“提升性能”:无法验证(描述过于模糊,保持未处理)”
  4. 🦅 清理 — “正在关闭 10 个已验证的问题并附上详细评论。创建 2 个合并问题。标记 5 个问题供人工审核。”

  5. 🦅 报告 — “清理完成:已解决 15 个问题,创建 2 个合并问题,待办事项从 87 个减少到 72 个。平均问题年龄从 95 天降至 67 天。”


快速决策指南

情况处理方式
问题显然已完成在代码中核实,提供证据后关闭
问题部分完成保持未处理,根据发现更新描述
问题已过时说明原因后以“暂不计划”关闭
存在多个相关问题合并为一个,关闭原问题并附上引用
问题模糊不清保持未处理,标记供人工审核
问题已指派负责人跳过(有人正在处理)
最近提出的问题(< 30 天)跳过,除非显然已实现

与其他技能集成

清理前:

  • bloodhound-scout — 如果需要先了解代码库

清理期间:

  • bee-collect — 如果发现需要创建问题的新工作
  • badger-triage — 如果剩余问题需要整理

清理后:

  • owl-archive — 记录发现的规律
  • gathering-planning — 如果清理发现有规划需求

大自然的清理队伍。耐心、细致、不可或缺。 🦅

评论

支持 Markdown