Make install + surface read the registry's derived profileMembership/ capabilityClusters so a capability's tier drives what installs + surfaces. resolveProfile (when given the registry) unions capability skills for the profiles its tier implies before the requires: closure; resolveSurface merges capabilityClusters into the cluster map. bin/install.js, /gsd:surface, and the capability-state resolver all thread the registry. Shipped as a proven no-op: the UI capability is reconciled to tier:full (its skills were full-only in the hand-authored profiles), so it contributes only to the full profile (already the '*' sentinel) and core/standard are unchanged. Equivalence tests prove resolveProfile/resolveSurface/listSurface/staging/ capability-state are identical with vs without the registry; the core-alias staging path is verified equivalent (empty manifest → raw PROFILES.core). Closes #949 Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
22 lines
1.2 KiB
JSON
22 lines
1.2 KiB
JSON
{
|
|
"id": "ui", "role": "feature", "title": "UI design contracts",
|
|
"description": "UI-SPEC design contract + retrospective UI audit for frontend phases.",
|
|
"tier": "full", "requires": [],
|
|
"skills": ["ui-phase", "ui-review"],
|
|
"agents": ["gsd-ui-checker", "gsd-ui-auditor"],
|
|
"hooks": [],
|
|
"config": {
|
|
"workflow.ui_phase": { "type": "boolean", "default": true, "description": "Enable the UI design-contract gate during planning." },
|
|
"workflow.ui_review": { "type": "boolean", "default": true, "description": "Enable the retrospective UI audit." },
|
|
"workflow.ui_safety_gate": { "type": "boolean", "default": true, "description": "Block execution on unmet UI-SPEC contracts." }
|
|
},
|
|
"steps": [
|
|
{ "point": "plan:pre", "ref": { "skill": "ui-phase" }, "produces": ["UI-SPEC.md"], "consumes": ["CONTEXT.md"], "when": "workflow.ui_phase", "onError": "skip" },
|
|
{ "point": "verify:post", "ref": { "skill": "ui-review" }, "produces": ["UI-REVIEW.md"], "consumes": ["UI-SPEC.md"], "when": "workflow.ui_review", "onError": "skip" }
|
|
],
|
|
"contributions": [],
|
|
"gates": [
|
|
{ "point": "execute:wave:post", "check": { "query": "ui.safety-gate" }, "when": "workflow.ui_safety_gate", "blocking": true, "onError": "halt" }
|
|
]
|
|
}
|