github / github/spec-kit

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

Ouverte
#4,269 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Python
Étoiles
137k
Forks
12.3k
Merge moyen
2 j 12 h
PR mergées (30 j)
159

Description

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

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Domaine
developer-experience, tooling
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.