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:
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.
Context
This issue supersedes #1035, which requested
specify init . --dry-runand was automatically closed for inactivity rather than resolved.specify initcan 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:
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:
create,overwrite,preserve,skip, orconflict;Provide a human-readable summary and
--jsonoutput for CI/tooling.Acceptance criteria
specify init --dry-runnever creates, modifies, deletes, or registers project files.specify initinvocation with the same options.--force.Non-goals
specify workflow run --dry-runbehavior.