github / github/spec-kit

[Bug]: /speckit-converge is not idempotent — re-runs append duplicate remediation tasks

Aperta
#4,269 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Python
Stelle
137k
Fork
12.3k
Merge medio
2g 12h
PR unite (30g)
159

Descrizione

## 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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Ambito
developer-experience, tooling
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.