@exaudeus/workrail 3.13.0 → 3.15.0
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/dist/application/services/validation-engine.js +4 -9
- package/dist/application/services/workflow-compiler.js +4 -6
- package/dist/console/assets/index-BZYIjrzJ.js +28 -0
- package/dist/console/assets/index-OLCKbDdm.css +1 -0
- package/dist/console/index.html +2 -2
- package/dist/engine/engine-factory.js +2 -2
- package/dist/engine/types.d.ts +1 -1
- package/dist/manifest.json +63 -63
- package/dist/mcp/handlers/shared/request-workflow-reader.d.ts +5 -0
- package/dist/mcp/handlers/shared/request-workflow-reader.js +47 -2
- package/dist/mcp/handlers/v2-advance-core/assessment-consequences.d.ts +1 -1
- package/dist/mcp/handlers/v2-advance-core/assessment-consequences.js +4 -5
- package/dist/mcp/handlers/v2-advance-core/index.js +1 -1
- package/dist/mcp/handlers/v2-advance-core/outcome-blocked.js +1 -1
- package/dist/mcp/handlers/v2-execution/start.d.ts +1 -0
- package/dist/mcp/handlers/v2-execution/start.js +20 -1
- package/dist/mcp/handlers/v2-workflow.d.ts +23 -0
- package/dist/mcp/handlers/v2-workflow.js +177 -10
- package/dist/mcp/output-schemas.d.ts +202 -8
- package/dist/mcp/output-schemas.js +38 -11
- package/dist/mcp/server.js +48 -1
- package/dist/mcp/tool-descriptions.js +17 -9
- package/dist/mcp/v2/tools.d.ts +6 -0
- package/dist/mcp/v2/tools.js +2 -0
- package/dist/mcp/workflow-protocol-contracts.js +5 -1
- package/dist/types/workflow-definition.d.ts +2 -2
- package/dist/v2/infra/local/workspace-anchor/index.js +4 -1
- package/dist/v2/usecases/console-routes.js +49 -1
- package/dist/v2/usecases/console-service.d.ts +1 -0
- package/dist/v2/usecases/console-service.js +4 -1
- package/dist/v2/usecases/console-types.d.ts +12 -0
- package/dist/v2/usecases/worktree-service.js +55 -7
- package/package.json +3 -2
- package/spec/authoring-spec.json +91 -3
- package/spec/workflow-tags.json +132 -0
- package/spec/workflow.schema.json +411 -97
- package/workflows/adaptive-ticket-creation.json +40 -22
- package/workflows/architecture-scalability-audit.json +65 -31
- package/workflows/bug-investigation.agentic.v2.json +36 -14
- package/workflows/coding-task-workflow-agentic.json +50 -38
- package/workflows/coding-task-workflow-agentic.lean.v2.json +124 -37
- package/workflows/coding-task-workflow-agentic.v2.json +90 -30
- package/workflows/cross-platform-code-conversion.v2.json +168 -48
- package/workflows/document-creation-workflow.json +47 -17
- package/workflows/documentation-update-workflow.json +8 -8
- package/workflows/intelligent-test-case-generation.json +2 -2
- package/workflows/learner-centered-course-workflow.json +267 -267
- package/workflows/mr-review-workflow.agentic.v2.json +81 -14
- package/workflows/personal-learning-materials-creation-branched.json +175 -175
- package/workflows/presentation-creation.json +159 -159
- package/workflows/production-readiness-audit.json +54 -15
- package/workflows/relocation-workflow-us.json +44 -35
- package/workflows/routines/tension-driven-design.json +1 -1
- package/workflows/scoped-documentation-workflow.json +25 -25
- package/workflows/test-artifact-loop-control.json +1 -2
- package/workflows/ui-ux-design-workflow.json +327 -0
- package/workflows/workflow-diagnose-environment.json +1 -1
- package/workflows/workflow-for-workflows.json +507 -484
- package/workflows/workflow-for-workflows.v2.json +90 -18
- package/workflows/wr.discovery.json +112 -30
- package/dist/console/assets/index-DW78t31j.css +0 -1
- package/dist/console/assets/index-EsSXrC_a.js +0 -28
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "ui-ux-design-workflow",
|
|
3
|
+
"name": "UI/UX Design Workflow (v1 \u2022 Process-Enforced \u2022 Evidence-Driven)",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"description": "Design UI/UX from scratch with enforced process. Makes problem framing structurally required before solution proposals, forces exploration of multiple design directions before convergence, and applies reviewer families for information architecture, UX laws, accessibility, edge cases, and content. Output: a design spec concrete enough to implement or review.",
|
|
6
|
+
"recommendedPreferences": {
|
|
7
|
+
"recommendedAutonomy": "guided",
|
|
8
|
+
"recommendedRiskPolicy": "conservative"
|
|
9
|
+
},
|
|
10
|
+
"features": [
|
|
11
|
+
"wr.features.subagent_guidance"
|
|
12
|
+
],
|
|
13
|
+
"preconditions": [
|
|
14
|
+
"User has a UI/UX design task: a new feature, screen, component, or interaction to design.",
|
|
15
|
+
"Agent has enough context about the product or codebase to understand existing patterns.",
|
|
16
|
+
"A human will review the design spec before implementation begins."
|
|
17
|
+
],
|
|
18
|
+
"metaGuidance": [
|
|
19
|
+
"PROCESS IS THE VALUE: the biggest failure mode in AI-assisted design is skipping to solutions before understanding the problem. This workflow makes that structurally impossible. Do not shortcut Phase 0.",
|
|
20
|
+
"EVIDENCE OVER PLATITUDES: every finding must cite a specific element from the context packet. 'Consider reducing cognitive load' is not a finding. 'The settings panel has 14 options, violating Miller\u2019s Law (7\u00b12)' is a finding.",
|
|
21
|
+
"SIMPLE CRITERIA: designComplexity=Simple is only valid for a single existing component with a minor change, no new user flows, no information architecture changes, and no new interaction patterns. If uncertain, classify upward.",
|
|
22
|
+
"HONEST LIMITS: this workflow produces a text-based design spec. It cannot produce visual mockups, conduct usability testing, or verify visual quality. Say so explicitly in the handoff and flag what still needs human visual review.",
|
|
23
|
+
"CONTEXT BLINDNESS: if the user has not provided design system, existing component patterns, or platform conventions, surface this gap in Phase 0 and ask. Do not silently design without this context.",
|
|
24
|
+
"V2 DURABILITY: use output.notesMarkdown as the primary durable record. Do not create DESIGN_CONTEXT.md or other sidecar files.",
|
|
25
|
+
"OWNERSHIP: the main agent owns synthesis, design decision, and final spec. Reviewer families provide independent perspectives only.",
|
|
26
|
+
"EDGE CASES ARE NOT OPTIONAL: every interactive design must address empty state, error state, loading state, and first-use. If any of these are not addressed in the spec, the spec is incomplete."
|
|
27
|
+
],
|
|
28
|
+
"steps": [
|
|
29
|
+
{
|
|
30
|
+
"id": "phase-0-problem-framing",
|
|
31
|
+
"title": "Phase 0: Frame the Problem and Establish Design Context",
|
|
32
|
+
"promptBlocks": {
|
|
33
|
+
"goal": "Understand the design problem, the users it serves, and the context it exists in before proposing any solutions.",
|
|
34
|
+
"constraints": [
|
|
35
|
+
"Explore the codebase to find existing patterns, components, and conventions before asking questions.",
|
|
36
|
+
"Ask only for information tools cannot answer: design system location, target platform if ambiguous, user research or known pain points.",
|
|
37
|
+
"Do not propose any design solutions in this phase."
|
|
38
|
+
],
|
|
39
|
+
"procedure": [
|
|
40
|
+
"Read the codebase to understand: existing UI components and patterns, platform (web/iOS/Android/cross-platform), tech stack constraints that affect UI, and any existing design documentation.",
|
|
41
|
+
"Identify the primary user and their goal: who will use this feature, what are they trying to accomplish, and what context are they in when they use it?",
|
|
42
|
+
"Identify constraints: technical limitations, existing design system components to use, platform conventions to follow, accessibility requirements, and any stated non-goals.",
|
|
43
|
+
"Identify the existing design context: what screens or components does this new design connect to? What does the user do before and after?",
|
|
44
|
+
"Surface any context you could not determine from tools: missing design system information, unknown user research, unclear platform target.",
|
|
45
|
+
"Classify designComplexity: Simple = single existing component, minor change, no new flows, no IA changes. Standard = new screen or component, moderate scope. Complex = new user flows, significant IA changes, multiple screens or interaction patterns.",
|
|
46
|
+
"Set needsReviewerBundle = true for Standard and Complex; false for Simple."
|
|
47
|
+
],
|
|
48
|
+
"outputRequired": {
|
|
49
|
+
"notesMarkdown": "User and goal, design constraints, existing context, gaps that need human input, and complexity classification with rationale.",
|
|
50
|
+
"context": "Capture userGoals, userConstraints, existingDesignContext, designComplexity, needsReviewerBundle, designContextGaps, and openQuestions."
|
|
51
|
+
},
|
|
52
|
+
"verify": [
|
|
53
|
+
"The user and their goal are explicit before any design work begins.",
|
|
54
|
+
"designComplexity is classified with a concrete reason, not a guess.",
|
|
55
|
+
"Any missing context (design system, platform, user research) is surfaced, not silently assumed."
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
"requireConfirmation": true
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"id": "phase-1-design-directions",
|
|
62
|
+
"title": "Phase 1: Explore Design Directions",
|
|
63
|
+
"runCondition": {
|
|
64
|
+
"var": "needsReviewerBundle",
|
|
65
|
+
"equals": true
|
|
66
|
+
},
|
|
67
|
+
"promptBlocks": {
|
|
68
|
+
"goal": "Generate 2-3 genuinely different design directions before committing to any one of them.",
|
|
69
|
+
"constraints": [
|
|
70
|
+
"Directions must be genuinely different \u2014 not variations of the same pattern with different labels.",
|
|
71
|
+
"Each direction needs an information architecture sketch: how is content organized, what is the primary navigation path, what is the visual hierarchy?",
|
|
72
|
+
"Do not select a direction in this phase. Exploration comes before convergence."
|
|
73
|
+
],
|
|
74
|
+
"procedure": [
|
|
75
|
+
"Generate Direction A: the most conventional approach that follows existing platform patterns and design system. Low risk, familiar to users.",
|
|
76
|
+
"Generate Direction B: an approach that prioritizes the primary user goal differently \u2014 different IA, different entry point, or different interaction model.",
|
|
77
|
+
"Generate Direction C (if designComplexity=Complex): a third direction that challenges the assumptions in A and B \u2014 a more radical rethinking of the problem.",
|
|
78
|
+
"For each direction, describe: (1) the primary IA sketch (main sections, navigation path, content hierarchy), (2) the core interaction model (how does the user accomplish their goal?), (3) the key tradeoffs relative to user goals and constraints.",
|
|
79
|
+
"After describing all directions, restate which user goals each direction serves well and where each direction is weakest."
|
|
80
|
+
],
|
|
81
|
+
"outputRequired": {
|
|
82
|
+
"notesMarkdown": "All design directions with IA sketches and explicit tradeoffs. No recommendation yet.",
|
|
83
|
+
"context": "Capture designDirections (array of direction objects with name, iaSketch, interactionModel, tradeoffs)."
|
|
84
|
+
},
|
|
85
|
+
"verify": [
|
|
86
|
+
"At least 2 directions are genuinely different in IA or interaction model, not just surface styling.",
|
|
87
|
+
"Each direction has an explicit IA sketch and tradeoff analysis.",
|
|
88
|
+
"No direction has been selected or recommended yet."
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"requireConfirmation": true
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"id": "phase-2-freeze-context-packet",
|
|
95
|
+
"title": "Phase 2: Freeze Context Packet and Select Reviewer Families",
|
|
96
|
+
"runCondition": {
|
|
97
|
+
"var": "needsReviewerBundle",
|
|
98
|
+
"equals": true
|
|
99
|
+
},
|
|
100
|
+
"promptBlocks": {
|
|
101
|
+
"goal": "Assemble a neutral context packet that all reviewer families will use as shared truth, then declare which reviewers are needed.",
|
|
102
|
+
"constraints": [
|
|
103
|
+
"The context packet is neutral \u2014 it presents the design problem and directions without advocating for any one.",
|
|
104
|
+
"Select the direction to develop further before running reviewers \u2014 reviewers evaluate a specific direction, not an abstract problem.",
|
|
105
|
+
"All 5 reviewer families are active for Complex designs; IA and UX laws reviewers are always included for Standard."
|
|
106
|
+
],
|
|
107
|
+
"procedure": [
|
|
108
|
+
"Select the design direction to develop: based on the user goals and constraints from Phase 0, choose the direction from Phase 1 that best fits. State which direction and the specific reason it was chosen over the others.",
|
|
109
|
+
"Assemble the designContextPacket containing: (1) the selected direction's IA sketch and interaction model, (2) user goals and constraints from Phase 0, (3) existing design context (what connects to this), (4) platform and tech constraints, (5) any known user pain points or requirements.",
|
|
110
|
+
"Select reviewer families: IA reviewer (always), UX laws reviewer (always), accessibility reviewer (Standard and Complex), edge cases reviewer (Standard and Complex), content reviewer (Complex or when copy is a significant design concern).",
|
|
111
|
+
"Set selectedReviewerFamilies and needsReviewerBundle context."
|
|
112
|
+
],
|
|
113
|
+
"outputRequired": {
|
|
114
|
+
"notesMarkdown": "Selected direction with rationale, frozen context packet summary, and selected reviewer families with justification.",
|
|
115
|
+
"context": "Capture designContextPacket, selectedDirection, selectedReviewerFamilies, contradictionCount (init 0), evidenceWeakCount (init 0)."
|
|
116
|
+
},
|
|
117
|
+
"verify": [
|
|
118
|
+
"A specific direction is selected with a concrete reason.",
|
|
119
|
+
"The context packet is complete enough that a reviewer can evaluate the design without regathering context.",
|
|
120
|
+
"Reviewer family selection is justified by designComplexity."
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"requireConfirmation": false
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "phase-3-reviewer-bundle",
|
|
127
|
+
"title": "Phase 3: Parallel Reviewer Bundle",
|
|
128
|
+
"runCondition": {
|
|
129
|
+
"var": "needsReviewerBundle",
|
|
130
|
+
"equals": true
|
|
131
|
+
},
|
|
132
|
+
"promptBlocks": {
|
|
133
|
+
"goal": "Run the selected reviewer families in parallel against the frozen context packet, then synthesize their findings as evidence rather than verdicts.",
|
|
134
|
+
"constraints": [
|
|
135
|
+
[
|
|
136
|
+
{
|
|
137
|
+
"kind": "ref",
|
|
138
|
+
"refId": "wr.refs.synthesis_under_disagreement"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"Every finding must cite a specific element, component, or decision from the designContextPacket. Generic UX advice without a specific reference is not a valid finding.",
|
|
142
|
+
"Reviewer output is raw evidence. The main agent owns synthesis and design decisions."
|
|
143
|
+
],
|
|
144
|
+
"procedure": [
|
|
145
|
+
"Before delegating, restate the selected direction and the user goal it serves best.",
|
|
146
|
+
"Spawn one WorkRail Executor per selected reviewer family simultaneously. Each executor receives: the designContextPacket, their specific reviewer mission, and the finding format requirement.",
|
|
147
|
+
"Reviewer family missions: (1) IA reviewer \u2014 evaluate content hierarchy, navigation paths, grouping logic, and information scent against user goals; cite specific IA decisions; (2) UX laws reviewer \u2014 check each relevant law: Hick's Law (decision count), Miller's Law (working memory), Jakob's Law (familiar patterns), Fitts's Law (target size and distance), Peak-End Rule (emotional journey), Tesler's Law (irreducible complexity), Von Restorff Effect (visual differentiation of important elements); cite specific violations or confirmations; (3) accessibility reviewer \u2014 check WCAG requirements: color contrast ratios (4.5:1 normal, 3:1 large text), keyboard navigation path, touch target sizes (44x44px minimum), screen reader labels, focus indicators, animation controls; produce specific requirements not 'follow WCAG'; (4) edge cases reviewer \u2014 for each interactive element, explicitly address: empty state (no data), error state (failed action), loading state, first-use/onboarding, offline or degraded state, destructive actions; flag any state not addressed in the current design; (5) content reviewer \u2014 evaluate every label, button copy, placeholder, error message, and helper text against clarity, user language vs. technical jargon, and actionability of error messages.",
|
|
148
|
+
"After receiving all executor outputs, synthesize explicitly: what was confirmed, what was new, what looks weak or generic, and what has citations vs. what is speculation.",
|
|
149
|
+
"Set evidenceWeakCount to the number of findings without specific citations."
|
|
150
|
+
],
|
|
151
|
+
"outputRequired": {
|
|
152
|
+
"notesMarkdown": "Per-family synthesis, contradiction flags, evidence quality assessment, and overall finding count.",
|
|
153
|
+
"context": "Capture reviewerFindings (per-family), contradictionCount, evidenceWeakCount."
|
|
154
|
+
},
|
|
155
|
+
"verify": [
|
|
156
|
+
"Every declared reviewer family has at least one substantive finding.",
|
|
157
|
+
"Reviewer output was synthesized by the main agent, not adopted verbatim.",
|
|
158
|
+
"Findings with specific citations are distinguished from generic advice."
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"requireConfirmation": false
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "phase-4-synthesis-loop",
|
|
165
|
+
"type": "loop",
|
|
166
|
+
"title": "Phase 4: Synthesis and Contradiction Resolution",
|
|
167
|
+
"loop": {
|
|
168
|
+
"type": "while",
|
|
169
|
+
"conditionSource": {
|
|
170
|
+
"kind": "artifact_contract",
|
|
171
|
+
"contractRef": "wr.contracts.loop_control",
|
|
172
|
+
"loopId": "design_synthesis_loop"
|
|
173
|
+
},
|
|
174
|
+
"maxIterations": 2
|
|
175
|
+
},
|
|
176
|
+
"body": [
|
|
177
|
+
{
|
|
178
|
+
"id": "phase-4a-resolve",
|
|
179
|
+
"title": "Resolve Contradictions and Strengthen Weak Evidence",
|
|
180
|
+
"promptBlocks": {
|
|
181
|
+
"goal": "Resolve any contradictions between reviewer findings and strengthen evidence-weak findings before finalizing the design decision.",
|
|
182
|
+
"constraints": [
|
|
183
|
+
"Contradiction resolution is main-agent work. Do not delegate synthesis.",
|
|
184
|
+
"If two reviewers disagree about the same design element, explicitly adjudicate which evidence is stronger."
|
|
185
|
+
],
|
|
186
|
+
"procedure": [
|
|
187
|
+
"List any contradictions: cases where two reviewer families disagree about the same design element or recommendation.",
|
|
188
|
+
"Adjudicate each contradiction: which evidence is more specific, which is better grounded in the design context packet?",
|
|
189
|
+
"For any finding with evidenceWeak=true, either find the specific citation yourself or downgrade the finding to advisory.",
|
|
190
|
+
"Update reviewerFindings with resolved contradictions and strengthened evidence.",
|
|
191
|
+
"Update contradictionCount to 0 when resolved; update evidenceWeakCount."
|
|
192
|
+
],
|
|
193
|
+
"outputRequired": {
|
|
194
|
+
"notesMarkdown": "Contradictions resolved, evidence-weak findings addressed, updated finding summary.",
|
|
195
|
+
"context": "Capture contradictionCount, evidenceWeakCount, reviewerFindings."
|
|
196
|
+
},
|
|
197
|
+
"verify": [
|
|
198
|
+
"Each resolved contradiction names which evidence won and why.",
|
|
199
|
+
"No unresolved contradictions remain."
|
|
200
|
+
]
|
|
201
|
+
},
|
|
202
|
+
"requireConfirmation": false
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "phase-4b-loop-decision",
|
|
206
|
+
"title": "Synthesis Loop Decision",
|
|
207
|
+
"promptBlocks": {
|
|
208
|
+
"goal": "Decide whether another synthesis pass is needed.",
|
|
209
|
+
"constraints": [
|
|
210
|
+
"Use trigger rules, not vibes."
|
|
211
|
+
],
|
|
212
|
+
"procedure": [
|
|
213
|
+
"Continue if contradictionCount > 0.",
|
|
214
|
+
"Otherwise continue if evidenceWeakCount > 3 (more than 3 findings still lack specific citations).",
|
|
215
|
+
"Otherwise stop."
|
|
216
|
+
],
|
|
217
|
+
"outputRequired": {
|
|
218
|
+
"artifact": "Emit a `wr.loop_control` artifact for `design_synthesis_loop` with `decision` set to `continue` or `stop`."
|
|
219
|
+
},
|
|
220
|
+
"verify": [
|
|
221
|
+
"The loop does not stop while material contradictions remain unresolved."
|
|
222
|
+
]
|
|
223
|
+
},
|
|
224
|
+
"outputContract": {
|
|
225
|
+
"contractRef": "wr.contracts.loop_control"
|
|
226
|
+
},
|
|
227
|
+
"requireConfirmation": false
|
|
228
|
+
}
|
|
229
|
+
],
|
|
230
|
+
"runCondition": {
|
|
231
|
+
"var": "needsReviewerBundle",
|
|
232
|
+
"equals": true
|
|
233
|
+
}
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"id": "phase-5-hard-gate",
|
|
237
|
+
"title": "Phase 5: Hard Gate Check",
|
|
238
|
+
"runCondition": {
|
|
239
|
+
"var": "needsReviewerBundle",
|
|
240
|
+
"equals": true
|
|
241
|
+
},
|
|
242
|
+
"promptBlocks": {
|
|
243
|
+
"goal": "Verify all quality gates pass before writing the design spec.",
|
|
244
|
+
"constraints": [
|
|
245
|
+
"If any gate fails, fix the underlying issue before advancing \u2014 do not write the spec over known gaps."
|
|
246
|
+
],
|
|
247
|
+
"procedure": [
|
|
248
|
+
"Gate 1 \u2014 Evidence citations: confirm every finding in reviewerFindings cites a specific design element from the context packet. Flag any finding that is generic advice without a specific reference and either improve it or mark it advisory-only.",
|
|
249
|
+
"Gate 2 \u2014 Reviewer coverage: confirm every declared reviewer family has at least one substantive finding. If a family has no findings, state explicitly why (e.g., 'IA reviewer found no issues \u2014 the single-screen design has no navigation structure to evaluate').",
|
|
250
|
+
"Gate 3 \u2014 Edge case coverage: confirm empty state, error state, loading state, and first-use are addressed for each interactive element in the selected design direction. List any that are not yet addressed.",
|
|
251
|
+
"Gate 4 \u2014 Accessibility specificity: confirm accessibility requirements are listed as specific constraints (color contrast ratios, touch target sizes, keyboard tab order), not as a generic 'follow WCAG' instruction."
|
|
252
|
+
],
|
|
253
|
+
"outputRequired": {
|
|
254
|
+
"notesMarkdown": "Gate check results: which passed, which failed, what was fixed.",
|
|
255
|
+
"context": "Capture hardGatesPassed, hardGateFailures."
|
|
256
|
+
},
|
|
257
|
+
"verify": [
|
|
258
|
+
"hardGatesPassed = true before advancing to spec writing.",
|
|
259
|
+
"Any gate failures were fixed, not silently accepted."
|
|
260
|
+
]
|
|
261
|
+
},
|
|
262
|
+
"requireConfirmation": false
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"id": "phase-5-design-spec-handoff",
|
|
266
|
+
"title": "Phase 5: Design Spec",
|
|
267
|
+
"promptBlocks": {
|
|
268
|
+
"goal": "Produce a complete design spec ready for engineering review and implementation.",
|
|
269
|
+
"constraints": [
|
|
270
|
+
"Every interactive element must have its edge cases addressed in the spec.",
|
|
271
|
+
"Accessibility requirements must be specific, not 'follow WCAG'.",
|
|
272
|
+
"The spec must acknowledge what still requires human visual review and what requires usability testing.",
|
|
273
|
+
"Do not drift into implementation planning (specific component libraries, code) unless explicitly asked."
|
|
274
|
+
],
|
|
275
|
+
"procedure": [
|
|
276
|
+
"Write the design spec covering: (1) Design Decision \u2014 which direction was chosen and the specific reason it was chosen over the others; (2) Information Architecture \u2014 content hierarchy, navigation structure, primary user path; (3) Interaction Design \u2014 how each interactive element works, what triggers what, what feedback the user gets; (4) States \u2014 for each element: default, hover/focus, loading, error, empty, first-use, disabled; (5) Accessibility Requirements \u2014 specific requirements (color contrast ratios, keyboard tab order, touch target sizes, screen reader labels); (6) Content \u2014 all copy, labels, error messages, placeholders, and onboarding text; (7) Reviewer Findings \u2014 per-dimension findings with citations that the design should address or has already addressed; (8) Open Questions \u2014 what still needs human input (visual design, usability testing, design system component availability).",
|
|
277
|
+
"Close the spec by naming: what visual review a human designer should perform, and what this workflow cannot verify (visual quality, usability, emotional feel)."
|
|
278
|
+
],
|
|
279
|
+
"outputRequired": {
|
|
280
|
+
"notesMarkdown": "Complete design spec with all 8 sections. Open questions and human-review items explicitly listed."
|
|
281
|
+
},
|
|
282
|
+
"verify": [
|
|
283
|
+
"All 8 spec sections are present and substantive.",
|
|
284
|
+
"Every interactive element has states addressed.",
|
|
285
|
+
"Accessibility requirements are specific, not generic.",
|
|
286
|
+
"Open questions acknowledge the limits of agent-generated design specs."
|
|
287
|
+
]
|
|
288
|
+
},
|
|
289
|
+
"requireConfirmation": false,
|
|
290
|
+
"runCondition": {
|
|
291
|
+
"var": "needsReviewerBundle",
|
|
292
|
+
"equals": true
|
|
293
|
+
}
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
"id": "phase-simple-design",
|
|
297
|
+
"title": "Simple Path: Direct Design Spec",
|
|
298
|
+
"runCondition": {
|
|
299
|
+
"var": "needsReviewerBundle",
|
|
300
|
+
"equals": false
|
|
301
|
+
},
|
|
302
|
+
"promptBlocks": {
|
|
303
|
+
"goal": "Produce a focused design spec for a simple, bounded change without the full reviewer pipeline.",
|
|
304
|
+
"constraints": [
|
|
305
|
+
"Simple means: single existing component, minor change, no new flows, no IA changes.",
|
|
306
|
+
"If during spec writing you discover the change is more complex than classified, stop, update designComplexity to Standard, set needsReviewerBundle=true, and return to Phase 1.",
|
|
307
|
+
"Even simple changes must address: error state, empty state if applicable, accessibility."
|
|
308
|
+
],
|
|
309
|
+
"procedure": [
|
|
310
|
+
"Write the design spec: what changes, why, the specific interaction or visual change, any states affected, and the accessibility impact.",
|
|
311
|
+
"Apply quick UX checks: does the change violate any obvious UX laws (Fitts's Law for target size, consistency with nearby elements)? Is the copy clear and in user language?",
|
|
312
|
+
"Note what a human reviewer should visually verify."
|
|
313
|
+
],
|
|
314
|
+
"outputRequired": {
|
|
315
|
+
"notesMarkdown": "Focused design spec: what changes, why, states, accessibility impact, and what needs visual review."
|
|
316
|
+
},
|
|
317
|
+
"verify": [
|
|
318
|
+
"The change is genuinely simple by the stated criteria.",
|
|
319
|
+
"Error and empty states are addressed if applicable.",
|
|
320
|
+
"Accessibility impact is stated."
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
"requireConfirmation": false
|
|
324
|
+
}
|
|
325
|
+
],
|
|
326
|
+
"validatedAgainstSpecVersion": 3
|
|
327
|
+
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "workflow-diagnose-environment",
|
|
3
3
|
"name": "Diagnostic: Environment & Subagents",
|
|
4
4
|
"version": "1.0.0",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Use this to diagnose MCP server, tool availability, or environment configuration issues. Probes for subagent access and generates a local configuration file.",
|
|
6
6
|
"steps": [
|
|
7
7
|
{
|
|
8
8
|
"id": "step-0-probe-capabilities",
|