Skip to content

[architecture] Make DevTools the profile-based bootstrap and upgrade orchestrator for domain packages #384

Open

Description

@coisa

Proposal / validation gate: this issue records an extraction design for maintainer validation. Repository/package names are candidates. Approve the boundary and migration plan before implementation; this task does not authorize creating repositories, implementing the extraction, releases or consumer rollout.

Problem and user direction

Avoid a permanently maintained static template or copying other repositories whenever starting a project. Retain dev-tools as an orchestrator that selects and integrates the independently versioned domain packages; it must not retain their rules/engines under a new name.

Observed baseline

SyncCommand hard-codes metadata/resources/hooks/Wiki/skills/agents orchestration. #143 and #141 are closed historical work; their completion does not establish the new multi-package model. Main remains a Composer plugin; open #376 proposes external pinned CPX execution and LLM Skills with explicit sync. Design against the reviewed resulting contract, not an assumption that #376 has shipped.

Concrete tasks / acceptance

  • Define selectable profiles (library/application/docs-only/custom) and explicit capabilities/opt-outs; infer suggestions but preview exact choices. One composition config records selected packages, compatible versions, provenance and overrides.
  • Each domain declares its own executable/API, workflow/Action callers and portable skill payload; DevTools resolves verified releases and presents a plan without reimplementing the rules.
  • Bootstrap a clean repo AND upgrade an existing customized repo without copying another project or updating a separate static template. Inventory existing template repositories before deciding whether they remain examples/adapters; no deletion implied.
  • Ownership ledger per artifact/managed region: package, source path/version/commit, prior rendered hash, consumer modifications and output target. Exactly one owner per skill/workflow; installed libraries use their trusted package source and external tools an explicitly pinned source.
  • Provide deterministic dry-run/diff/check/explicit apply; no writes, network publication or hook execution in preview. Stage/validate plans, detect concurrent edits and conflicts, preserve unknown/custom content, fail closed instead of overwriting; reversible migration/rollback.
  • Project update verifies runtime/workflow/skill compatibility, released availability and source identity; never silently replace exact pins with latest. No plugin post-install side effects if feat!: distribute DevTools through CPX and portable skills #376 is accepted. Do not persist CPX cache paths or reinstall DevTools into application dependencies.
  • Orchestrate standards/reports via domain exit/result contracts; dependencies remain acyclic. Prefer existing small contracts/libraries; do not require a universal dev-tools-runtime, service container or shim for every package.
  • Add integration fixtures for fresh project, legacy plugin consumer, CPX consumer, customized scripts/config/hooks, docs-only, missing capability, incompatible releases, no-op second run, rollback and interrupted/concurrent changes.
  • Use Add a doctor command for repository readiness diagnostics #142 doctor as readiness diagnostics, Define release-safe refs for consumer workflow wrappers and checked-out actions #238 for references and [architecture] Map domain-owned skills and replace redundant agent distribution #195 for skill/role-prompt separation. Do not duplicate their implementation work.

Adoption

Pilot a small component (clock), then config/container compatibility, then custom test/report publisher, then remaining repos from a refreshed inventory. Detect imports/vendor paths, plugin allowlists, scripts, hooks, required checks and skill sources per repo. Every consumer gets a reviewable migration PR and verification on its exact head. Package publication and rollout require their existing review/release gates.

Alternatives

Static template repo drifts; copying workflows loses provenance; a monolithic universal actions repo reverses the domain split. A small orchestrator with explicit profiles makes new and existing projects use the same integration path.

Skills-first composition

DevTools may expose onboarding/consumer-sync/quality-pipeline orchestration skills that call domain skills; it does not own copies of their instructions. LLM Skills already handles distribution. Convert existing consumer-sync-auditor/quality-pipeline-auditor prompts when useful; retain a separate agent only for demonstrated nonredundant behavior. #195 owns the whole mapping/removal plan.

Delivery and migration gates

Architectural / Isolation Criteria

  • MUST: Core logic MUST live in dedicated services; commands/controllers only orchestrate.
  • MUST: Separate input resolution, domain transformations and rendering; keep CLI/framework I/O out of reusable behavior.
  • MUST: Support reuse/extensibility without major refactoring and deterministic, testable exits/output.
  • MUST: Separate gathering/transformation from writes/publishing; repeated execution MUST be idempotent or explicitly bounded.
  • MUST: Update README, command/config docs, skill references and synchronized consumer examples with the actual new ownership.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions