[Bug]: /speckit-converge is not idempotent — re-runs append duplicate remediation tasks
- 主要语言
- Python
- 星标
- 137k
- 派生
- 12.3k
- 平均合并
- 2 天 12 小时
- 30 天内合并 PR
- 159
描述
## Version
spec-kit v1.0.1 (`.claude/skills/speckit-converge/SKILL.md`)
## Description
`/speckit-converge` only checks that `tasks.md` exists before assessing the codebase and appending remediation tasks. It keeps no persisted evidence that `/speckit-implement` actually ran against the *current* task list, and it does not map its findings onto existing **unchecked** tasks before appending.
Two consequences:
1. **Invoked early** (before implement has run, or after a partial implementation), it appends remediation tasks for work that is already represented by existing unchecked tasks — now under new IDs, splitting traceability for the same work across two task entries.
2. **Invoked twice** (e.g. converge → partial fix → converge again), gaps found both times are appended both times.
## Expected behavior
- Converge verifies prerequisite state (an implementation checkpoint, or at minimum warns loudly when `tasks.md` contains unchecked tasks that overlap its findings).
- Before appending, each finding is compared against existing unchecked tasks; covered work is reused/updated rather than duplicated, and only genuinely new gaps get new IDs.
## Context
Found while upgrading a template fleet from 0.5.0 to v1.0.1 and reviewing the newly vendored command. Related in spirit to the duplicate-detection work in #2968, but on the tasks.md side rather than GitHub issues.
贡献指南
调研方向
Start by reading .claude/skills/speckit-converge/SKILL.md and inspect how it reads tasks.md, handles unchecked tasks, and appends remediation tasks. Compare that flow with /speckit-implement and the duplicate-detection work in #2968, then reproduce converge twice. Done means prerequisite state is checked or warned about, existing unchecked work is reused or updated, and only new gaps receive new IDs.
由索引模型根据 Issue 内容生成。
评估
- 领域
- developer-experience, tooling
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 48/100