Part of #922
Scope
Additive pointer axis: .withFrontend({ export, framework }) on the builder, frontend block in the installer manifest (parse-only), CONTRIBUTION_AXES gains 'frontend'; family/major derived from the module at generate time (no duplicated handshake); PLUGIN_MANIFEST_SCHEMA_VERSION bumped additively.
Design source: RFC #890 (rfc.md §5) + .llm/runs/plan-frontend-contrib--seed/design/canonical/ (rev 3).
Acceptance
Part of #922
Scope
Additive pointer axis:
.withFrontend({ export, framework })on the builder,frontendblock in the installer manifest (parse-only), CONTRIBUTION_AXES gains 'frontend'; family/major derived from the module at generate time (no duplicated handshake); PLUGIN_MANIFEST_SCHEMA_VERSION bumped additively.Design source: RFC #890 (
rfc.md§5) +.llm/runs/plan-frontend-contrib--seed/design/canonical/(rev 3).Acceptance