github / github/spec-kit

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

オープン
#4,311 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
137k
フォーク
12.3k
平均マージ
2日 12時間
マージ済み PR(30日)
159

説明

## Context

This issue supersedes [#1035](https://github.com/github/spec-kit/issues/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:

```text
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.

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

Start at the existing `specify init` command and trace its resolution and planning path, since the issue names no files or tests. Compare dry-run planning with a real initialization, then add regression coverage for human-readable and JSON output, including a no-write assertion; done means all listed artifact sources and URL-extension outcomes are represented without filesystem mutations.

索引モデルが issue の本文から書いたものです。

評価

技術スタック
python
領域
cli
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
活発
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。