maestro-flow 0.5.2 → 0.5.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/insight-challenge/SKILL.md +228 -0
- package/.agents/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agents/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agents/skills/learn-follow/SKILL.md +114 -114
- package/.agents/skills/learn-investigate/SKILL.md +138 -139
- package/.agents/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agents/skills/maestro/SKILL.md +8 -16
- package/.agents/skills/maestro-amend/SKILL.md +152 -152
- package/.agents/skills/maestro-analyze/SKILL.md +201 -252
- package/.agents/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agents/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agents/skills/maestro-collab/SKILL.md +159 -159
- package/.agents/skills/maestro-companion/SKILL.md +517 -517
- package/.agents/skills/maestro-composer/SKILL.md +173 -164
- package/.agents/skills/maestro-execute/SKILL.md +169 -170
- package/.agents/skills/maestro-fork/SKILL.md +97 -96
- package/.agents/skills/maestro-grill/SKILL.md +161 -162
- package/.agents/skills/maestro-guard/SKILL.md +93 -92
- package/.agents/skills/maestro-help/SKILL.md +1 -1
- package/.agents/skills/maestro-help/index/catalog.json +3 -2
- package/.agents/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agents/skills/maestro-init/SKILL.md +117 -118
- package/.agents/skills/maestro-merge/SKILL.md +73 -66
- package/.agents/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agents/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agents/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agents/skills/maestro-next/SKILL.md +241 -245
- package/.agents/skills/maestro-overlay/SKILL.md +176 -166
- package/.agents/skills/maestro-plan/SKILL.md +211 -197
- package/.agents/skills/maestro-player/SKILL.md +167 -167
- package/.agents/skills/maestro-quick/SKILL.md +69 -63
- package/.agents/skills/maestro-ralph/SKILL.md +13 -46
- package/.agents/skills/maestro-ralph-beta/SKILL.md +861 -871
- package/.agents/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agents/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agents/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agents/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agents/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agents/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agents/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agents/skills/maestro-update/SKILL.md +109 -106
- package/.agents/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agents/skills/manage-harvest/SKILL.md +83 -81
- package/.agents/skills/manage-issue/SKILL.md +59 -60
- package/.agents/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agents/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agents/skills/manage-knowhow/SKILL.md +70 -66
- package/.agents/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agents/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agents/skills/manage-status/SKILL.md +52 -42
- package/.agents/skills/manage-wiki/SKILL.md +69 -58
- package/.agents/skills/odyssey-debug/SKILL.md +461 -0
- package/.agents/skills/odyssey-improve/SKILL.md +493 -0
- package/.agents/skills/odyssey-planex/SKILL.md +592 -0
- package/.agents/skills/odyssey-review-test-fix/SKILL.md +416 -0
- package/.agents/skills/odyssey-ui/SKILL.md +447 -0
- package/.agents/skills/quality-auto-test/SKILL.md +140 -123
- package/.agents/skills/quality-debug/SKILL.md +145 -106
- package/.agents/skills/quality-refactor/SKILL.md +91 -53
- package/.agents/skills/quality-retrospective/SKILL.md +109 -63
- package/.agents/skills/quality-review/SKILL.md +141 -114
- package/.agents/skills/quality-sync/SKILL.md +74 -38
- package/.agents/skills/quality-test/SKILL.md +133 -103
- package/.agents/skills/security-audit/SKILL.md +217 -166
- package/.agents/skills/spec-add/SKILL.md +66 -59
- package/.agents/skills/spec-load/SKILL.md +68 -68
- package/.agents/skills/spec-remove/SKILL.md +42 -42
- package/.agents/skills/spec-setup/SKILL.md +38 -41
- package/.agy/skills/insight-challenge/SKILL.md +230 -0
- package/.agy/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.agy/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.agy/skills/learn-follow/SKILL.md +114 -114
- package/.agy/skills/learn-investigate/SKILL.md +138 -139
- package/.agy/skills/learn-second-opinion/SKILL.md +105 -109
- package/.agy/skills/maestro/SKILL.md +8 -16
- package/.agy/skills/maestro-amend/SKILL.md +152 -152
- package/.agy/skills/maestro-analyze/SKILL.md +201 -252
- package/.agy/skills/maestro-blueprint/SKILL.md +175 -190
- package/.agy/skills/maestro-brainstorm/SKILL.md +196 -200
- package/.agy/skills/maestro-collab/SKILL.md +159 -159
- package/.agy/skills/maestro-companion/SKILL.md +517 -517
- package/.agy/skills/maestro-composer/SKILL.md +173 -164
- package/.agy/skills/maestro-execute/SKILL.md +169 -170
- package/.agy/skills/maestro-fork/SKILL.md +97 -96
- package/.agy/skills/maestro-grill/SKILL.md +161 -162
- package/.agy/skills/maestro-guard/SKILL.md +93 -92
- package/.agy/skills/maestro-help/SKILL.md +1 -1
- package/.agy/skills/maestro-help/index/catalog.json +3 -2
- package/.agy/skills/maestro-impeccable/SKILL.md +296 -253
- package/.agy/skills/maestro-init/SKILL.md +117 -118
- package/.agy/skills/maestro-merge/SKILL.md +73 -66
- package/.agy/skills/maestro-milestone-audit/SKILL.md +4 -10
- package/.agy/skills/maestro-milestone-complete/SKILL.md +6 -7
- package/.agy/skills/maestro-milestone-release/SKILL.md +122 -131
- package/.agy/skills/maestro-next/SKILL.md +241 -245
- package/.agy/skills/maestro-overlay/SKILL.md +176 -166
- package/.agy/skills/maestro-plan/SKILL.md +211 -197
- package/.agy/skills/maestro-player/SKILL.md +167 -167
- package/.agy/skills/maestro-quick/SKILL.md +69 -63
- package/.agy/skills/maestro-ralph/SKILL.md +13 -46
- package/.agy/skills/maestro-ralph-beta/SKILL.md +861 -871
- package/.agy/skills/maestro-ralph-execute/SKILL.md +234 -234
- package/.agy/skills/maestro-roadmap/SKILL.md +159 -172
- package/.agy/skills/maestro-swarm-workflow/SKILL.md +229 -250
- package/.agy/skills/maestro-tools-execute/SKILL.md +108 -103
- package/.agy/skills/maestro-tools-register/SKILL.md +148 -143
- package/.agy/skills/maestro-ui-codify/SKILL.md +103 -86
- package/.agy/skills/maestro-universal-workflow/SKILL.md +534 -547
- package/.agy/skills/maestro-update/SKILL.md +109 -106
- package/.agy/skills/manage-codebase-rebuild/SKILL.md +73 -71
- package/.agy/skills/manage-harvest/SKILL.md +83 -81
- package/.agy/skills/manage-issue/SKILL.md +59 -60
- package/.agy/skills/manage-issue-discover/SKILL.md +70 -68
- package/.agy/skills/manage-kg-extractors/SKILL.md +130 -0
- package/.agy/skills/manage-knowhow/SKILL.md +70 -66
- package/.agy/skills/manage-knowhow-capture/SKILL.md +79 -69
- package/.agy/skills/manage-knowledge-audit/SKILL.md +91 -74
- package/.agy/skills/manage-status/SKILL.md +52 -42
- package/.agy/skills/manage-wiki/SKILL.md +69 -58
- package/.agy/skills/odyssey-debug/SKILL.md +461 -0
- package/.agy/skills/odyssey-improve/SKILL.md +493 -0
- package/.agy/skills/odyssey-planex/SKILL.md +592 -0
- package/.agy/skills/odyssey-review-test-fix/SKILL.md +416 -0
- package/.agy/skills/odyssey-ui/SKILL.md +447 -0
- package/.agy/skills/quality-auto-test/SKILL.md +140 -123
- package/.agy/skills/quality-debug/SKILL.md +145 -106
- package/.agy/skills/quality-refactor/SKILL.md +91 -53
- package/.agy/skills/quality-retrospective/SKILL.md +109 -63
- package/.agy/skills/quality-review/SKILL.md +141 -114
- package/.agy/skills/quality-sync/SKILL.md +74 -38
- package/.agy/skills/quality-test/SKILL.md +133 -103
- package/.agy/skills/security-audit/SKILL.md +217 -166
- package/.agy/skills/spec-add/SKILL.md +66 -59
- package/.agy/skills/spec-load/SKILL.md +68 -68
- package/.agy/skills/spec-remove/SKILL.md +42 -42
- package/.agy/skills/spec-setup/SKILL.md +38 -41
- package/.claude/commands/learn-follow.md +127 -127
- package/.claude/commands/learn-investigate.md +151 -152
- package/.claude/commands/learn-second-opinion.md +118 -122
- package/.claude/commands/maestro-amend.md +164 -164
- package/.claude/commands/maestro-analyze.md +215 -266
- package/.claude/commands/maestro-blueprint.md +189 -204
- package/.claude/commands/maestro-brainstorm.md +209 -213
- package/.claude/commands/maestro-collab.md +172 -172
- package/.claude/commands/maestro-companion.md +531 -531
- package/.claude/commands/maestro-composer.md +188 -179
- package/.claude/commands/maestro-execute.md +183 -184
- package/.claude/commands/maestro-fork.md +111 -110
- package/.claude/commands/maestro-grill.md +175 -176
- package/.claude/commands/maestro-guard.md +103 -102
- package/.claude/commands/maestro-impeccable.md +311 -268
- package/.claude/commands/maestro-init.md +130 -131
- package/.claude/commands/maestro-merge.md +87 -80
- package/.claude/commands/maestro-milestone-audit.md +4 -10
- package/.claude/commands/maestro-milestone-complete.md +6 -7
- package/.claude/commands/maestro-milestone-release.md +136 -145
- package/.claude/commands/maestro-next.md +253 -257
- package/.claude/commands/maestro-overlay.md +188 -178
- package/.claude/commands/maestro-plan.md +225 -211
- package/.claude/commands/maestro-player.md +182 -182
- package/.claude/commands/maestro-quick.md +83 -77
- package/.claude/commands/maestro-ralph-beta.md +875 -885
- package/.claude/commands/maestro-ralph-execute.md +247 -247
- package/.claude/commands/maestro-ralph.md +13 -46
- package/.claude/commands/maestro-roadmap.md +173 -186
- package/.claude/commands/maestro-swarm-workflow.md +243 -264
- package/.claude/commands/maestro-tools-execute.md +122 -117
- package/.claude/commands/maestro-tools-register.md +162 -157
- package/.claude/commands/maestro-ui-codify.md +117 -100
- package/.claude/commands/maestro-universal-workflow.md +548 -561
- package/.claude/commands/maestro-update.md +122 -119
- package/.claude/commands/maestro.md +8 -16
- package/.claude/commands/manage-codebase-rebuild.md +87 -85
- package/.claude/commands/manage-harvest.md +97 -95
- package/.claude/commands/manage-issue-discover.md +83 -81
- package/.claude/commands/manage-issue.md +72 -73
- package/.claude/commands/manage-kg-extractors.md +128 -0
- package/.claude/commands/manage-knowhow-capture.md +92 -82
- package/.claude/commands/manage-knowhow.md +83 -79
- package/.claude/commands/manage-knowledge-audit.md +105 -88
- package/.claude/commands/manage-status.md +62 -52
- package/.claude/commands/manage-wiki.md +82 -71
- package/.claude/commands/odyssey-debug.md +459 -0
- package/.claude/commands/odyssey-improve.md +491 -0
- package/.claude/commands/odyssey-planex.md +590 -0
- package/.claude/commands/odyssey-review-test-fix.md +414 -0
- package/.claude/commands/odyssey-ui.md +445 -0
- package/.claude/commands/quality-auto-test.md +153 -136
- package/.claude/commands/quality-debug.md +159 -120
- package/.claude/commands/quality-refactor.md +105 -67
- package/.claude/commands/quality-retrospective.md +123 -77
- package/.claude/commands/quality-review.md +155 -128
- package/.claude/commands/quality-sync.md +88 -52
- package/.claude/commands/quality-test.md +147 -117
- package/.claude/commands/security-audit.md +230 -179
- package/.claude/commands/spec-add.md +77 -70
- package/.claude/commands/spec-load.md +78 -78
- package/.claude/commands/spec-remove.md +55 -55
- package/.claude/commands/spec-setup.md +49 -52
- package/.claude/skills/insight-challenge/SKILL.md +226 -0
- package/.claude/skills/insight-challenge/specs/challenge-protocol.md +154 -0
- package/.claude/skills/insight-challenge/specs/verdict-schema.md +239 -0
- package/.claude/skills/maestro-help/SKILL.md +1 -1
- package/.claude/skills/maestro-help/index/catalog.json +3 -2
- package/.codex/skills/codify-to-knowhow/SKILL.md +1 -1
- package/.codex/skills/maestro-companion/SKILL.md +1 -1
- package/.codex/skills/maestro-help/SKILL.md +1 -1
- package/.codex/skills/maestro-impeccable/SKILL.md +1 -1
- package/.codex/skills/maestro-next/SKILL.md +1 -1
- package/.codex/skills/maestro-ralph-beta/SKILL.md +1 -1
- package/.codex/skills/odyssey-debug/SKILL.md +456 -0
- package/.codex/skills/odyssey-improve/SKILL.md +466 -0
- package/.codex/skills/odyssey-planex/SKILL.md +409 -0
- package/.codex/skills/odyssey-review-test-fix/SKILL.md +377 -0
- package/.codex/skills/odyssey-ui/SKILL.md +411 -0
- package/dashboard/dist/assets/{ArtifactsPage-BLvAqQlQ.js → ArtifactsPage-B6z23DfG.js} +2 -2
- package/dashboard/dist/assets/{ChatInput-DU9YGZKX.js → ChatInput-tBtGKV2i.js} +1 -1
- package/dashboard/dist/assets/{ChatPage-DYHfheXC.js → ChatPage-CcggDVs4.js} +2 -2
- package/dashboard/dist/assets/{CollabPage-CSlmvEa-.js → CollabPage-FaZeqqeS.js} +1 -1
- package/dashboard/dist/assets/{ExecutionPanel-RYWf0dYC.js → ExecutionPanel-DNRwYDXp.js} +1 -1
- package/dashboard/dist/assets/{KanbanPage-N55Iv0-X.js → KanbanPage-B2xh2s_N.js} +1 -1
- package/dashboard/dist/assets/{MaestroCoordinatePage-BxwZ6yy5.js → MaestroCoordinatePage-DCMGHDAL.js} +1 -1
- package/dashboard/dist/assets/{MarkdownRenderer-ZGtOY7Ti.js → MarkdownRenderer-C3FvTqVe.js} +1 -1
- package/dashboard/dist/assets/McpPage-HKaJ8cQP.js +16 -0
- package/dashboard/dist/assets/{MeetingRoomPage-CxHRn1xx.js → MeetingRoomPage-DGN5oUXH.js} +1 -1
- package/dashboard/dist/assets/{OutputPanel-DaL8c1i5.js → OutputPanel-BiCteH5k.js} +1 -1
- package/dashboard/dist/assets/{ProblemsPanel-BQTd5812.js → ProblemsPanel-Dk4v9tol.js} +1 -1
- package/dashboard/dist/assets/{RequirementBoardPage-22y9u1qh.js → RequirementBoardPage-D10A26gi.js} +1 -1
- package/dashboard/dist/assets/{RequirementPage-_mO743Xm.js → RequirementPage-Cs-2omLz.js} +1 -1
- package/dashboard/dist/assets/{RoomsPage-CExTbOGr.js → RoomsPage-tKQQhw1W.js} +1 -1
- package/dashboard/dist/assets/SpecsPage-LK1QCtcg.js +36 -0
- package/dashboard/dist/assets/{TeamsPage-BxEXLb5g.js → TeamsPage-C-bEwB8E.js} +1 -1
- package/dashboard/dist/assets/{TreeBrowser-CVtPF5C9.js → TreeBrowser-1YP-DfTY.js} +2 -2
- package/dashboard/dist/assets/{WorkflowPage-BoN18Lhs.js → WorkflowPage-dGHPsDDr.js} +2 -2
- package/dashboard/dist/assets/{arrow-left-C5ROg97G.js → arrow-left-BPFSEpfO.js} +1 -1
- package/dashboard/dist/assets/{check-Bs8PM0tQ.js → check-D5hOViiQ.js} +1 -1
- package/dashboard/dist/assets/{chevron-right-SmErd_1F.js → chevron-right-D9BsXrIg.js} +1 -1
- package/dashboard/dist/assets/{circle-CjpslL_D.js → circle-Cn5fNpmp.js} +1 -1
- package/dashboard/dist/assets/{circle-alert-CuzAg2fd.js → circle-alert-CZvK3B1K.js} +1 -1
- package/dashboard/dist/assets/{circle-check-BIkDU5D5.js → circle-check-DApOBP0J.js} +1 -1
- package/dashboard/dist/assets/{circle-check-big-CYctV8bK.js → circle-check-big-Cd9ztJpl.js} +1 -1
- package/dashboard/dist/assets/{code-DoB7rfxt.js → code-C3TuHjMs.js} +1 -1
- package/dashboard/dist/assets/{columns-3-Ch5KIyRa.js → columns-3-CO2SvNJb.js} +1 -1
- package/dashboard/dist/assets/{download-DadtG2Nr.js → download-BuKGI7KX.js} +1 -1
- package/dashboard/dist/assets/{en-2h6fD0j8.js → en-BmpYsIfb.js} +1 -1
- package/dashboard/dist/assets/folder-Chwj_P4A.js +11 -0
- package/dashboard/dist/assets/folder-open-S72FbKvn.js +6 -0
- package/dashboard/dist/assets/{index-BL4h1OKY.js → index-CN0YdC9M.js} +1 -1
- package/dashboard/dist/assets/{index-DQIlX2w_.js → index-Cbs79erW.js} +5 -5
- package/dashboard/dist/assets/{index-DaFwSmVJ.js → index-CdT1WNND.js} +1 -1
- package/dashboard/dist/assets/index-DEvP8cgc.css +1 -0
- package/dashboard/dist/assets/{list-CI-XIPZh.js → list-Dg_ojUpi.js} +1 -1
- package/dashboard/dist/assets/{loader-DpdMoQvh.js → loader-CMcc73C_.js} +1 -1
- package/dashboard/dist/assets/{minus-BVbfXGrC.js → minus-KxmVOIB7.js} +1 -1
- package/dashboard/dist/assets/pen-line-D1YTNDPw.js +11 -0
- package/dashboard/dist/assets/{pencil-I7GE0y29.js → pencil-BAjxSHuh.js} +1 -1
- package/dashboard/dist/assets/{proxy-CcYyZZWI.js → proxy-BewnIei6.js} +1 -1
- package/dashboard/dist/assets/{refresh-cw-BG9V_T4R.js → refresh-cw-Chc0RcRY.js} +1 -1
- package/dashboard/dist/assets/{rows-2-DP6NjQFk.js → rows-2-DWJuw8OM.js} +1 -1
- package/dashboard/dist/assets/{search-b78eLlw2.js → search-CPGb2sEw.js} +1 -1
- package/dashboard/dist/assets/{shallow-CJEesgtu.js → shallow-Dy0-7n5s.js} +1 -1
- package/dashboard/dist/assets/{table-B_lk-a1d.js → table-VI5scWpO.js} +1 -1
- package/dashboard/dist/assets/{team-types-Se7f9LfJ.js → team-types-Cu8zCPN3.js} +1 -1
- package/dashboard/dist/assets/{terminal-DXx4tvzq.js → terminal-Bqt5c6Ny.js} +1 -1
- package/dashboard/dist/assets/{trash-2-CVh9mnRj.js → trash-2-BcTVifbw.js} +1 -1
- package/dashboard/dist/assets/{users-Da9zGME5.js → users-BhFAHz4H.js} +1 -1
- package/dashboard/dist/assets/{zap-C0zaC7gJ.js → zap-BWbLhgr6.js} +1 -1
- package/dashboard/dist/assets/{zh-CN-r3AvxxOL.js → zh-CN-BIRiTdAD.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/routes/wiki.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/search.d.ts +14 -14
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js +188 -56
- package/dashboard/dist-server/dashboard/src/server/wiki/search.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js +1 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/stress.test.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.d.ts +37 -0
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js +560 -22
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-indexer.js.map +1 -1
- package/dashboard/dist-server/dashboard/src/server/wiki/wiki-types.d.ts +6 -2
- package/dashboard/dist-server/src/types/index.d.ts +9 -0
- package/dist/src/cli.js +4 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/delegate.d.ts.map +1 -1
- package/dist/src/commands/delegate.js +50 -8
- package/dist/src/commands/delegate.js.map +1 -1
- package/dist/src/commands/domain.d.ts +9 -0
- package/dist/src/commands/domain.d.ts.map +1 -0
- package/dist/src/commands/domain.js +445 -0
- package/dist/src/commands/domain.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +10 -0
- package/dist/src/commands/hooks.d.ts.map +1 -1
- package/dist/src/commands/hooks.js +132 -22
- package/dist/src/commands/hooks.js.map +1 -1
- package/dist/src/commands/install.d.ts.map +1 -1
- package/dist/src/commands/install.js +82 -204
- package/dist/src/commands/install.js.map +1 -1
- package/dist/src/commands/kg.d.ts.map +1 -1
- package/dist/src/commands/kg.js +189 -90
- package/dist/src/commands/kg.js.map +1 -1
- package/dist/src/commands/search.d.ts +15 -8
- package/dist/src/commands/search.d.ts.map +1 -1
- package/dist/src/commands/search.js +205 -59
- package/dist/src/commands/search.js.map +1 -1
- package/dist/src/commands/spec.d.ts.map +1 -1
- package/dist/src/commands/spec.js +9 -1
- package/dist/src/commands/spec.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +0 -7
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/wiki.d.ts.map +1 -1
- package/dist/src/commands/wiki.js +8 -1
- package/dist/src/commands/wiki.js.map +1 -1
- package/dist/src/commands/workspace.d.ts +12 -0
- package/dist/src/commands/workspace.d.ts.map +1 -0
- package/dist/src/commands/workspace.js +230 -0
- package/dist/src/commands/workspace.js.map +1 -0
- package/dist/src/config/cli-tools-config.d.ts +5 -0
- package/dist/src/config/cli-tools-config.d.ts.map +1 -1
- package/dist/src/config/cli-tools-config.js +31 -0
- package/dist/src/config/cli-tools-config.js.map +1 -1
- package/dist/src/config/index.d.ts +9 -1
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +35 -1
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/core/install-executor.d.ts +31 -0
- package/dist/src/core/install-executor.d.ts.map +1 -0
- package/dist/src/core/install-executor.js +231 -0
- package/dist/src/core/install-executor.js.map +1 -0
- package/dist/src/core/install-profile.d.ts +103 -0
- package/dist/src/core/install-profile.d.ts.map +1 -0
- package/dist/src/core/install-profile.js +225 -0
- package/dist/src/core/install-profile.js.map +1 -0
- package/dist/src/graph/kg/credibility.d.ts +37 -0
- package/dist/src/graph/kg/credibility.d.ts.map +1 -0
- package/dist/src/graph/kg/credibility.js +141 -0
- package/dist/src/graph/kg/credibility.js.map +1 -0
- package/dist/src/graph/kg/db/connection.d.ts +28 -0
- package/dist/src/graph/kg/db/connection.d.ts.map +1 -0
- package/dist/src/graph/kg/db/connection.js +142 -0
- package/dist/src/graph/kg/db/connection.js.map +1 -0
- package/dist/src/graph/kg/db/index.d.ts +5 -0
- package/dist/src/graph/kg/db/index.d.ts.map +1 -0
- package/dist/src/graph/kg/db/index.js +6 -0
- package/dist/src/graph/kg/db/index.js.map +1 -0
- package/dist/src/graph/kg/db/migrations.d.ts +8 -0
- package/dist/src/graph/kg/db/migrations.d.ts.map +1 -0
- package/dist/src/graph/kg/db/migrations.js +88 -0
- package/dist/src/graph/kg/db/migrations.js.map +1 -0
- package/dist/src/graph/kg/db/queries.d.ts +84 -0
- package/dist/src/graph/kg/db/queries.d.ts.map +1 -0
- package/dist/src/graph/kg/db/queries.js +471 -0
- package/dist/src/graph/kg/db/queries.js.map +1 -0
- package/dist/src/graph/kg/db/types.d.ts +123 -0
- package/dist/src/graph/kg/db/types.d.ts.map +1 -0
- package/dist/src/graph/kg/db/types.js +75 -0
- package/dist/src/graph/kg/db/types.js.map +1 -0
- package/dist/src/graph/kg/engine.d.ts +87 -0
- package/dist/src/graph/kg/engine.d.ts.map +1 -0
- package/dist/src/graph/kg/engine.js +247 -0
- package/dist/src/graph/kg/engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts +42 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js +325 -0
- package/dist/src/graph/kg/extraction/code/code-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js +122 -0
- package/dist/src/graph/kg/extraction/code/dfm-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts +14 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js +65 -0
- package/dist/src/graph/kg/extraction/code/generated-detection.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts +9 -0
- package/dist/src/graph/kg/extraction/code/languages/index.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js +2119 -0
- package/dist/src/graph/kg/extraction/code/languages/index.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts +5 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js +191 -0
- package/dist/src/graph/kg/extraction/code/languages/typescript.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js +117 -0
- package/dist/src/graph/kg/extraction/code/liquid-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/code/mybatis-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts +35 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js +573 -0
- package/dist/src/graph/kg/extraction/code/plugin-engine.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts +95 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.js +5 -0
- package/dist/src/graph/kg/extraction/code/plugin-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js +92 -0
- package/dist/src/graph/kg/extraction/code/svelte-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts +61 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js +53 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter-types.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts +55 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js +227 -0
- package/dist/src/graph/kg/extraction/code/tree-sitter.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts +6 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js +109 -0
- package/dist/src/graph/kg/extraction/code/vue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts +44 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js +140 -0
- package/dist/src/graph/kg/extraction/code/wasm-stability.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js +149 -0
- package/dist/src/graph/kg/extraction/knowledge/codebase-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts +4 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js +114 -0
- package/dist/src/graph/kg/extraction/knowledge/domain-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js +84 -0
- package/dist/src/graph/kg/extraction/knowledge/issue-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js +173 -0
- package/dist/src/graph/kg/extraction/knowledge/spec-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts +3 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js +165 -0
- package/dist/src/graph/kg/extraction/knowledge/wiki-extractor.js.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts +6 -0
- package/dist/src/graph/kg/extraction/orchestrator.d.ts.map +1 -0
- package/dist/src/graph/kg/extraction/orchestrator.js +220 -0
- package/dist/src/graph/kg/extraction/orchestrator.js.map +1 -0
- package/dist/src/graph/kg/index.d.ts +29 -0
- package/dist/src/graph/kg/index.d.ts.map +1 -0
- package/dist/src/graph/kg/index.js +35 -0
- package/dist/src/graph/kg/index.js.map +1 -0
- package/dist/src/graph/kg/query/context-builder.d.ts +38 -0
- package/dist/src/graph/kg/query/context-builder.d.ts.map +1 -0
- package/dist/src/graph/kg/query/context-builder.js +184 -0
- package/dist/src/graph/kg/query/context-builder.js.map +1 -0
- package/dist/src/graph/kg/query/index.d.ts +8 -0
- package/dist/src/graph/kg/query/index.d.ts.map +1 -0
- package/dist/src/graph/kg/query/index.js +6 -0
- package/dist/src/graph/kg/query/index.js.map +1 -0
- package/dist/src/graph/kg/query/scoring.d.ts +19 -0
- package/dist/src/graph/kg/query/scoring.d.ts.map +1 -0
- package/dist/src/graph/kg/query/scoring.js +158 -0
- package/dist/src/graph/kg/query/scoring.js.map +1 -0
- package/dist/src/graph/kg/query/search.d.ts +59 -0
- package/dist/src/graph/kg/query/search.d.ts.map +1 -0
- package/dist/src/graph/kg/query/search.js +158 -0
- package/dist/src/graph/kg/query/search.js.map +1 -0
- package/dist/src/graph/kg/query/traversal.d.ts +75 -0
- package/dist/src/graph/kg/query/traversal.d.ts.map +1 -0
- package/dist/src/graph/kg/query/traversal.js +420 -0
- package/dist/src/graph/kg/query/traversal.js.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts +41 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js +450 -0
- package/dist/src/graph/kg/resolution/callback-synthesizer.js.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts +18 -0
- package/dist/src/graph/kg/resolution/frameworks/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js +632 -0
- package/dist/src/graph/kg/resolution/frameworks/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts +73 -0
- package/dist/src/graph/kg/resolution/import-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/import-resolver.js +257 -0
- package/dist/src/graph/kg/resolution/import-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/index.d.ts +11 -0
- package/dist/src/graph/kg/resolution/index.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/index.js +7 -0
- package/dist/src/graph/kg/resolution/index.js.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts +22 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js +288 -0
- package/dist/src/graph/kg/resolution/knowledge-resolver.js.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts +25 -0
- package/dist/src/graph/kg/resolution/name-matcher.d.ts.map +1 -0
- package/dist/src/graph/kg/resolution/name-matcher.js +162 -0
- package/dist/src/graph/kg/resolution/name-matcher.js.map +1 -0
- package/dist/src/graph/kg/schema.sql +215 -0
- package/dist/src/graph/kg/surface/cli.d.ts +3 -0
- package/dist/src/graph/kg/surface/cli.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/cli.js +597 -0
- package/dist/src/graph/kg/surface/cli.js.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts +33 -0
- package/dist/src/graph/kg/surface/hook-injector.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/hook-injector.js +172 -0
- package/dist/src/graph/kg/surface/hook-injector.js.map +1 -0
- package/dist/src/graph/kg/surface/index.d.ts +6 -0
- package/dist/src/graph/kg/surface/index.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/index.js +5 -0
- package/dist/src/graph/kg/surface/index.js.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts +20 -0
- package/dist/src/graph/kg/surface/mcp-tools.d.ts.map +1 -0
- package/dist/src/graph/kg/surface/mcp-tools.js +253 -0
- package/dist/src/graph/kg/surface/mcp-tools.js.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts +24 -0
- package/dist/src/graph/kg/sync/incremental-sync.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/incremental-sync.js +71 -0
- package/dist/src/graph/kg/sync/incremental-sync.js.map +1 -0
- package/dist/src/graph/kg/sync/index.d.ts +5 -0
- package/dist/src/graph/kg/sync/index.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/index.js +4 -0
- package/dist/src/graph/kg/sync/index.js.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts +33 -0
- package/dist/src/graph/kg/sync/watch-policy.d.ts.map +1 -0
- package/dist/src/graph/kg/sync/watch-policy.js +90 -0
- package/dist/src/graph/kg/sync/watch-policy.js.map +1 -0
- package/dist/src/hooks/constants.d.ts +0 -2
- package/dist/src/hooks/constants.d.ts.map +1 -1
- package/dist/src/hooks/constants.js +0 -2
- package/dist/src/hooks/constants.js.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.d.ts +6 -0
- package/dist/src/hooks/keyword-spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/keyword-spec-injector.js +157 -81
- package/dist/src/hooks/keyword-spec-injector.js.map +1 -1
- package/dist/src/hooks/kg-auto-init.d.ts +13 -0
- package/dist/src/hooks/kg-auto-init.d.ts.map +1 -0
- package/dist/src/hooks/kg-auto-init.js +38 -0
- package/dist/src/hooks/kg-auto-init.js.map +1 -0
- package/dist/src/hooks/kg-context-injector.d.ts +1 -3
- package/dist/src/hooks/kg-context-injector.d.ts.map +1 -1
- package/dist/src/hooks/kg-context-injector.js +12 -17
- package/dist/src/hooks/kg-context-injector.js.map +1 -1
- package/dist/src/hooks/kg-sync-hook.d.ts +1 -9
- package/dist/src/hooks/kg-sync-hook.d.ts.map +1 -1
- package/dist/src/hooks/kg-sync-hook.js +21 -90
- package/dist/src/hooks/kg-sync-hook.js.map +1 -1
- package/dist/src/hooks/spec-analytics.d.ts +1 -0
- package/dist/src/hooks/spec-analytics.d.ts.map +1 -1
- package/dist/src/hooks/spec-analytics.js +1 -3
- package/dist/src/hooks/spec-analytics.js.map +1 -1
- package/dist/src/hooks/spec-injector.d.ts.map +1 -1
- package/dist/src/hooks/spec-injector.js +65 -1
- package/dist/src/hooks/spec-injector.js.map +1 -1
- package/dist/src/hooks/workspace.d.ts +4 -2
- package/dist/src/hooks/workspace.d.ts.map +1 -1
- package/dist/src/hooks/workspace.js +6 -2
- package/dist/src/hooks/workspace.js.map +1 -1
- package/dist/src/i18n/locales/en.d.ts.map +1 -1
- package/dist/src/i18n/locales/en.js +52 -9
- package/dist/src/i18n/locales/en.js.map +1 -1
- package/dist/src/i18n/locales/zh.d.ts.map +1 -1
- package/dist/src/i18n/locales/zh.js +52 -9
- package/dist/src/i18n/locales/zh.js.map +1 -1
- package/dist/src/i18n/types.d.ts +40 -4
- package/dist/src/i18n/types.d.ts.map +1 -1
- package/dist/src/tools/__tests__/domain-search-debug.d.ts +2 -0
- package/dist/src/tools/__tests__/domain-search-debug.d.ts.map +1 -0
- package/dist/src/tools/__tests__/domain-search-debug.js +32 -0
- package/dist/src/tools/__tests__/domain-search-debug.js.map +1 -0
- package/dist/src/tools/domain-loader.d.ts +63 -0
- package/dist/src/tools/domain-loader.d.ts.map +1 -0
- package/dist/src/tools/domain-loader.js +295 -0
- package/dist/src/tools/domain-loader.js.map +1 -0
- package/dist/src/tools/domain-matcher.d.ts +24 -0
- package/dist/src/tools/domain-matcher.d.ts.map +1 -0
- package/dist/src/tools/domain-matcher.js +117 -0
- package/dist/src/tools/domain-matcher.js.map +1 -0
- package/dist/src/tools/domain-scanner.d.ts +32 -0
- package/dist/src/tools/domain-scanner.d.ts.map +1 -0
- package/dist/src/tools/domain-scanner.js +263 -0
- package/dist/src/tools/domain-scanner.js.map +1 -0
- package/dist/src/tools/domain-schema.d.ts +18 -0
- package/dist/src/tools/domain-schema.d.ts.map +1 -0
- package/dist/src/tools/domain-schema.js +104 -0
- package/dist/src/tools/domain-schema.js.map +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts +1 -0
- package/dist/src/tools/spec-entry-parser.d.ts.map +1 -1
- package/dist/src/tools/spec-entry-parser.js +1 -0
- package/dist/src/tools/spec-entry-parser.js.map +1 -1
- package/dist/src/tools/spec-loader.d.ts +5 -0
- package/dist/src/tools/spec-loader.d.ts.map +1 -1
- package/dist/src/tools/spec-loader.js +10 -2
- package/dist/src/tools/spec-loader.js.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.d.ts.map +1 -1
- package/dist/src/tui/install-ui/ConfigPanel.js +9 -1
- package/dist/src/tui/install-ui/ConfigPanel.js.map +1 -1
- package/dist/src/tui/install-ui/GroupedHub.d.ts +55 -0
- package/dist/src/tui/install-ui/GroupedHub.d.ts.map +1 -0
- package/dist/src/tui/install-ui/GroupedHub.js +210 -0
- package/dist/src/tui/install-ui/GroupedHub.js.map +1 -0
- package/dist/src/tui/install-ui/HooksConfig.d.ts +10 -5
- package/dist/src/tui/install-ui/HooksConfig.d.ts.map +1 -1
- package/dist/src/tui/install-ui/HooksConfig.js +83 -18
- package/dist/src/tui/install-ui/HooksConfig.js.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.d.ts +1 -30
- package/dist/src/tui/install-ui/InstallConfirm.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallConfirm.js +72 -12
- package/dist/src/tui/install-ui/InstallConfirm.js.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.d.ts +4 -21
- package/dist/src/tui/install-ui/InstallExecution.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallExecution.js +89 -260
- package/dist/src/tui/install-ui/InstallExecution.js.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.d.ts +3 -7
- package/dist/src/tui/install-ui/InstallFlow.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallFlow.js +45 -267
- package/dist/src/tui/install-ui/InstallFlow.js.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallHub.js +2 -4
- package/dist/src/tui/install-ui/InstallHub.js.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.d.ts.map +1 -1
- package/dist/src/tui/install-ui/InstallResult.js +1 -5
- package/dist/src/tui/install-ui/InstallResult.js.map +1 -1
- package/dist/src/tui/install-ui/index.d.ts +5 -1
- package/dist/src/tui/install-ui/index.d.ts.map +1 -1
- package/dist/src/tui/install-ui/index.js +1 -0
- package/dist/src/tui/install-ui/index.js.map +1 -1
- package/dist/src/tui/install-ui/types.d.ts +39 -0
- package/dist/src/tui/install-ui/types.d.ts.map +1 -1
- package/dist/src/tui/install-ui/types.js +1 -1
- package/dist/src/tui/install-ui/types.js.map +1 -1
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts +69 -0
- package/dist/src/tui/install-ui/useInstallFlowState.d.ts.map +1 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js +288 -0
- package/dist/src/tui/install-ui/useInstallFlowState.js.map +1 -0
- package/dist/src/tui/shared/components.d.ts +4 -0
- package/dist/src/tui/shared/components.d.ts.map +1 -1
- package/dist/src/tui/shared/components.js +4 -0
- package/dist/src/tui/shared/components.js.map +1 -1
- package/dist/src/tui/shared/index.d.ts +1 -1
- package/dist/src/tui/shared/index.d.ts.map +1 -1
- package/dist/src/tui/shared/index.js +1 -1
- package/dist/src/tui/shared/index.js.map +1 -1
- package/dist/src/tui/shared/tokens.d.ts +5 -5
- package/dist/src/tui/shared/tokens.js +5 -5
- package/dist/src/tui/shared/tokens.js.map +1 -1
- package/dist/src/types/index.d.ts +9 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/utils/cli-format.d.ts +2 -1
- package/dist/src/utils/cli-format.d.ts.map +1 -1
- package/dist/src/utils/cli-format.js +14 -3
- package/dist/src/utils/cli-format.js.map +1 -1
- package/dist/src/utils/cooldown-guard.d.ts +17 -0
- package/dist/src/utils/cooldown-guard.d.ts.map +1 -0
- package/dist/src/utils/cooldown-guard.js +59 -0
- package/dist/src/utils/cooldown-guard.js.map +1 -0
- package/dist/src/utils/jsonl-log.d.ts.map +1 -1
- package/dist/src/utils/jsonl-log.js +2 -1
- package/dist/src/utils/jsonl-log.js.map +1 -1
- package/dist/src/utils/update-notices.js +17 -4
- package/dist/src/utils/update-notices.js.map +1 -1
- package/package.json +91 -92
- package/workflows/analyze.md +25 -49
- package/workflows/auto-test.md +699 -699
- package/workflows/blueprint.md +403 -431
- package/workflows/brainstorm.md +54 -195
- package/workflows/business-test.md +570 -570
- package/workflows/claude-instructions.md +23 -28
- package/workflows/codex-instructions.md +30 -58
- package/workflows/coding-philosophy.md +69 -69
- package/workflows/command-authoring.md +823 -823
- package/workflows/debug.md +43 -98
- package/workflows/delegate-usage.md +39 -241
- package/workflows/execute.md +4 -53
- package/workflows/finish-work.md +25 -0
- package/workflows/grill.md +12 -56
- package/workflows/harvest.md +22 -68
- package/workflows/init.md +148 -148
- package/workflows/instruction-authoring-guide.md +97 -0
- package/workflows/issue-execute.md +110 -110
- package/workflows/issue-gaps-analyze.codex.md +260 -260
- package/workflows/issue-gaps-analyze.md +216 -216
- package/workflows/issue-plan.md +110 -110
- package/workflows/issue.md +338 -346
- package/workflows/knowhow.md +0 -32
- package/workflows/learn.md +277 -277
- package/workflows/maestro-chain-execute.md +20 -20
- package/workflows/refactor.md +22 -44
- package/workflows/retrospective.md +16 -65
- package/workflows/review.md +446 -486
- package/workflows/roadmap.md +35 -132
- package/workflows/skill-authoring.md +265 -265
- package/workflows/spec-generate.md +470 -470
- package/workflows/specs-remove.md +104 -104
- package/workflows/sync.md +11 -41
- package/workflows/test-gen.md +226 -226
- package/workflows/test.md +385 -475
- package/workflows/ui-design.md +391 -391
- package/workflows/ui-style.md +199 -199
- package/workflows/updates/update-v3-setup.md +7 -15
- package/workflows/wiki-connect.md +151 -151
- package/workflows/wiki-digest.md +178 -178
- package/workflows/wiki-manage.md +109 -109
- package/dashboard/dist/assets/McpPage-Im6s4pGR.js +0 -21
- package/dashboard/dist/assets/SpecsPage-gr4KX51-.js +0 -36
- package/dashboard/dist/assets/folder-B8ODoZfb.js +0 -16
- package/dashboard/dist/assets/index-6-yE5Yl9.css +0 -1
- package/dashboard/dist/assets/pen-line-CR8GaHt-.js +0 -6
- package/workflows/cli-tools-usage.md +0 -252
- package/workflows/delegate-protocol.codex.md +0 -65
package/workflows/ui-design.md
CHANGED
|
@@ -1,391 +1,391 @@
|
|
|
1
|
-
# UI Design Workflow
|
|
2
|
-
|
|
3
|
-
4-layer extraction pipeline (style → animation → layout → assembly) producing design prototypes.
|
|
4
|
-
Powered by ui-ux-pro-max (design system recommendations) and ui-design-agent (token generation + assembly).
|
|
5
|
-
User reviews via compare.html, selects winner(s), design solidified as code reference for plan/execute.
|
|
6
|
-
|
|
7
|
-
Pipeline position: analyze -> **ui-design** -> plan -> execute -> verify
|
|
8
|
-
|
|
9
|
-
> **Note:** This is the primary implementation. When the `ui-ux-pro-max` skill is available,
|
|
10
|
-
> the command may delegate to `ui-style.md` for a lightweight path. This workflow is the
|
|
11
|
-
> fallback when the skill is unavailable, and is also used when `--full` is explicitly requested.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Prerequisites
|
|
16
|
-
|
|
17
|
-
- `.workflow/` directory initialized (or auto-bootstrap)
|
|
18
|
-
- Python 3 available (required by ui-ux-pro-max skill)
|
|
19
|
-
- ui-ux-pro-max skill installed (search.py available)
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## Scope Resolution
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
Input: <phase> (number) OR topic text
|
|
27
|
-
Output: .workflow/scratch/{YYYYMMDD}-ui-design-{slug}/
|
|
28
|
-
|
|
29
|
-
Resolve scope:
|
|
30
|
-
number → phase slug from roadmap.md, scope="phase", register with phase
|
|
31
|
-
text → slugify(topic), scope="adhoc"|"standalone" (based on current_milestone)
|
|
32
|
-
|
|
33
|
-
mkdir -p ${OUTPUT_DIR}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
## Flag Processing
|
|
39
|
-
|
|
40
|
-
| Flag | Default | Effect |
|
|
41
|
-
|------|---------|--------|
|
|
42
|
-
| `--styles N` | 3 | Number of style variants (2-5) |
|
|
43
|
-
| `--layouts N` | 2 | Layout variants per target (1-3) |
|
|
44
|
-
| `--stack <stack>` | html-tailwind | Tech stack for guidelines |
|
|
45
|
-
| `--targets <pages>` | (inferred) | Comma-separated page/component targets |
|
|
46
|
-
| `--refine` | false | Refinement mode: fine-tune existing design-ref |
|
|
47
|
-
| `--persist` | false | Save MASTER.md + page overrides |
|
|
48
|
-
| `-y` | false | Auto mode: skip interactive selection |
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
### Step 1: Parse Arguments & Validate Environment
|
|
53
|
-
|
|
54
|
-
**1a. Parse flags:**
|
|
55
|
-
Extract from $ARGUMENTS per flag table above (styleCount clamped 2-5, layoutCount clamped 1-3, defaults applied).
|
|
56
|
-
|
|
57
|
-
**1b. Validate Python & locate ui-ux-pro-max:**
|
|
58
|
-
Require Python 3. Locate `search.py` in: `skills/ui-ux-pro-max/scripts/search.py` or `$HOME/.claude/plugins/cache/ui-ux-pro-max-skill/ui-ux-pro-max/*/scripts/search.py`. If not found: **Error E003**.
|
|
59
|
-
|
|
60
|
-
**1c. Refinement mode validation:**
|
|
61
|
-
If `--refine` but `${PHASE_DIR}/design-ref/design-tokens.json` missing: **Error E004**.
|
|
62
|
-
|
|
63
|
-
**1d. Create output directories:**
|
|
64
|
-
```bash
|
|
65
|
-
mkdir -p "${PHASE_DIR}/design-ref/prototypes"
|
|
66
|
-
mkdir -p "${PHASE_DIR}/design-ref/layout-templates"
|
|
67
|
-
mkdir -p "${PHASE_DIR}/design-ref/.intermediates/style-analysis"
|
|
68
|
-
mkdir -p "${PHASE_DIR}/design-ref/.intermediates/layout-analysis"
|
|
69
|
-
mkdir -p "${PHASE_DIR}/design-ref/variants"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**1e. Display banner:**
|
|
73
|
-
Show: phase/topic, mode (explore|refine), styleCount, layoutCount, stack, targets, auto flag.
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
### Step 2: Gather Requirements Context
|
|
78
|
-
|
|
79
|
-
**Purpose:** Collect design-relevant context from existing artifacts.
|
|
80
|
-
|
|
81
|
-
Gather from available sources:
|
|
82
|
-
- **2a.** `${PHASE_DIR}/context.md` -- product type, industry, audience, design preferences, locked UI decisions
|
|
83
|
-
- **2b.** `${PHASE_DIR}/brainstorm/ui-designer/analysis.md`, `${PHASE_DIR}/brainstorm/product-manager/analysis.md` (visual keywords, personas)
|
|
84
|
-
- **2c.** `blueprint-summary.md` + `requirements/_index.md` (if index.json.blueprint_ref) -- UI-relevant requirements & acceptance criteria
|
|
85
|
-
- **2d.** `.workflow/codebase/doc-index.json` -- existing design tokens, CSS frameworks, component libraries, brand colors
|
|
86
|
-
|
|
87
|
-
**2e. Synthesize design brief:**
|
|
88
|
-
```json
|
|
89
|
-
DESIGN_BRIEF = {
|
|
90
|
-
"product_type": "SaaS dashboard | e-commerce | landing page | ...",
|
|
91
|
-
"industry": "fintech | healthcare | beauty | ...",
|
|
92
|
-
"style_keywords": "modern minimalist professional | bold geometric | ...",
|
|
93
|
-
"audience": "enterprise users | young consumers | ...",
|
|
94
|
-
"constraints": { "brand_colors": [], "existing_components": [], "accessibility": "WCAG AA" },
|
|
95
|
-
"stack": "{resolved stack}"
|
|
96
|
-
}
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
**2f. Infer targets** (if not specified):
|
|
100
|
-
Extract page names from phase goal / brainstorm / spec epics. Fallback: `["home"]`.
|
|
101
|
-
|
|
102
|
-
**2g. Interactive refinement** (skip if -y):
|
|
103
|
-
Present DESIGN_BRIEF summary, allow user adjustments before proceeding.
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
### Step 3: Generate Style Variants (Layer 1 — Style)
|
|
108
|
-
|
|
109
|
-
**Purpose:** Generate maximally contrasting design systems via ui-ux-pro-max + ui-design-agent.
|
|
110
|
-
|
|
111
|
-
#### 3a. Get primary design recommendations from ui-ux-pro-max
|
|
112
|
-
|
|
113
|
-
```bash
|
|
114
|
-
# Primary design system + stack guidelines
|
|
115
|
-
python3 "${SKILL_PATH}" "${product_type} ${industry} ${style_keywords}" --design-system -p "${project_name}" -f markdown
|
|
116
|
-
python3 "${SKILL_PATH}" "layout responsive form component" --stack ${stack}
|
|
117
|
-
|
|
118
|
-
# Supplementary domain data (parallel): color, typography, ux
|
|
119
|
-
python3 "${SKILL_PATH}" "${industry} ${product_type}" --domain color
|
|
120
|
-
python3 "${SKILL_PATH}" "${style_keywords}" --domain typography
|
|
121
|
-
python3 "${SKILL_PATH}" "accessibility animation interaction" --domain ux
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
#### 3b. Generate design direction options via ui-design-agent
|
|
125
|
-
|
|
126
|
-
```
|
|
127
|
-
Agent(ui-design-agent): [DESIGN_DIRECTION_GENERATION]
|
|
128
|
-
|
|
129
|
-
Generate ${styleCount} maximally contrasting design directions (min 6D distance: 0.7).
|
|
130
|
-
|
|
131
|
-
Input: DESIGN_BRIEF, ui-ux-pro-max recommendations, color/typography data.
|
|
132
|
-
If refine mode: also read existing design-tokens.json.
|
|
133
|
-
|
|
134
|
-
6D Attribute Space (each 0.0-1.0):
|
|
135
|
-
color_saturation | visual_weight | formality | organic_geometric | innovation | density
|
|
136
|
-
|
|
137
|
-
Per direction generate:
|
|
138
|
-
Core: philosophy_name, 6D scores, search_keywords, anti_keywords, rationale
|
|
139
|
-
Preview: colors (OKLCH), fonts (Google Fonts), border_radius_base, mood_description
|
|
140
|
-
|
|
141
|
-
Output: ${PHASE_DIR}/design-ref/.intermediates/style-analysis/analysis-options.json
|
|
142
|
-
Schema: { "mode": "explore|refine", "design_directions": [...], "attribute_space_coverage": {...} }
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
#### 3c. Interactive style selection (skip if -y)
|
|
146
|
-
|
|
147
|
-
Present directions with 6D visualization (colors, fonts, attribute scores, mood). Multi-select supported.
|
|
148
|
-
Update `analysis-options.json` with `user_selection` field.
|
|
149
|
-
|
|
150
|
-
#### 3d. Generate design-tokens.json for selected variant(s) (parallel)
|
|
151
|
-
|
|
152
|
-
For each selected direction, spawn ui-design-agent:
|
|
153
|
-
|
|
154
|
-
```
|
|
155
|
-
Agent(ui-design-agent): [DESIGN_SYSTEM_GENERATION #${variant_index}]
|
|
156
|
-
|
|
157
|
-
Generate production-ready design tokens from selected direction.
|
|
158
|
-
Map 6D attributes to token values:
|
|
159
|
-
color_saturation→chroma | visual_weight→weights/shadows | formality→serif choice/radius
|
|
160
|
-
organic_geometric→shapes | innovation→experimental values | density→spacing compression
|
|
161
|
-
|
|
162
|
-
Output: ${PHASE_DIR}/design-ref/variants/style-${variant_index}/design-tokens.json
|
|
163
|
-
|
|
164
|
-
Required schema:
|
|
165
|
-
{
|
|
166
|
-
"colors": {
|
|
167
|
-
"brand": { "primary|secondary|accent": "oklch(...)" },
|
|
168
|
-
"surface": { "background|elevated|card|overlay": "oklch(...)" },
|
|
169
|
-
"semantic": { "success|warning|error|info": "oklch(...)" },
|
|
170
|
-
"text": { "primary|secondary|tertiary|inverse": "oklch(...)" },
|
|
171
|
-
"border": { "default|strong|subtle": "oklch(...)" }
|
|
172
|
-
},
|
|
173
|
-
"typography": {
|
|
174
|
-
"font_family": { "heading|body|mono": "..." },
|
|
175
|
-
"font_size": { "xs..5xl": "rem scale" },
|
|
176
|
-
"font_weight": { "normal(400)|medium(500)|semibold(600)|bold(700)" },
|
|
177
|
-
"line_height": { "tight(1.25)|normal(1.5)|relaxed(1.75)" },
|
|
178
|
-
"letter_spacing": { "tight(-0.025em)|normal(0)|wide(0.025em)|wider(0.05em)" },
|
|
179
|
-
"combinations": { "heading-primary|heading-secondary|body-regular|body-emphasis|caption|label": "{family,size,weight,line_height,letter_spacing}" }
|
|
180
|
-
},
|
|
181
|
-
"spacing": { "0..24": "rem scale (0.25rem increments)" },
|
|
182
|
-
"opacity": { "0..100": "0.0-1.0 scale" },
|
|
183
|
-
"border_radius": { "none|sm|md|lg|xl|2xl|full": "0-9999px" },
|
|
184
|
-
"shadows": { "sm|md|lg|xl": "oklch shadow values" },
|
|
185
|
-
"component_styles": {
|
|
186
|
-
"button": { "primary|secondary|tertiary": "{bg, color, padding, radius, weight}" },
|
|
187
|
-
"card": { "default|interactive": "{bg, padding, radius, shadow}" },
|
|
188
|
-
"input": { "default|focus|error": "{border, padding, radius}" }
|
|
189
|
-
},
|
|
190
|
-
"breakpoints": { "sm(640)|md(768)|lg(1024)|xl(1280)|2xl(1536)": "px" }
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
Requirements: ALL colors OKLCH, WCAG AA (4.5:1 text, 3:1 UI), complete combinations + component_styles with var() refs, full opacity scale.
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
---
|
|
197
|
-
|
|
198
|
-
### Step 4: Generate Animation Tokens (Layer 2 — Animation)
|
|
199
|
-
|
|
200
|
-
**Purpose:** Generate animation system complementing the selected styles.
|
|
201
|
-
|
|
202
|
-
```
|
|
203
|
-
Agent(ui-design-agent): [ANIMATION_SYSTEM_GENERATION]
|
|
204
|
-
|
|
205
|
-
Input: selected variant's design-tokens.json (mood/weight context) + ui-ux-pro-max UX data.
|
|
206
|
-
Output: ${PHASE_DIR}/design-ref/animation-tokens.json
|
|
207
|
-
|
|
208
|
-
Schema:
|
|
209
|
-
{
|
|
210
|
-
"duration": { "instant(0ms)|fast(100ms)|normal(200ms)|slow(300ms)|slower(500ms)|slowest(1000ms)" },
|
|
211
|
-
"easing": { "linear|ease-out|ease-in|ease-in-out|spring": "cubic-bezier values" },
|
|
212
|
-
"transitions": { "color|transform|opacity|shadow|all": "property + duration + easing var() refs" },
|
|
213
|
-
"keyframes": { "fadeIn|slideUp|scaleIn": "from/to with transform + opacity" },
|
|
214
|
-
"interactions": { "button-hover|card-hover|link-hover": "transform + shadow + transition var() refs" },
|
|
215
|
-
"reduced_motion": { "strategy": "remove-motion-keep-opacity", "media_query": "@media (prefers-reduced-motion: reduce)" }
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
Requirements: CSS custom properties, prefers-reduced-motion mandatory, var() refs for interactions, 100-300ms micro / up to 1000ms page transitions.
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
### Step 5: Generate Layout Templates (Layer 3 — Layout)
|
|
224
|
-
|
|
225
|
-
**Purpose:** Generate structural layout templates per target, separate from visual style.
|
|
226
|
-
|
|
227
|
-
#### 5a. Generate layout concept options
|
|
228
|
-
|
|
229
|
-
```
|
|
230
|
-
Agent(ui-design-agent): [LAYOUT_CONCEPT_GENERATION]
|
|
231
|
-
|
|
232
|
-
Generate ${layoutCount} structurally distinct layout concepts per target.
|
|
233
|
-
Concepts must differ in: grid structure, component arrangement, visual hierarchy, navigation pattern.
|
|
234
|
-
|
|
235
|
-
Per Target x Concept: concept_name, design_philosophy, layout_pattern (grid-3col|flex-row|single-column|asymmetric-grid),
|
|
236
|
-
key_components, structural_features, ascii_art wireframe.
|
|
237
|
-
|
|
238
|
-
Output: ${PHASE_DIR}/design-ref/.intermediates/layout-analysis/analysis-options.json
|
|
239
|
-
Schema: { "layout_concepts": { "${target}": [concepts] }, "device_type": "responsive" }
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
#### 5b. Interactive layout selection (skip if -y)
|
|
243
|
-
|
|
244
|
-
Present layout concepts per target with ASCII wireframes. Multi-select supported.
|
|
245
|
-
Update analysis-options.json with `user_selection.selected_variants`.
|
|
246
|
-
|
|
247
|
-
#### 5c. Generate layout template files (parallel)
|
|
248
|
-
|
|
249
|
-
For each selected concept × target:
|
|
250
|
-
|
|
251
|
-
```
|
|
252
|
-
Agent(ui-design-agent): [LAYOUT_TEMPLATE_GENERATION -- ${target} variant ${variant_id}]
|
|
253
|
-
|
|
254
|
-
Structure ONLY, no visual style. Output: ${PHASE_DIR}/design-ref/layout-templates/layout-${target}-${variant_id}.json
|
|
255
|
-
|
|
256
|
-
Schema:
|
|
257
|
-
{
|
|
258
|
-
"target": "${target}",
|
|
259
|
-
"variant_id": "layout-${variant_id}",
|
|
260
|
-
"device_type": "responsive",
|
|
261
|
-
"design_philosophy": "...",
|
|
262
|
-
"dom_structure": { "tag": "body", "children": [header>nav, div.layout-main-wrapper>[main+aside], footer] },
|
|
263
|
-
"component_hierarchy": ["header", "main-content", "sidebar", "footer"],
|
|
264
|
-
"css_layout_rules": "grid/flex rules using var(--spacing-*), var(--breakpoint-*)"
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
Rules: semantic HTML5, ARIA roles, var() refs only (no hard-coded values), mobile-first responsive. NO colors/fonts/shadows.
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
---
|
|
271
|
-
|
|
272
|
-
### Step 6: Assemble HTML Prototypes (Layer 4 — Assembly)
|
|
273
|
-
|
|
274
|
-
**Purpose:** Combine layout templates + design tokens + animation tokens into viewable HTML.
|
|
275
|
-
|
|
276
|
-
For each `style × layout × target` combination, spawn ui-design-agent:
|
|
277
|
-
|
|
278
|
-
```
|
|
279
|
-
Agent(ui-design-agent): [PROTOTYPE_ASSEMBLY -- ${target}-style-${s}-layout-${l}]
|
|
280
|
-
|
|
281
|
-
Pure assembly: combine pre-extracted structure + tokens. NO design decisions.
|
|
282
|
-
|
|
283
|
-
Inputs: layout-${target}-${l}.json + style-${s}/design-tokens.json + animation-tokens.json
|
|
284
|
-
|
|
285
|
-
Assembly:
|
|
286
|
-
HTML: dom_structure -> <!DOCTYPE html>, Google Fonts CDN, realistic content (not lorem ipsum), ARIA preserved
|
|
287
|
-
CSS: css_layout_rules + resolved token values (colors, typography, shadows, radius) +
|
|
288
|
-
component_styles + typography.combinations + animation keyframes/interactions + reduced-motion
|
|
289
|
-
|
|
290
|
-
Quality: SVG icons (not emojis), cursor-pointer on clickables, 150-300ms transitions,
|
|
291
|
-
4.5:1 contrast, prefers-reduced-motion, responsive (375/768/1024/1440px)
|
|
292
|
-
|
|
293
|
-
Output: ${PHASE_DIR}/design-ref/prototypes/${target}-style-${s}-layout-${l}.{html,css}
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
**Agent grouping**: Max 6 concurrent agents. Each agent processes ONE style (may handle multiple layouts).
|
|
297
|
-
|
|
298
|
-
**Generate compare.html**: Interactive matrix viewer with:
|
|
299
|
-
- Style tabs × Layout tabs × Target tabs
|
|
300
|
-
- Each cell: iframe loading the corresponding HTML
|
|
301
|
-
- Side-by-side comparison mode
|
|
302
|
-
|
|
303
|
-
---
|
|
304
|
-
|
|
305
|
-
### Step 7: User Selection & Solidification
|
|
306
|
-
|
|
307
|
-
**Purpose:** Present variants, collect user choice, solidify as canonical reference.
|
|
308
|
-
|
|
309
|
-
#### 7a. Present overview
|
|
310
|
-
|
|
311
|
-
Present S x L x T matrix overview with compare.html link. Per style: name, colors, fonts, 6D scores.
|
|
312
|
-
Selection options: `1-N` (select), `mix` (merge), `redo` (regenerate), `all` (keep all).
|
|
313
|
-
|
|
314
|
-
#### 7b. Process selection
|
|
315
|
-
|
|
316
|
-
Auto mode (-y): select variant 1. Otherwise: `redo` -> Step 3, `mix` -> merge tokens, `all` -> keep all, number -> select that variant.
|
|
317
|
-
|
|
318
|
-
#### 7c. Solidify selected design
|
|
319
|
-
|
|
320
|
-
**Write MASTER.md:**
|
|
321
|
-
Sections: Selected Style (6D attributes), Color Palette (token table), Typography (fonts/scale/combinations),
|
|
322
|
-
Spacing & Layout, Effects & Interactions, Component Styles, Animation System, Anti-Patterns, Reference Prototypes.
|
|
323
|
-
|
|
324
|
-
**Copy canonical files:**
|
|
325
|
-
- `design-ref/design-tokens.json` ← selected variant's tokens
|
|
326
|
-
- `design-ref/animation-tokens.json` ← already at root
|
|
327
|
-
- `design-ref/layout-templates/` ← already populated
|
|
328
|
-
|
|
329
|
-
**Write selection.json:**
|
|
330
|
-
```json
|
|
331
|
-
{
|
|
332
|
-
"selected_variant": 1,
|
|
333
|
-
"variant_name": "Clean Minimalist",
|
|
334
|
-
"selection_mode": "user_choice|auto|mix|all",
|
|
335
|
-
"rationale": "...",
|
|
336
|
-
"design_attributes": { "color_saturation": 0.3, "visual_weight": 0.2, "...": "..." },
|
|
337
|
-
"alternatives_reviewed": 3,
|
|
338
|
-
"selected_at": "ISO timestamp"
|
|
339
|
-
}
|
|
340
|
-
```
|
|
341
|
-
|
|
342
|
-
**Write page-specific overrides** (if --persist):
|
|
343
|
-
`design-ref/pages/{target}.md` per target page.
|
|
344
|
-
|
|
345
|
-
**Update index.json:**
|
|
346
|
-
```json
|
|
347
|
-
{
|
|
348
|
-
"design_ref": {
|
|
349
|
-
"status": "selected",
|
|
350
|
-
"variant": "{variant_name}",
|
|
351
|
-
"master": "design-ref/MASTER.md",
|
|
352
|
-
"tokens": "design-ref/design-tokens.json",
|
|
353
|
-
"animation": "design-ref/animation-tokens.json",
|
|
354
|
-
"layouts": "design-ref/layout-templates/",
|
|
355
|
-
"prototypes": "design-ref/prototypes/",
|
|
356
|
-
"created_at": "ISO timestamp"
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
```
|
|
360
|
-
|
|
361
|
-
---
|
|
362
|
-
|
|
363
|
-
## Integration with maestro-plan
|
|
364
|
-
|
|
365
|
-
`maestro-plan` P1 (Context Collection):
|
|
366
|
-
- If `${PHASE_DIR}/design-ref/MASTER.md` exists: load as planner context, add `design-tokens.json`, `layout-templates/layout-*.json`, `animation-tokens.json` to UI task `read_first[]`
|
|
367
|
-
- If missing + phase goal has UI keywords: suggest `maestro-impeccable --chain build` (non-blocking)
|
|
368
|
-
|
|
369
|
-
---
|
|
370
|
-
|
|
371
|
-
## Error Handling
|
|
372
|
-
|
|
373
|
-
| Error | Action |
|
|
374
|
-
|-------|--------|
|
|
375
|
-
| Python not found | Abort with install instructions per OS |
|
|
376
|
-
| ui-ux-pro-max not found | Abort, suggest skill installation |
|
|
377
|
-
| Design system returns empty | Retry with broader keywords, then abort |
|
|
378
|
-
| Prototype agent fails | Log error, continue with other variants |
|
|
379
|
-
| User cancels selection | Save all variants as-is, exit without MASTER.md |
|
|
380
|
-
| --refine without existing design-ref | Error E004 |
|
|
381
|
-
|
|
382
|
-
---
|
|
383
|
-
|
|
384
|
-
## State Updates
|
|
385
|
-
|
|
386
|
-
| When | Field | Value |
|
|
387
|
-
|------|-------|-------|
|
|
388
|
-
| Step 1 start | index.json.status | "designing" |
|
|
389
|
-
| Step 6 complete | index.json.design_ref.status | "variants_ready" |
|
|
390
|
-
| Step 7 complete | index.json.design_ref.status | "selected" |
|
|
391
|
-
| Step 7 complete | index.json.updated_at | Current timestamp |
|
|
1
|
+
# UI Design Workflow
|
|
2
|
+
|
|
3
|
+
4-layer extraction pipeline (style → animation → layout → assembly) producing design prototypes.
|
|
4
|
+
Powered by ui-ux-pro-max (design system recommendations) and ui-design-agent (token generation + assembly).
|
|
5
|
+
User reviews via compare.html, selects winner(s), design solidified as code reference for plan/execute.
|
|
6
|
+
|
|
7
|
+
Pipeline position: analyze -> **ui-design** -> plan -> execute -> verify
|
|
8
|
+
|
|
9
|
+
> **Note:** This is the primary implementation. When the `ui-ux-pro-max` skill is available,
|
|
10
|
+
> the command may delegate to `ui-style.md` for a lightweight path. This workflow is the
|
|
11
|
+
> fallback when the skill is unavailable, and is also used when `--full` is explicitly requested.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- `.workflow/` directory initialized (or auto-bootstrap)
|
|
18
|
+
- Python 3 available (required by ui-ux-pro-max skill)
|
|
19
|
+
- ui-ux-pro-max skill installed (search.py available)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Scope Resolution
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Input: <phase> (number) OR topic text
|
|
27
|
+
Output: .workflow/scratch/{YYYYMMDD}-ui-design-{slug}/
|
|
28
|
+
|
|
29
|
+
Resolve scope:
|
|
30
|
+
number → phase slug from roadmap.md, scope="phase", register with phase
|
|
31
|
+
text → slugify(topic), scope="adhoc"|"standalone" (based on current_milestone)
|
|
32
|
+
|
|
33
|
+
mkdir -p ${OUTPUT_DIR}
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Flag Processing
|
|
39
|
+
|
|
40
|
+
| Flag | Default | Effect |
|
|
41
|
+
|------|---------|--------|
|
|
42
|
+
| `--styles N` | 3 | Number of style variants (2-5) |
|
|
43
|
+
| `--layouts N` | 2 | Layout variants per target (1-3) |
|
|
44
|
+
| `--stack <stack>` | html-tailwind | Tech stack for guidelines |
|
|
45
|
+
| `--targets <pages>` | (inferred) | Comma-separated page/component targets |
|
|
46
|
+
| `--refine` | false | Refinement mode: fine-tune existing design-ref |
|
|
47
|
+
| `--persist` | false | Save MASTER.md + page overrides |
|
|
48
|
+
| `-y` | false | Auto mode: skip interactive selection |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
### Step 1: Parse Arguments & Validate Environment
|
|
53
|
+
|
|
54
|
+
**1a. Parse flags:**
|
|
55
|
+
Extract from $ARGUMENTS per flag table above (styleCount clamped 2-5, layoutCount clamped 1-3, defaults applied).
|
|
56
|
+
|
|
57
|
+
**1b. Validate Python & locate ui-ux-pro-max:**
|
|
58
|
+
Require Python 3. Locate `search.py` in: `skills/ui-ux-pro-max/scripts/search.py` or `$HOME/.claude/plugins/cache/ui-ux-pro-max-skill/ui-ux-pro-max/*/scripts/search.py`. If not found: **Error E003**.
|
|
59
|
+
|
|
60
|
+
**1c. Refinement mode validation:**
|
|
61
|
+
If `--refine` but `${PHASE_DIR}/design-ref/design-tokens.json` missing: **Error E004**.
|
|
62
|
+
|
|
63
|
+
**1d. Create output directories:**
|
|
64
|
+
```bash
|
|
65
|
+
mkdir -p "${PHASE_DIR}/design-ref/prototypes"
|
|
66
|
+
mkdir -p "${PHASE_DIR}/design-ref/layout-templates"
|
|
67
|
+
mkdir -p "${PHASE_DIR}/design-ref/.intermediates/style-analysis"
|
|
68
|
+
mkdir -p "${PHASE_DIR}/design-ref/.intermediates/layout-analysis"
|
|
69
|
+
mkdir -p "${PHASE_DIR}/design-ref/variants"
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**1e. Display banner:**
|
|
73
|
+
Show: phase/topic, mode (explore|refine), styleCount, layoutCount, stack, targets, auto flag.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
### Step 2: Gather Requirements Context
|
|
78
|
+
|
|
79
|
+
**Purpose:** Collect design-relevant context from existing artifacts.
|
|
80
|
+
|
|
81
|
+
Gather from available sources:
|
|
82
|
+
- **2a.** `${PHASE_DIR}/context.md` -- product type, industry, audience, design preferences, locked UI decisions
|
|
83
|
+
- **2b.** `${PHASE_DIR}/brainstorm/ui-designer/analysis.md`, `${PHASE_DIR}/brainstorm/product-manager/analysis.md` (visual keywords, personas)
|
|
84
|
+
- **2c.** `blueprint-summary.md` + `requirements/_index.md` (if index.json.blueprint_ref) -- UI-relevant requirements & acceptance criteria
|
|
85
|
+
- **2d.** `.workflow/codebase/doc-index.json` -- existing design tokens, CSS frameworks, component libraries, brand colors
|
|
86
|
+
|
|
87
|
+
**2e. Synthesize design brief:**
|
|
88
|
+
```json
|
|
89
|
+
DESIGN_BRIEF = {
|
|
90
|
+
"product_type": "SaaS dashboard | e-commerce | landing page | ...",
|
|
91
|
+
"industry": "fintech | healthcare | beauty | ...",
|
|
92
|
+
"style_keywords": "modern minimalist professional | bold geometric | ...",
|
|
93
|
+
"audience": "enterprise users | young consumers | ...",
|
|
94
|
+
"constraints": { "brand_colors": [], "existing_components": [], "accessibility": "WCAG AA" },
|
|
95
|
+
"stack": "{resolved stack}"
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**2f. Infer targets** (if not specified):
|
|
100
|
+
Extract page names from phase goal / brainstorm / spec epics. Fallback: `["home"]`.
|
|
101
|
+
|
|
102
|
+
**2g. Interactive refinement** (skip if -y):
|
|
103
|
+
Present DESIGN_BRIEF summary, allow user adjustments before proceeding.
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
### Step 3: Generate Style Variants (Layer 1 — Style)
|
|
108
|
+
|
|
109
|
+
**Purpose:** Generate maximally contrasting design systems via ui-ux-pro-max + ui-design-agent.
|
|
110
|
+
|
|
111
|
+
#### 3a. Get primary design recommendations from ui-ux-pro-max
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Primary design system + stack guidelines
|
|
115
|
+
python3 "${SKILL_PATH}" "${product_type} ${industry} ${style_keywords}" --design-system -p "${project_name}" -f markdown
|
|
116
|
+
python3 "${SKILL_PATH}" "layout responsive form component" --stack ${stack}
|
|
117
|
+
|
|
118
|
+
# Supplementary domain data (parallel): color, typography, ux
|
|
119
|
+
python3 "${SKILL_PATH}" "${industry} ${product_type}" --domain color
|
|
120
|
+
python3 "${SKILL_PATH}" "${style_keywords}" --domain typography
|
|
121
|
+
python3 "${SKILL_PATH}" "accessibility animation interaction" --domain ux
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### 3b. Generate design direction options via ui-design-agent
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
Agent(ui-design-agent): [DESIGN_DIRECTION_GENERATION]
|
|
128
|
+
|
|
129
|
+
Generate ${styleCount} maximally contrasting design directions (min 6D distance: 0.7).
|
|
130
|
+
|
|
131
|
+
Input: DESIGN_BRIEF, ui-ux-pro-max recommendations, color/typography data.
|
|
132
|
+
If refine mode: also read existing design-tokens.json.
|
|
133
|
+
|
|
134
|
+
6D Attribute Space (each 0.0-1.0):
|
|
135
|
+
color_saturation | visual_weight | formality | organic_geometric | innovation | density
|
|
136
|
+
|
|
137
|
+
Per direction generate:
|
|
138
|
+
Core: philosophy_name, 6D scores, search_keywords, anti_keywords, rationale
|
|
139
|
+
Preview: colors (OKLCH), fonts (Google Fonts), border_radius_base, mood_description
|
|
140
|
+
|
|
141
|
+
Output: ${PHASE_DIR}/design-ref/.intermediates/style-analysis/analysis-options.json
|
|
142
|
+
Schema: { "mode": "explore|refine", "design_directions": [...], "attribute_space_coverage": {...} }
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
#### 3c. Interactive style selection (skip if -y)
|
|
146
|
+
|
|
147
|
+
Present directions with 6D visualization (colors, fonts, attribute scores, mood). Multi-select supported.
|
|
148
|
+
Update `analysis-options.json` with `user_selection` field.
|
|
149
|
+
|
|
150
|
+
#### 3d. Generate design-tokens.json for selected variant(s) (parallel)
|
|
151
|
+
|
|
152
|
+
For each selected direction, spawn ui-design-agent:
|
|
153
|
+
|
|
154
|
+
```
|
|
155
|
+
Agent(ui-design-agent): [DESIGN_SYSTEM_GENERATION #${variant_index}]
|
|
156
|
+
|
|
157
|
+
Generate production-ready design tokens from selected direction.
|
|
158
|
+
Map 6D attributes to token values:
|
|
159
|
+
color_saturation→chroma | visual_weight→weights/shadows | formality→serif choice/radius
|
|
160
|
+
organic_geometric→shapes | innovation→experimental values | density→spacing compression
|
|
161
|
+
|
|
162
|
+
Output: ${PHASE_DIR}/design-ref/variants/style-${variant_index}/design-tokens.json
|
|
163
|
+
|
|
164
|
+
Required schema:
|
|
165
|
+
{
|
|
166
|
+
"colors": {
|
|
167
|
+
"brand": { "primary|secondary|accent": "oklch(...)" },
|
|
168
|
+
"surface": { "background|elevated|card|overlay": "oklch(...)" },
|
|
169
|
+
"semantic": { "success|warning|error|info": "oklch(...)" },
|
|
170
|
+
"text": { "primary|secondary|tertiary|inverse": "oklch(...)" },
|
|
171
|
+
"border": { "default|strong|subtle": "oklch(...)" }
|
|
172
|
+
},
|
|
173
|
+
"typography": {
|
|
174
|
+
"font_family": { "heading|body|mono": "..." },
|
|
175
|
+
"font_size": { "xs..5xl": "rem scale" },
|
|
176
|
+
"font_weight": { "normal(400)|medium(500)|semibold(600)|bold(700)" },
|
|
177
|
+
"line_height": { "tight(1.25)|normal(1.5)|relaxed(1.75)" },
|
|
178
|
+
"letter_spacing": { "tight(-0.025em)|normal(0)|wide(0.025em)|wider(0.05em)" },
|
|
179
|
+
"combinations": { "heading-primary|heading-secondary|body-regular|body-emphasis|caption|label": "{family,size,weight,line_height,letter_spacing}" }
|
|
180
|
+
},
|
|
181
|
+
"spacing": { "0..24": "rem scale (0.25rem increments)" },
|
|
182
|
+
"opacity": { "0..100": "0.0-1.0 scale" },
|
|
183
|
+
"border_radius": { "none|sm|md|lg|xl|2xl|full": "0-9999px" },
|
|
184
|
+
"shadows": { "sm|md|lg|xl": "oklch shadow values" },
|
|
185
|
+
"component_styles": {
|
|
186
|
+
"button": { "primary|secondary|tertiary": "{bg, color, padding, radius, weight}" },
|
|
187
|
+
"card": { "default|interactive": "{bg, padding, radius, shadow}" },
|
|
188
|
+
"input": { "default|focus|error": "{border, padding, radius}" }
|
|
189
|
+
},
|
|
190
|
+
"breakpoints": { "sm(640)|md(768)|lg(1024)|xl(1280)|2xl(1536)": "px" }
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
Requirements: ALL colors OKLCH, WCAG AA (4.5:1 text, 3:1 UI), complete combinations + component_styles with var() refs, full opacity scale.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
### Step 4: Generate Animation Tokens (Layer 2 — Animation)
|
|
199
|
+
|
|
200
|
+
**Purpose:** Generate animation system complementing the selected styles.
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
Agent(ui-design-agent): [ANIMATION_SYSTEM_GENERATION]
|
|
204
|
+
|
|
205
|
+
Input: selected variant's design-tokens.json (mood/weight context) + ui-ux-pro-max UX data.
|
|
206
|
+
Output: ${PHASE_DIR}/design-ref/animation-tokens.json
|
|
207
|
+
|
|
208
|
+
Schema:
|
|
209
|
+
{
|
|
210
|
+
"duration": { "instant(0ms)|fast(100ms)|normal(200ms)|slow(300ms)|slower(500ms)|slowest(1000ms)" },
|
|
211
|
+
"easing": { "linear|ease-out|ease-in|ease-in-out|spring": "cubic-bezier values" },
|
|
212
|
+
"transitions": { "color|transform|opacity|shadow|all": "property + duration + easing var() refs" },
|
|
213
|
+
"keyframes": { "fadeIn|slideUp|scaleIn": "from/to with transform + opacity" },
|
|
214
|
+
"interactions": { "button-hover|card-hover|link-hover": "transform + shadow + transition var() refs" },
|
|
215
|
+
"reduced_motion": { "strategy": "remove-motion-keep-opacity", "media_query": "@media (prefers-reduced-motion: reduce)" }
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
Requirements: CSS custom properties, prefers-reduced-motion mandatory, var() refs for interactions, 100-300ms micro / up to 1000ms page transitions.
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### Step 5: Generate Layout Templates (Layer 3 — Layout)
|
|
224
|
+
|
|
225
|
+
**Purpose:** Generate structural layout templates per target, separate from visual style.
|
|
226
|
+
|
|
227
|
+
#### 5a. Generate layout concept options
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
Agent(ui-design-agent): [LAYOUT_CONCEPT_GENERATION]
|
|
231
|
+
|
|
232
|
+
Generate ${layoutCount} structurally distinct layout concepts per target.
|
|
233
|
+
Concepts must differ in: grid structure, component arrangement, visual hierarchy, navigation pattern.
|
|
234
|
+
|
|
235
|
+
Per Target x Concept: concept_name, design_philosophy, layout_pattern (grid-3col|flex-row|single-column|asymmetric-grid),
|
|
236
|
+
key_components, structural_features, ascii_art wireframe.
|
|
237
|
+
|
|
238
|
+
Output: ${PHASE_DIR}/design-ref/.intermediates/layout-analysis/analysis-options.json
|
|
239
|
+
Schema: { "layout_concepts": { "${target}": [concepts] }, "device_type": "responsive" }
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
#### 5b. Interactive layout selection (skip if -y)
|
|
243
|
+
|
|
244
|
+
Present layout concepts per target with ASCII wireframes. Multi-select supported.
|
|
245
|
+
Update analysis-options.json with `user_selection.selected_variants`.
|
|
246
|
+
|
|
247
|
+
#### 5c. Generate layout template files (parallel)
|
|
248
|
+
|
|
249
|
+
For each selected concept × target:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
Agent(ui-design-agent): [LAYOUT_TEMPLATE_GENERATION -- ${target} variant ${variant_id}]
|
|
253
|
+
|
|
254
|
+
Structure ONLY, no visual style. Output: ${PHASE_DIR}/design-ref/layout-templates/layout-${target}-${variant_id}.json
|
|
255
|
+
|
|
256
|
+
Schema:
|
|
257
|
+
{
|
|
258
|
+
"target": "${target}",
|
|
259
|
+
"variant_id": "layout-${variant_id}",
|
|
260
|
+
"device_type": "responsive",
|
|
261
|
+
"design_philosophy": "...",
|
|
262
|
+
"dom_structure": { "tag": "body", "children": [header>nav, div.layout-main-wrapper>[main+aside], footer] },
|
|
263
|
+
"component_hierarchy": ["header", "main-content", "sidebar", "footer"],
|
|
264
|
+
"css_layout_rules": "grid/flex rules using var(--spacing-*), var(--breakpoint-*)"
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
Rules: semantic HTML5, ARIA roles, var() refs only (no hard-coded values), mobile-first responsive. NO colors/fonts/shadows.
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
### Step 6: Assemble HTML Prototypes (Layer 4 — Assembly)
|
|
273
|
+
|
|
274
|
+
**Purpose:** Combine layout templates + design tokens + animation tokens into viewable HTML.
|
|
275
|
+
|
|
276
|
+
For each `style × layout × target` combination, spawn ui-design-agent:
|
|
277
|
+
|
|
278
|
+
```
|
|
279
|
+
Agent(ui-design-agent): [PROTOTYPE_ASSEMBLY -- ${target}-style-${s}-layout-${l}]
|
|
280
|
+
|
|
281
|
+
Pure assembly: combine pre-extracted structure + tokens. NO design decisions.
|
|
282
|
+
|
|
283
|
+
Inputs: layout-${target}-${l}.json + style-${s}/design-tokens.json + animation-tokens.json
|
|
284
|
+
|
|
285
|
+
Assembly:
|
|
286
|
+
HTML: dom_structure -> <!DOCTYPE html>, Google Fonts CDN, realistic content (not lorem ipsum), ARIA preserved
|
|
287
|
+
CSS: css_layout_rules + resolved token values (colors, typography, shadows, radius) +
|
|
288
|
+
component_styles + typography.combinations + animation keyframes/interactions + reduced-motion
|
|
289
|
+
|
|
290
|
+
Quality: SVG icons (not emojis), cursor-pointer on clickables, 150-300ms transitions,
|
|
291
|
+
4.5:1 contrast, prefers-reduced-motion, responsive (375/768/1024/1440px)
|
|
292
|
+
|
|
293
|
+
Output: ${PHASE_DIR}/design-ref/prototypes/${target}-style-${s}-layout-${l}.{html,css}
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
**Agent grouping**: Max 6 concurrent agents. Each agent processes ONE style (may handle multiple layouts).
|
|
297
|
+
|
|
298
|
+
**Generate compare.html**: Interactive matrix viewer with:
|
|
299
|
+
- Style tabs × Layout tabs × Target tabs
|
|
300
|
+
- Each cell: iframe loading the corresponding HTML
|
|
301
|
+
- Side-by-side comparison mode
|
|
302
|
+
|
|
303
|
+
---
|
|
304
|
+
|
|
305
|
+
### Step 7: User Selection & Solidification
|
|
306
|
+
|
|
307
|
+
**Purpose:** Present variants, collect user choice, solidify as canonical reference.
|
|
308
|
+
|
|
309
|
+
#### 7a. Present overview
|
|
310
|
+
|
|
311
|
+
Present S x L x T matrix overview with compare.html link. Per style: name, colors, fonts, 6D scores.
|
|
312
|
+
Selection options: `1-N` (select), `mix` (merge), `redo` (regenerate), `all` (keep all).
|
|
313
|
+
|
|
314
|
+
#### 7b. Process selection
|
|
315
|
+
|
|
316
|
+
Auto mode (-y): select variant 1. Otherwise: `redo` -> Step 3, `mix` -> merge tokens, `all` -> keep all, number -> select that variant.
|
|
317
|
+
|
|
318
|
+
#### 7c. Solidify selected design
|
|
319
|
+
|
|
320
|
+
**Write MASTER.md:**
|
|
321
|
+
Sections: Selected Style (6D attributes), Color Palette (token table), Typography (fonts/scale/combinations),
|
|
322
|
+
Spacing & Layout, Effects & Interactions, Component Styles, Animation System, Anti-Patterns, Reference Prototypes.
|
|
323
|
+
|
|
324
|
+
**Copy canonical files:**
|
|
325
|
+
- `design-ref/design-tokens.json` ← selected variant's tokens
|
|
326
|
+
- `design-ref/animation-tokens.json` ← already at root
|
|
327
|
+
- `design-ref/layout-templates/` ← already populated
|
|
328
|
+
|
|
329
|
+
**Write selection.json:**
|
|
330
|
+
```json
|
|
331
|
+
{
|
|
332
|
+
"selected_variant": 1,
|
|
333
|
+
"variant_name": "Clean Minimalist",
|
|
334
|
+
"selection_mode": "user_choice|auto|mix|all",
|
|
335
|
+
"rationale": "...",
|
|
336
|
+
"design_attributes": { "color_saturation": 0.3, "visual_weight": 0.2, "...": "..." },
|
|
337
|
+
"alternatives_reviewed": 3,
|
|
338
|
+
"selected_at": "ISO timestamp"
|
|
339
|
+
}
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
**Write page-specific overrides** (if --persist):
|
|
343
|
+
`design-ref/pages/{target}.md` per target page.
|
|
344
|
+
|
|
345
|
+
**Update index.json:**
|
|
346
|
+
```json
|
|
347
|
+
{
|
|
348
|
+
"design_ref": {
|
|
349
|
+
"status": "selected",
|
|
350
|
+
"variant": "{variant_name}",
|
|
351
|
+
"master": "design-ref/MASTER.md",
|
|
352
|
+
"tokens": "design-ref/design-tokens.json",
|
|
353
|
+
"animation": "design-ref/animation-tokens.json",
|
|
354
|
+
"layouts": "design-ref/layout-templates/",
|
|
355
|
+
"prototypes": "design-ref/prototypes/",
|
|
356
|
+
"created_at": "ISO timestamp"
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Integration with maestro-plan
|
|
364
|
+
|
|
365
|
+
`maestro-plan` P1 (Context Collection):
|
|
366
|
+
- If `${PHASE_DIR}/design-ref/MASTER.md` exists: load as planner context, add `design-tokens.json`, `layout-templates/layout-*.json`, `animation-tokens.json` to UI task `read_first[]`
|
|
367
|
+
- If missing + phase goal has UI keywords: suggest `maestro-impeccable --chain build` (non-blocking)
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Error Handling
|
|
372
|
+
|
|
373
|
+
| Error | Action |
|
|
374
|
+
|-------|--------|
|
|
375
|
+
| Python not found | Abort with install instructions per OS |
|
|
376
|
+
| ui-ux-pro-max not found | Abort, suggest skill installation |
|
|
377
|
+
| Design system returns empty | Retry with broader keywords, then abort |
|
|
378
|
+
| Prototype agent fails | Log error, continue with other variants |
|
|
379
|
+
| User cancels selection | Save all variants as-is, exit without MASTER.md |
|
|
380
|
+
| --refine without existing design-ref | Error E004 |
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## State Updates
|
|
385
|
+
|
|
386
|
+
| When | Field | Value |
|
|
387
|
+
|------|-------|-------|
|
|
388
|
+
| Step 1 start | index.json.status | "designing" |
|
|
389
|
+
| Step 6 complete | index.json.design_ref.status | "variants_ready" |
|
|
390
|
+
| Step 7 complete | index.json.design_ref.status | "selected" |
|
|
391
|
+
| Step 7 complete | index.json.updated_at | Current timestamp |
|