[Bug]: create-new-feature.sh reserves feature numbers non-atomically — concurrent invocations can share/overwrite a spec directory
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 72/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- bash
- Área
- tooling
Línea de trabajo
Comienza con .specify/scripts/bash/create-new-feature.sh y sigue cómo analiza specs/, selecciona un número, crea el directorio y escribe spec.md. Compara el flujo con la sección “Create the directory and spec file” de .claude/skills/speckit-specify/SKILL.md. Se considera terminado cuando las invocaciones concurrentes reservan directorios diferentes y ninguna sobrescribe la spec.md de otra invocación.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Version
spec-kit v1.0.1 (.specify/scripts/bash/create-new-feature.sh; the flow is also described in .claude/skills/speckit-specify/SKILL.md, "Create the directory and spec file")
Description
Sequential numbering scans existing specs/ directories, picks max+1, checks for existence, then uses mkdir -p and writes spec.md. Nothing in that sequence is atomic: two concurrent invocations (parallel agents on worktrees sharing a specs dir, or two terminals) can both scan, both select the same number, both pass the existence check (mkdir -p succeeds either way), and both write spec.md into the same directory — the second silently overwrites the first's starting specification.
This matters more now that multi-agent setups routinely run more than one spec-kit session against the same repository.
Expected behavior
Reserve the directory with plain mkdir (no -p) so creation is exclusive; on EEXIST, discard the selected number, rescan, and retry before writing spec.md. A lock file would also work.
Related
Prior sequential-numbering issues (#935, #975, #1332) covered scan-logic bugs in single-invocation scenarios; this one is specifically about the missing atomicity under concurrency.
- Lenguaje dominante
- Python
- Estrellas
- 138k
- Forks
- 12.4k
- Merge medio
- 3 d 6 h
- PR fusionados (30 d)
- 145
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de github/spec-kit
-
triage-can-wait
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
-
enhancement needs-triage triage-can-wait
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
bundle-submission needs-info triage-can-wait validation-failed
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
author-awaiting enhancement needs-triage preset-submission triage-can-wait validation-failed
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
author-awaiting enhancement extension-submission needs-triage triage-can-wait validation-failed
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Todos los issues de github/spec-kit
Issues similares
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abiertoarea: ci bug perceived difficulty: 3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/clickhouse-connect#1057 ·