Objective
Add selective execution controls to dev-tools:sync so maintainers can run only specific sync phases, skip selected phases, and configure default sync behavior in composer.json.
Current Limitation
dev-tools:sync currently executes every synchronization phase in a fixed sequence. Consumers cannot persist repository-specific defaults such as skipping wiki setup, running only workflow sync, or enabling overwrite by default.
Proposed Work
Add CLI options and Composer extra configuration for sync phase selection and overwrite defaults.
Supported inputs should include:
- CLI
--only=<phase[,phase...]> to run only selected phases.
- CLI
--skip=<phase[,phase...]> to run all phases except selected phases.
- Composer
extra.dev-tools.sync.only for default selected phases.
- Composer
extra.dev-tools.sync.skip for default skipped phases.
- Composer
extra.dev-tools.sync.overwrite for default overwrite behavior.
- CLI flags should override Composer defaults for the current run.
Scope
- Define stable sync phase names for every existing sync step.
- Validate unknown phase names with clear errors.
- Decide precedence between CLI options and Composer
extra configuration.
- Make
--only and --skip mutually exclusive in a single effective configuration.
- Preserve current behavior when no options or Composer defaults are configured.
- Add tests for CLI-only, Composer-only, CLI-overrides-Composer, invalid phase, and overwrite default behavior.
Non-goals
- Changing the behavior of individual sync phases.
- Implementing dry-run/check mode; that is tracked separately.
- Making phase names user-extensible in the first implementation.
Acceptance Criteria
Functional Criteria
Architectural / Isolation Criteria
Objective
Add selective execution controls to
dev-tools:syncso maintainers can run only specific sync phases, skip selected phases, and configure default sync behavior incomposer.json.Current Limitation
dev-tools:synccurrently executes every synchronization phase in a fixed sequence. Consumers cannot persist repository-specific defaults such as skipping wiki setup, running only workflow sync, or enabling overwrite by default.Proposed Work
Add CLI options and Composer
extraconfiguration for sync phase selection and overwrite defaults.Supported inputs should include:
--only=<phase[,phase...]>to run only selected phases.--skip=<phase[,phase...]>to run all phases except selected phases.extra.dev-tools.sync.onlyfor default selected phases.extra.dev-tools.sync.skipfor default skipped phases.extra.dev-tools.sync.overwritefor default overwrite behavior.Scope
extraconfiguration.--onlyand--skipmutually exclusive in a single effective configuration.Non-goals
Acceptance Criteria
Functional Criteria
dev-tools:sync --only=workflows,skillsqueues only the named phases.dev-tools:sync --skip=wiki,git-hooksqueues all phases except the named phases.extra.dev-tools.sync.onlyandextra.dev-tools.sync.skipare respected when CLI options are absent.extra.dev-tools.sync.overwrite=truemakes overwrite-enabled phases overwrite by default.Architectural / Isolation Criteria
SyncCommandorchestration where practical.