What to build
The installer template reads the content declaration and enforces the binary deployment plan (ADR-0008):
- Assets-only packages: copy install by default (visible, editable skills/commands, no config change);
--mode plugin opts into registration
- Code-backed packages: plugin registration mandatory;
--mode copy errors
The surgical editor is ported into the self-contained template (preserving its load-bearing notes), the manifest generalizes to record registration (mode, entry string, target config file), the allowed config patterns and create-default apply, and status/uninstall reflect mode, version, and registration.
The load-time hook and registration detector stay aligned with the generalized model: detection is read-only (both bases, repo root, both extensions, plus global config.json), the hook never edits the plugin array, it ensures assets only in registered scopes, and the zero-write no-op includes a present entry. Startup non-interference holds: the whole hook body degrades to a warning plus advisory, never throws.
Acceptance criteria
Blocked by
What to build
The installer template reads the content declaration and enforces the binary deployment plan (ADR-0008):
--mode pluginopts into registration--mode copyerrorsThe surgical editor is ported into the self-contained template (preserving its load-bearing notes), the manifest generalizes to record registration (mode, entry string, target config file), the allowed config patterns and create-default apply, and
status/uninstallreflect mode, version, and registration.The load-time hook and registration detector stay aligned with the generalized model: detection is read-only (both bases, repo root, both extensions, plus global
config.json), the hook never edits thepluginarray, it ensures assets only in registered scopes, and the zero-write no-op includes a present entry. Startup non-interference holds: the whole hook body degrades to a warning plus advisory, never throws.Acceptance criteria
--mode pluginadds the entry + manifest--mode copyerrors--forceconfig.jsonstatus/uninstallreflect mode, version, and registration fileBlocked by