[Feature]: Add `specify init --dry-run` preview
- Ngôn ngữ chính
- Python
- Star
- 137k
- Fork
- 12.3k
- Merge trung bình
- 2 ngày 12 giờ
- Pull request đã merge (30 ngày)
- 159
Mô tả
## 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.
Hướng dẫn đóng góp
Hướng nghiên cứu
Bắt đầu từ lệnh `specify init` hiện có và lần theo đường đi phân giải và lập kế hoạch của lệnh, vì issue không nêu tệp hoặc test nào. So sánh việc lập kế hoạch trong dry-run với một lần khởi tạo thực tế, sau đó bổ sung phạm vi kiểm thử hồi quy cho đầu ra dễ đọc đối với con người và đầu ra JSON, bao gồm một assertion xác nhận không có thao tác ghi nào; hoàn tất khi tất cả các nguồn artifact được liệt kê và các kết quả mở rộng URL đều được thể hiện mà không có thay đổi nào trên hệ thống tệp.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- python
- Lĩnh vực
- cli
- Loại issue
- Tính năng
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức độ hoạt động
- Sôi nổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 45/100