Parent issue
This issue is part of:
Support safe multi-module application from the Seed4J CLI
Dependencies
This issue should be implemented only after completing:
- Add a read-only plan for applying multiple modules
- Define transaction, commit, and partial-failure semantics for multi-module application
Goal
Execute a requested set of modules only after the complete set passes preflight validation.
Execution must reuse the same resolved plan shown by --plan, preserve deterministic ordering, and follow the previously defined commit and partial-failure contract.
Proposed command
seed4j apply-set init maven-java prettier \
--project-path .
Properties should use the same CLI options accepted by plan mode:
seed4j apply-set init maven-java \
--project-path . \
--project-name "Sample application" \
--base-name sampleApplication \
--node-package-manager npm \
--package-name com.mycompany.sample
Required behavior
Before applying the first module, the command must:
- resolve all requested module slugs;
- resolve the deterministic execution order;
- validate module dependencies;
- validate feature dependencies;
- resolve the complete property set;
- reject missing required properties;
- reject any other predictable invalid state;
- build an immutable or otherwise stable execution plan.
The command must then execute the modules from that validated plan.
It must not independently resolve a different order, property set, or dependency result after preflight validation.
Dependency behavior
A dependency may be satisfied by:
- project history; or
- an explicitly selected module that appears earlier in the resolved execution order.
A feature dependency must continue to require an explicit provider.
The command must not silently add missing modules or automatically select a feature provider.
Execution reporting
The output should make progress visible for each module.
Example structure:
Applying module set:
[1/3] init
Applied successfully
[2/3] maven-java
Applied successfully
[3/3] prettier
Applied successfully
Module set applied successfully.
When execution fails, the output must distinguish:
- modules successfully applied;
- the module that failed;
- modules skipped because of the failure.
The exact behavior for changes, commits, history, and events must follow the decision made in the transaction and partial-failure issue.
Acceptance criteria
Out of scope
- Applying a named preset.
- User-defined module sets.
- Parallel module execution.
- Automatically resolving missing dependencies.
Parent issue
This issue is part of:
Dependencies
This issue should be implemented only after completing:
Goal
Execute a requested set of modules only after the complete set passes preflight validation.
Execution must reuse the same resolved plan shown by
--plan, preserve deterministic ordering, and follow the previously defined commit and partial-failure contract.Proposed command
seed4j apply-set init maven-java prettier \ --project-path .Properties should use the same CLI options accepted by plan mode:
Required behavior
Before applying the first module, the command must:
The command must then execute the modules from that validated plan.
It must not independently resolve a different order, property set, or dependency result after preflight validation.
Dependency behavior
A dependency may be satisfied by:
A feature dependency must continue to require an explicit provider.
The command must not silently add missing modules or automatically select a feature provider.
Execution reporting
The output should make progress visible for each module.
Example structure:
When execution fails, the output must distinguish:
The exact behavior for changes, commits, history, and events must follow the decision made in the transaction and partial-failure issue.
Acceptance criteria
applybehavior remains unchanged.Out of scope