[Feature]: Add `specify init --dry-run` preview

Abierto
#4,311 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python
Área
cli

Línea de trabajo

Comienza con el comando existente specify init y sigue su ruta de resolución y planificación, ya que el issue no menciona archivos ni tests. Compara la planificación en dry-run con una inicialización real y, después, añade cobertura de regresión para la salida legible para humanos y la salida JSON, incluida una aserción de que no se realizan escrituras; se considera completado cuando todas las fuentes de artefactos enumeradas y los resultados de extensión de URL están representados sin mutaciones del sistema de archivos.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Context

This issue supersedes #1035, which requested specify init . --dry-run and was automatically closed for inactivity rather than resolved.

specify init can merge into an existing directory with --force, potentially changing generated project artifacts. Users need a reliable way to inspect the exact initialization plan before allowing writes.

Proposal

Add:

specify init --dry-run

The dry-run must use the same resolution and planning path as a real initialization, but perform no project filesystem mutations. It should preview the outcome for the requested directory and the selected integration, script type, preset, and extensions.

Expected output

For every planned artifact, report:

  • action: create, overwrite, preserve, skip, or conflict;
  • project-relative path;
  • provenance: core, integration, preset, workflow, or extension.

Provide a human-readable summary and --json output for CI/tooling.

Acceptance criteria

  • specify init --dry-run never creates, modifies, deletes, or registers project files.
  • Its plan matches a subsequent real specify init invocation with the same options.
  • Existing-directory conflicts are reported without needing --force.
  • The preview accounts for core assets, integrations, presets, bundled/local extensions, and the bundled workflow.
  • URL extensions are not installed during preview; any unresolved/download-required result is reported explicitly.
  • Human-readable and JSON output have regression coverage, including a no-write assertion.

Non-goals

  • Running coding-agent commands or workflows.
  • Replacing the existing specify workflow run --dry-run behavior.
Lenguaje dominante
Python
Estrellas
138k
Forks
12.4k
Merge medio
3 d 6 h
PR fusionados (30 d)
136

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de github/spec-kit

Todos los issues de github/spec-kit

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.