analyzthis_design 1.20.0 → 2.0.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.
Files changed (176) hide show
  1. package/README.md +167 -31
  2. package/agents/cards/anuj.md +1 -1
  3. package/agents/cards/arjun.md +1 -1
  4. package/agents/cards/chunk-planner.md +5 -0
  5. package/agents/cards/meera.md +1 -1
  6. package/agents/cards/mood-board.md +13 -0
  7. package/agents/cards/noor.md +1 -1
  8. package/agents/cards/priya.md +1 -1
  9. package/agents/cards/query-expander.md +17 -0
  10. package/agents/cards/raj.md +1 -1
  11. package/agents/cards/ranker.md +16 -0
  12. package/agents/cards/run-unchunked.md +7 -0
  13. package/agents/cards/zara.md +1 -1
  14. package/agents/chain.json +15 -0
  15. package/agents/manifests/anuj.json +1 -0
  16. package/agents/manifests/arjun.json +1 -0
  17. package/agents/manifests/chunk-planner.json +18 -0
  18. package/agents/manifests/kavi.json +1 -0
  19. package/agents/manifests/meera.json +1 -0
  20. package/agents/manifests/mood-board.json +23 -0
  21. package/agents/manifests/noor.json +1 -0
  22. package/agents/manifests/priya.json +1 -0
  23. package/agents/manifests/query-expander.json +13 -0
  24. package/agents/manifests/raj.json +1 -0
  25. package/agents/manifests/ranker.json +13 -0
  26. package/agents/manifests/run-unchunked.json +19 -0
  27. package/agents/manifests/zara.json +1 -0
  28. package/agents/router.json +14 -0
  29. package/agents/session-schema.json +27 -0
  30. package/dist/.github/ISSUE_TEMPLATE/persona-feedback.yml +75 -0
  31. package/dist/HOW-TO-USE.md +424 -0
  32. package/dist/README.md +858 -0
  33. package/dist/agents/cards/anuj.md +28 -0
  34. package/dist/agents/cards/arjun.md +29 -0
  35. package/dist/agents/cards/chunk-planner.md +5 -0
  36. package/dist/agents/cards/design-director.md +19 -0
  37. package/dist/agents/cards/devi.md +15 -0
  38. package/dist/agents/cards/kavi.md +26 -0
  39. package/dist/agents/cards/meera.md +27 -0
  40. package/dist/agents/cards/mood-board.md +13 -0
  41. package/dist/agents/cards/noor.md +28 -0
  42. package/dist/agents/cards/priya.md +27 -0
  43. package/dist/agents/cards/query-expander.md +17 -0
  44. package/dist/agents/cards/raj.md +29 -0
  45. package/dist/agents/cards/ranker.md +16 -0
  46. package/dist/agents/cards/run-unchunked.md +7 -0
  47. package/dist/agents/cards/zara.md +30 -0
  48. package/dist/agents/chain.json +76 -0
  49. package/dist/agents/deliberation-schema.json +44 -0
  50. package/dist/agents/design-spec-schema.json +111 -0
  51. package/dist/agents/manifests/anuj.json +32 -0
  52. package/dist/agents/manifests/arjun.json +47 -0
  53. package/dist/agents/manifests/chunk-planner.json +18 -0
  54. package/dist/agents/manifests/design-critic.json +21 -0
  55. package/dist/agents/manifests/design-director.json +26 -0
  56. package/dist/agents/manifests/devi.json +31 -0
  57. package/dist/agents/manifests/kavi.json +34 -0
  58. package/dist/agents/manifests/meera.json +32 -0
  59. package/dist/agents/manifests/mood-board.json +23 -0
  60. package/dist/agents/manifests/noor.json +33 -0
  61. package/dist/agents/manifests/persona-orchestrator.json +17 -0
  62. package/dist/agents/manifests/priya.json +32 -0
  63. package/dist/agents/manifests/query-expander.json +13 -0
  64. package/dist/agents/manifests/raj.json +31 -0
  65. package/dist/agents/manifests/ranker.json +13 -0
  66. package/dist/agents/manifests/run-unchunked.json +19 -0
  67. package/dist/agents/manifests/ux-story-gate.json +23 -0
  68. package/dist/agents/manifests/zara.json +33 -0
  69. package/dist/agents/router.json +99 -0
  70. package/dist/agents/session-schema.json +152 -0
  71. package/dist/bin/cli.js +1 -1
  72. package/dist/lib/cache.js +1 -1
  73. package/dist/lib/chunk-executor.js +1 -0
  74. package/dist/lib/chunk-models.js +1 -0
  75. package/dist/lib/chunk-planner.js +1 -0
  76. package/dist/lib/chunk-router.js +1 -0
  77. package/dist/lib/chunk-run.js +1 -0
  78. package/dist/lib/chunk-synthesis.js +1 -0
  79. package/dist/lib/chunk-telemetry.js +1 -0
  80. package/dist/lib/collect.js +1 -1
  81. package/dist/lib/cost.js +1 -1
  82. package/dist/lib/dedup.js +1 -0
  83. package/dist/lib/deliberation.js +1 -1
  84. package/dist/lib/design-spec.js +1 -1
  85. package/dist/lib/evolve.js +1 -0
  86. package/dist/lib/export.js +1 -1
  87. package/dist/lib/feedback-submit.js +1 -1
  88. package/dist/lib/feedback.js +1 -1
  89. package/dist/lib/host-llm.js +1 -1
  90. package/dist/lib/install.js +1 -1
  91. package/dist/lib/knowledge.js +1 -1
  92. package/dist/lib/lessons.js +1 -0
  93. package/dist/lib/moodboard.js +1 -0
  94. package/dist/lib/orchestrator/run.js +1 -1
  95. package/dist/lib/outcome.js +1 -0
  96. package/dist/lib/platforms.js +1 -1
  97. package/dist/lib/provider.js +1 -1
  98. package/dist/lib/query-expander.js +1 -0
  99. package/dist/lib/ranker.js +1 -0
  100. package/dist/lib/research.js +1 -1
  101. package/dist/lib/retrieve.js +1 -1
  102. package/dist/lib/session.js +1 -1
  103. package/dist/lib/source-discovery.js +1 -1
  104. package/dist/lib/synthesis.js +1 -1
  105. package/dist/lib/token-gate.js +1 -1
  106. package/dist/skills/anuj/SKILL.md +92 -0
  107. package/dist/skills/arjun/SKILL.md +291 -0
  108. package/dist/skills/chunk-planner/SKILL.md +45 -0
  109. package/dist/skills/collect-knowledge/SKILL.md +20 -0
  110. package/dist/skills/deliberation-protocol/SKILL.md +131 -0
  111. package/dist/skills/design-critic/SKILL.md +191 -0
  112. package/dist/skills/design-director/SKILL.md +181 -0
  113. package/dist/skills/design-personas/SKILL.md +100 -0
  114. package/dist/skills/design-reference/SKILL.md +83 -0
  115. package/dist/skills/design-reference/app-interface.csv +31 -0
  116. package/dist/skills/design-reference/charts.csv +26 -0
  117. package/dist/skills/design-reference/colors.csv +162 -0
  118. package/dist/skills/design-reference/google-fonts.csv +1924 -0
  119. package/dist/skills/design-reference/icons.csv +106 -0
  120. package/dist/skills/design-reference/landing.csv +35 -0
  121. package/dist/skills/design-reference/products.csv +162 -0
  122. package/dist/skills/design-reference/react-performance.csv +45 -0
  123. package/dist/skills/design-reference/stacks/angular.csv +51 -0
  124. package/dist/skills/design-reference/stacks/astro.csv +54 -0
  125. package/dist/skills/design-reference/stacks/flutter.csv +53 -0
  126. package/dist/skills/design-reference/stacks/html-tailwind.csv +56 -0
  127. package/dist/skills/design-reference/stacks/jetpack-compose.csv +53 -0
  128. package/dist/skills/design-reference/stacks/laravel.csv +51 -0
  129. package/dist/skills/design-reference/stacks/nextjs.csv +53 -0
  130. package/dist/skills/design-reference/stacks/nuxt-ui.csv +51 -0
  131. package/dist/skills/design-reference/stacks/nuxtjs.csv +59 -0
  132. package/dist/skills/design-reference/stacks/react-native.csv +52 -0
  133. package/dist/skills/design-reference/stacks/react.csv +54 -0
  134. package/dist/skills/design-reference/stacks/shadcn.csv +61 -0
  135. package/dist/skills/design-reference/stacks/svelte.csv +54 -0
  136. package/dist/skills/design-reference/stacks/swiftui.csv +51 -0
  137. package/dist/skills/design-reference/stacks/threejs.csv +54 -0
  138. package/dist/skills/design-reference/stacks/vue.csv +50 -0
  139. package/dist/skills/design-reference/styles.csv +85 -0
  140. package/dist/skills/design-reference/typography.csv +74 -0
  141. package/dist/skills/design-reference/ui-reasoning.csv +162 -0
  142. package/dist/skills/design-reference/ux-guidelines.csv +100 -0
  143. package/dist/skills/design-spec/SKILL.md +106 -0
  144. package/dist/skills/devi/SKILL.md +114 -0
  145. package/dist/skills/getting-started/SKILL.md +144 -0
  146. package/dist/skills/kavi/SKILL.md +118 -0
  147. package/dist/skills/knowledge-bank/SKILL.md +43 -0
  148. package/dist/skills/meera/SKILL.md +76 -0
  149. package/dist/skills/mood-board/SKILL.md +113 -0
  150. package/dist/skills/noor/SKILL.md +96 -0
  151. package/dist/skills/persona-orchestrator/SKILL.md +220 -0
  152. package/dist/skills/priya/SKILL.md +75 -0
  153. package/dist/skills/raj/SKILL.md +77 -0
  154. package/dist/skills/run-unchunked/SKILL.md +49 -0
  155. package/dist/skills/ux-ideator/SKILL.md +187 -0
  156. package/dist/skills/ux-story-gate/SKILL.md +353 -0
  157. package/dist/skills/zara/SKILL.md +85 -0
  158. package/dist/supabase/deliberation-config.example.json +15 -0
  159. package/dist/supabase/feedback-config.example.json +7 -0
  160. package/dist/supabase/migrations/001_persona_feedback.sql +54 -0
  161. package/package.json +2 -2
  162. package/skills/anuj/SKILL.md +1 -1
  163. package/skills/arjun/SKILL.md +1 -1
  164. package/skills/chunk-planner/SKILL.md +45 -0
  165. package/skills/design-critic/SKILL.md +2 -2
  166. package/skills/design-director/SKILL.md +1 -1
  167. package/skills/devi/SKILL.md +1 -1
  168. package/skills/getting-started/SKILL.md +12 -0
  169. package/skills/meera/SKILL.md +1 -1
  170. package/skills/mood-board/SKILL.md +113 -0
  171. package/skills/noor/SKILL.md +1 -1
  172. package/skills/persona-orchestrator/SKILL.md +37 -3
  173. package/skills/priya/SKILL.md +1 -1
  174. package/skills/run-unchunked/SKILL.md +49 -0
  175. package/skills/ux-ideator/SKILL.md +1 -1
  176. package/skills/zara/SKILL.md +1 -1
@@ -0,0 +1,47 @@
1
+ {
2
+ "id": "arjun",
3
+ "role": "ux_visual",
4
+ "system_skill": "skills/arjun/SKILL.md",
5
+ "system_card": "agents/cards/arjun.md",
6
+ "tier": "critique",
7
+ "max_output_tokens": 1800,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["task_map", "session_context", "ds_checklist", "figma_context", "information_hierarchy"],
10
+ "outputs": ["ux_critique", "visual_audit", "combined_score"],
11
+ "allowed_tools": ["design-reference", "browser_verify", "figma_mcp"],
12
+ "allowed_jobs": [
13
+ "UX Honeycomb critique",
14
+ "Visual Design Audit (hierarchy, color, typography, spacing, components, style fit, micro-interactions)",
15
+ "diagnose visual issues against declared information hierarchy and DS tokens"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "brand-system recovery as a primary job (diagnostic only — cite tokens, do not ship !important overrides)",
19
+ "delight pass (hand off to Zara)",
20
+ "implement code without explicit build approval"
21
+ ],
22
+ "routing_triggers": ["ux", "accessibility", "responsive", "interaction_bug", "visual_quality"],
23
+ "never_route_for": ["business_priority", "build_effort", "delight_moment"],
24
+ "chain_position": 2,
25
+ "handoff_from": ["noor"],
26
+ "handoff_to": ["meera"],
27
+ "requires_session_state": true,
28
+ "knowledge_categories": ["brand", "design", "research"],
29
+ "hard_gates": ["ds_gate", "information_hierarchy_gate"],
30
+ "scoped_modes": {
31
+ "arjun_color_system_only": {
32
+ "description": "Restricted scope used on DS Gate early-exit: only Color System + Typography contrast dimensions from the Visual Design Audit run, not the full Honeycomb + Visual Audit.",
33
+ "dimensions": ["color_system", "typography_contrast"],
34
+ "max_output_tokens": 700
35
+ }
36
+ },
37
+ "effort_overrides": {
38
+ "trivial": {
39
+ "when": "scoped_mode == arjun_color_system_only (single-dimension color/contrast diagnostic)",
40
+ "max_output_tokens": 700
41
+ },
42
+ "hard": {
43
+ "when": "full_chain == true || problem_type == full_screen_review (full Honeycomb + Visual Audit)",
44
+ "max_output_tokens": 1800
45
+ }
46
+ }
47
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "id": "chunk-planner",
3
+ "name": "Chunk Planner",
4
+ "tier": "router",
5
+ "max_output_tokens": 2500,
6
+ "system_card": "agents/cards/chunk-planner.md",
7
+ "system_skill": "skills/chunk-planner/SKILL.md",
8
+ "allowed_jobs": [
9
+ "Explain the chunked execution planner",
10
+ "Inspect chunk plans from session state"
11
+ ],
12
+ "forbidden_jobs": [
13
+ "Replace the router or chain",
14
+ "Execute chunks directly"
15
+ ],
16
+ "hard_gates": [],
17
+ "parallel_safe_with": []
18
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "id": "design-critic",
3
+ "role": "orchestrator",
4
+ "system_skill": "skills/design-critic/SKILL.md",
5
+ "inputs": ["task_map", "session_context", "figma_context", "ds_checklist"],
6
+ "outputs": ["composite_score", "task_finding_table", "verdict"],
7
+ "allowed_tools": ["design-reference", "browser_verify", "figma_mcp"],
8
+ "allowed_jobs": [
9
+ "run the full persona chain (Arjun -> Meera -> Priya -> Zara) for a full screen review",
10
+ "enforce the Information Hierarchy Gate",
11
+ "escalate to Raj on stalemate/BLOCK"
12
+ ],
13
+ "forbidden_jobs": [
14
+ "run without a completed ux-story-gate pass",
15
+ "implement code without explicit build approval"
16
+ ],
17
+ "routing_triggers": ["full_screen_review", "multi_persona_critique"],
18
+ "chain": ["arjun", "meera", "priya", "zara"],
19
+ "escalates_to": "raj",
20
+ "requires_session_state": true
21
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "id": "design-director",
3
+ "role": "design_producer",
4
+ "system_skill": "skills/design-director/SKILL.md",
5
+ "system_card": "agents/cards/design-director.md",
6
+ "tier": "critique",
7
+ "max_output_tokens": 4000,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["task_map", "ds_checklist", "design_spec", "knowledge_bank"],
10
+ "outputs": ["design_spec", "implementation_handoff", "verify_results"],
11
+ "allowed_tools": ["design-reference", "design-spec", "browser_verify", "figma_mcp"],
12
+ "allowed_jobs": [
13
+ "orchestrate ideation → DesignSpec → spec gates → implementation handoff",
14
+ "validate spec against DS and information hierarchy",
15
+ "guide host LLM implementation from SHIPped spec"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "skip spec gates and jump to code",
19
+ "implement when mode is assess_only",
20
+ "invent components not in design_spec.components"
21
+ ],
22
+ "routing_triggers": ["design-director", "design spec", "guide how to design", "build this design", "implement spec"],
23
+ "never_route_for": ["full_screen_review_only"],
24
+ "chain_position": null,
25
+ "requires_session_state": true
26
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "devi",
3
+ "role": "host_llm",
4
+ "system_skill": "skills/devi/SKILL.md",
5
+ "system_card": "agents/cards/devi.md",
6
+ "tier": "structured",
7
+ "max_output_tokens": 900,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["pending_prompts", "persona_skills", "session_state"],
10
+ "outputs": ["persona_responses"],
11
+ "allowed_tools": [],
12
+ "allowed_jobs": [
13
+ "read orchestrator pending prompts and embody target personas",
14
+ "write response files for host-mode orchestrator runs",
15
+ "batch-process all pending steps in a run directory"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "replace persona critique content with meta-commentary",
19
+ "call external LLM APIs (Devi IS the host LLM)",
20
+ "implement code without explicit build approval"
21
+ ],
22
+ "routing_triggers": ["host_llm", "devi", "pending", "continue run"],
23
+ "never_route_for": ["design_critique", "wireframe"],
24
+ "chain_position": 0,
25
+ "handoff_from": [],
26
+ "handoff_to": ["arjun", "meera", "priya", "zara", "noor", "anuj", "raj"],
27
+ "requires_session_state": true,
28
+ "effort_overrides": {
29
+ "trivial": { "provider": "host", "max_output_tokens": 900 }
30
+ }
31
+ }
@@ -0,0 +1,34 @@
1
+ {
2
+ "id": "kavi",
3
+ "role": "knowledge_archivist",
4
+ "system_skill": "skills/kavi/SKILL.md",
5
+ "system_card": "agents/cards/kavi.md",
6
+ "tier": "structured",
7
+ "max_output_tokens": 4000,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["cwd", "optional_vault_path"],
10
+ "outputs": ["obsidian_vault", "collect_report", "knowledge_bank_sync"],
11
+ "allowed_tools": ["knowledge-bank", "filesystem_scan"],
12
+ "allowed_jobs": [
13
+ "scan codebase into Obsidian vault notes (PRDs, brand, pages, components, tech, research)",
14
+ "LLM-enrich draft extracts into concise Obsidian notes",
15
+ "auto-connect + sync vault into the knowledge bank for all critique personas"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "UX, visual, business, or delight critique",
19
+ "invent files / APIs / components not in the extract",
20
+ "design generation or code edits in the scanned repo",
21
+ "run inside design-critic or ideation chains"
22
+ ],
23
+ "routing_triggers": ["collect_knowledge", "scan_codebase", "build_vault", "knowledge_archivist"],
24
+ "never_route_for": ["ux_friction", "full_screen_review", "delight", "stalemate"],
25
+ "chain_position": null,
26
+ "handoff_from": [],
27
+ "handoff_to": [],
28
+ "requires_session_state": true,
29
+ "knowledge_categories": ["prd", "brand", "product", "design", "research", "tech", "web"],
30
+ "effort_overrides": {
31
+ "standard": { "when": "enrichment batch (default)", "max_output_tokens": 4000 },
32
+ "trivial": { "when": "draft-only / --no-enrich (no LLM)", "max_output_tokens": 500 }
33
+ }
34
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "meera",
3
+ "role": "business",
4
+ "system_skill": "skills/meera/SKILL.md",
5
+ "system_card": "agents/cards/meera.md",
6
+ "tier": "critique",
7
+ "max_output_tokens": 1200,
8
+ "parallel_safe_with": ["priya"],
9
+ "inputs": ["task_map", "session_context", "arjun_output", "information_hierarchy"],
10
+ "outputs": ["business_impact", "hierarchy_metric_check"],
11
+ "allowed_tools": ["design-reference"],
12
+ "allowed_jobs": [
13
+ "north-star metric impact assessment",
14
+ "segment / GTM / retention analysis",
15
+ "check that rank #1 on screen matches the actual business-critical driver"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "visual or UX critique (route to Arjun)",
19
+ "implement code without explicit build approval"
20
+ ],
21
+ "routing_triggers": ["business_priority", "pricing", "access_control", "monetization", "retention"],
22
+ "never_route_for": ["visual_quality", "ia_structure"],
23
+ "chain_position": 3,
24
+ "handoff_from": ["arjun"],
25
+ "handoff_to": ["priya"],
26
+ "requires_session_state": true,
27
+ "knowledge_categories": ["product", "research"],
28
+ "effort_overrides": {
29
+ "trivial": { "when": "single GTM lever / retention check", "max_output_tokens": 500 },
30
+ "hard": { "when": "north-star tradeoff or cross-metric conflict", "max_output_tokens": 1200 }
31
+ }
32
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "mood-board",
3
+ "name": "Mood Board",
4
+ "tier": "structured",
5
+ "max_output_tokens": 1800,
6
+ "system_card": "agents/cards/mood-board.md",
7
+ "system_skill": "skills/mood-board/SKILL.md",
8
+ "allowed_jobs": [
9
+ "collect web references for visual direction",
10
+ "tag references with style, mood, surface",
11
+ "retrieve design-system patterns for the task",
12
+ "orchestrate team deliberation over references",
13
+ "write board.json artifacts",
14
+ "accept user-contributed references and rerun"
15
+ ],
16
+ "forbidden_jobs": [
17
+ "produce final wireframes or code",
18
+ "replace the design-critic chain for screen review",
19
+ "auto-apply design system changes"
20
+ ],
21
+ "hard_gates": [],
22
+ "parallel_safe_with": []
23
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "noor",
3
+ "role": "information_architect",
4
+ "system_skill": "skills/noor/SKILL.md",
5
+ "system_card": "agents/cards/noor.md",
6
+ "tier": "critique",
7
+ "max_output_tokens": 1500,
8
+ "parallel_safe_with": ["anuj"],
9
+ "inputs": ["task_map", "session_context", "figma_context"],
10
+ "outputs": ["concept_a_wireframe", "information_hierarchy"],
11
+ "allowed_tools": ["design-reference"],
12
+ "allowed_jobs": [
13
+ "declare ranked information hierarchy",
14
+ "propose minimalist IA / progressive disclosure structure",
15
+ "produce Concept A wireframe"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "brand token recovery",
19
+ "contrast / accessibility fixes (route to Arjun)",
20
+ "implement code without explicit build approval"
21
+ ],
22
+ "routing_triggers": ["structure", "ia", "navigation", "nested_ui", "wizard", "form"],
23
+ "never_route_for": ["brand", "contrast", "design_system_compliance"],
24
+ "chain_position": 1,
25
+ "handoff_from": [],
26
+ "handoff_to": ["arjun", "anuj"],
27
+ "requires_session_state": true,
28
+ "knowledge_categories": ["design", "product"],
29
+ "effort_overrides": {
30
+ "trivial": { "when": "hierarchy-only declaration", "max_output_tokens": 700 },
31
+ "hard": { "when": "multi-screen IA", "max_output_tokens": 1500 }
32
+ }
33
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "id": "persona-orchestrator",
3
+ "role": "entry_point",
4
+ "system_skill": "skills/persona-orchestrator/SKILL.md",
5
+ "inputs": ["user_ask", "figma_url"],
6
+ "outputs": ["session_state", "task_finding_table", "verdict"],
7
+ "allowed_tools": ["design-reference", "figma_mcp", "browser_verify", "knowledge-bank"],
8
+ "allowed_jobs": [
9
+ "single entry point for agentic runs: load router + session, run ux-story-gate, execute chain or MoE subset, run gates, synthesize verdict"
10
+ ],
11
+ "forbidden_jobs": [
12
+ "bypass ux-story-gate phases 0-1.5",
13
+ "implement code without explicit build approval (respect assess-only mode)"
14
+ ],
15
+ "reads": ["agents/router.json", "agents/chain.json", "agents/session-schema.json"],
16
+ "requires_session_state": true
17
+ }
@@ -0,0 +1,32 @@
1
+ {
2
+ "id": "priya",
3
+ "role": "feasibility",
4
+ "system_skill": "skills/priya/SKILL.md",
5
+ "system_card": "agents/cards/priya.md",
6
+ "tier": "structured",
7
+ "max_output_tokens": 900,
8
+ "parallel_safe_with": ["meera"],
9
+ "inputs": ["task_map", "session_context", "meera_output", "tech_stack"],
10
+ "outputs": ["feasibility_analysis"],
11
+ "allowed_tools": ["design-reference", "stacks"],
12
+ "allowed_jobs": [
13
+ "T-shirt sizing (two-axis: UI x State)",
14
+ "risk and blocker identification",
15
+ "simpler-alternative sizing (modal vs accordion vs wizard, etc.)"
16
+ ],
17
+ "forbidden_jobs": [
18
+ "visual or business critique",
19
+ "implement code without explicit build approval"
20
+ ],
21
+ "routing_triggers": ["build_effort", "implementation_risk", "modal_vs_wizard", "state_machine"],
22
+ "never_route_for": ["visual_quality", "delight_moment"],
23
+ "chain_position": 4,
24
+ "handoff_from": ["meera"],
25
+ "handoff_to": ["zara"],
26
+ "requires_session_state": true,
27
+ "knowledge_categories": ["tech"],
28
+ "effort_overrides": {
29
+ "trivial": { "when": "single feature T-shirt sizing (structured extract)", "max_output_tokens": 500 },
30
+ "hard": { "when": "architecture / state-machine risk", "max_output_tokens": 900 }
31
+ }
32
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "query-expander",
3
+ "role": "retrieval_assistant",
4
+ "system_card": "agents/cards/query-expander.md",
5
+ "tier": "structured",
6
+ "max_output_tokens": 200,
7
+ "parallel_safe_with": [],
8
+ "allowed_jobs": ["query expansion for reference retrieval"],
9
+ "forbidden_jobs": ["critique", "wireframe", "design generation"],
10
+ "effort_overrides": {
11
+ "trivial": { "when": "always", "max_output_tokens": 200 }
12
+ }
13
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "id": "raj",
3
+ "role": "arbitrator",
4
+ "system_skill": "skills/raj/SKILL.md",
5
+ "system_card": "agents/cards/raj.md",
6
+ "tier": "arbitrate",
7
+ "max_output_tokens": 1200,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["session_context", "persona_outputs"],
10
+ "outputs": ["arbitration_verdict"],
11
+ "allowed_tools": ["design-reference"],
12
+ "allowed_jobs": [
13
+ "resolve stalemates between personas using the 5 product principles",
14
+ "issue final SHIP / REVISE / BLOCK when personas disagree"
15
+ ],
16
+ "forbidden_jobs": [
17
+ "run when there is no stalemate or BLOCK condition",
18
+ "implement code without explicit build approval"
19
+ ],
20
+ "routing_triggers": ["stalemate", "block", "conflicting_verdicts"],
21
+ "never_route_for": ["routine_single_persona_critique"],
22
+ "chain_position": 6,
23
+ "handoff_from": ["zara", "arjun", "meera", "priya", "noor", "anuj"],
24
+ "handoff_to": [],
25
+ "requires_session_state": true,
26
+ "knowledge_categories": ["prd", "product", "design"],
27
+ "effort_overrides": {
28
+ "standard": { "when": "principle ranking (one verdict, never first)", "max_output_tokens": 1200 },
29
+ "hard": { "when": "cross-persona stalemate", "max_output_tokens": 1200 }
30
+ }
31
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "id": "ranker",
3
+ "role": "retrieval_assistant",
4
+ "system_card": "agents/cards/ranker.md",
5
+ "tier": "structured",
6
+ "max_output_tokens": 200,
7
+ "parallel_safe_with": [],
8
+ "allowed_jobs": ["rank reference candidates for persona relevance"],
9
+ "forbidden_jobs": ["critique", "wireframe", "design generation"],
10
+ "effort_overrides": {
11
+ "trivial": { "when": "always", "max_output_tokens": 200 }
12
+ }
13
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "id": "run-unchunked",
3
+ "name": "Run Unchunked",
4
+ "tier": "structured",
5
+ "max_output_tokens": 900,
6
+ "system_card": "agents/cards/run-unchunked.md",
7
+ "system_skill": "skills/run-unchunked/SKILL.md",
8
+ "allowed_jobs": [
9
+ "Run the legacy non-chunked orchestrator",
10
+ "Execute a single-pass persona chain",
11
+ "Compare against chunked output"
12
+ ],
13
+ "forbidden_jobs": [
14
+ "Replace the default chunked orchestrator",
15
+ "Run the chunk planner"
16
+ ],
17
+ "hard_gates": [],
18
+ "parallel_safe_with": []
19
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "id": "ux-story-gate",
3
+ "role": "orchestrator",
4
+ "system_skill": "skills/ux-story-gate/SKILL.md",
5
+ "inputs": ["user_ask", "prd_sources", "figma_context", "knowledge_bank"],
6
+ "outputs": ["task_map", "ds_checklist", "routing_decision", "session_state"],
7
+ "allowed_tools": ["design-reference", "figma_mcp", "browser_verify", "knowledge-bank"],
8
+ "allowed_jobs": [
9
+ "Phase 0: discover PRDs/user stories, build task map",
10
+ "Phase 0.5: DS/Figma discovery, DS token checklist",
11
+ "Phase 1: mental model of user personas",
12
+ "Phase 1.5: MoE routing decision",
13
+ "Phase 4.5: browser verify gate",
14
+ "Phase 5.5: assess-only mode gate"
15
+ ],
16
+ "forbidden_jobs": [
17
+ "skip phases 0-1.5 before handing off to persona chain"
18
+ ],
19
+ "routing_triggers": ["any_screen_or_flow_review"],
20
+ "hands_off_to": "persona-orchestrator",
21
+ "requires_session_state": true,
22
+ "mandatory_first_step": true
23
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "id": "zara",
3
+ "role": "delight",
4
+ "system_skill": "skills/zara/SKILL.md",
5
+ "system_card": "agents/cards/zara.md",
6
+ "tier": "critique",
7
+ "max_output_tokens": 1200,
8
+ "parallel_safe_with": [],
9
+ "inputs": ["task_map", "session_context", "priya_output", "ds_checklist"],
10
+ "outputs": ["delight_pass"],
11
+ "allowed_tools": ["design-reference"],
12
+ "allowed_jobs": [
13
+ "identify exactly ONE structural or surface delight moment",
14
+ "add delight on top of an already DS-compliant, hierarchy-correct foundation"
15
+ ],
16
+ "forbidden_jobs": [
17
+ "contrast fixes, token drift correction, or any brand/design-system recovery — these are out of scope for Zara; refuse and route to the DS Gate + Arjun",
18
+ "run before the ds_gate has passed",
19
+ "implement code without explicit build approval"
20
+ ],
21
+ "routing_triggers": ["delight_moment", "onboarding", "empty_state", "first_impression"],
22
+ "never_route_for": ["contrast", "brand_tokens", "design_system_compliance", "accessibility_fix"],
23
+ "requires_ds_gate_pass": true,
24
+ "chain_position": 5,
25
+ "handoff_from": ["priya"],
26
+ "handoff_to": [],
27
+ "requires_session_state": true,
28
+ "knowledge_categories": ["brand", "design"],
29
+ "effort_overrides": {
30
+ "standard": { "when": "delight pass (one peak moment)", "max_output_tokens": 1200 },
31
+ "hard": { "when": "novel interaction design", "max_output_tokens": 1200 }
32
+ }
33
+ }
@@ -0,0 +1,99 @@
1
+ {
2
+ "description": "MoE routing table — maps a classified problem type to the expert(s) that should run, and the experts that must never run for that problem type. Used by ux-story-gate Phase 1.5 and persona-orchestrator.",
3
+ "rules": [
4
+ {
5
+ "problem_type": "design_director",
6
+ "signals": ["design-director", "design director", "guide how to design", "design and build", "implement the spec", "design spec build", "producer path"],
7
+ "route_to": ["design-director"],
8
+ "never_route_to": ["design-critic_chain"],
9
+ "notes": "Producer path — ideation → DesignSpec → spec gates → build. Use /design-director skill, not critique chain."
10
+ },
11
+ {
12
+ "problem_type": "ideation_wireframe",
13
+ "signals": ["wireframe", "mockup", "new screen", "design from scratch", "layout", "ia concept", "ideation", "ux ideator", "text wireframe", "screen layout"],
14
+ "route_to": ["ideation_chain"],
15
+ "never_route_to": ["design-critic_chain", "zara"],
16
+ "notes": "Uses ideation_chain from chain.json — full text wireframes via Noor + Anuj. Never the critique lite chain."
17
+ },
18
+ {
19
+ "problem_type": "structure_ia",
20
+ "signals": ["structure", "ia", "navigation", "nested_ui", "information architecture", "wizard", "form flow"],
21
+ "route_to": ["noor"],
22
+ "never_route_to": ["zara"]
23
+ },
24
+ {
25
+ "problem_type": "ux_friction",
26
+ "signals": ["ux friction", "accessibility", "responsive", "interaction bug", "usability"],
27
+ "route_to": ["arjun"],
28
+ "never_route_to": ["zara"],
29
+ "notes": "Zara is never used for contrast fixes."
30
+ },
31
+ {
32
+ "problem_type": "brand_design_system",
33
+ "signals": ["brand", "tokens", "contrast", "design system", "ds compliance", "hex", "!important"],
34
+ "route_to": ["ds_gate", "arjun_color_system_only"],
35
+ "never_route_to": ["zara", "noor_alone"],
36
+ "notes": "DS Gate runs first; Arjun is scoped to Color System diagnostic only, not a general critique."
37
+ },
38
+ {
39
+ "problem_type": "business_priority",
40
+ "signals": ["business priority", "metric alignment", "north-star", "monetization", "retention", "pricing"],
41
+ "route_to": ["meera"],
42
+ "never_route_to": []
43
+ },
44
+ {
45
+ "problem_type": "build_effort",
46
+ "signals": ["build size", "modal vs wizard", "feasibility", "effort sizing", "state machine"],
47
+ "route_to": ["priya"],
48
+ "never_route_to": []
49
+ },
50
+ {
51
+ "problem_type": "delight",
52
+ "signals": ["delight", "onboarding", "peak moment", "empty state", "first impression"],
53
+ "route_to": ["zara"],
54
+ "never_route_to": [],
55
+ "notes": "Only after the DS Gate has passed."
56
+ },
57
+ {
58
+ "problem_type": "daily_use_density",
59
+ "signals": ["daily use", "bulk actions", "density", "keyboard shortcuts", "power user"],
60
+ "route_to": ["anuj"],
61
+ "never_route_to": [],
62
+ "notes": "Not for learning products unless usage frequency is daily/weekly."
63
+ },
64
+ {
65
+ "problem_type": "stalemate",
66
+ "signals": ["stalemate", "block", "conflicting verdicts"],
67
+ "route_to": ["raj"],
68
+ "never_route_to": []
69
+ },
70
+ {
71
+ "problem_type": "chunked_run",
72
+ "signals": ["chunked", "chunk planner", "run-chunked", "cheap models", "free models", "ollama"],
73
+ "route_to": ["chunk-planner"],
74
+ "never_route_to": ["design-critic_chain"],
75
+ "notes": "Explain or inspect the v2.0 chunked execution planner."
76
+ },
77
+ {
78
+ "problem_type": "full_screen_review",
79
+ "signals": ["full screen review", "critique this screen", "review this page"],
80
+ "route_to": ["design-critic_chain"],
81
+ "never_route_to": ["direct_noor_without_gate"],
82
+ "notes": "Always enter through ux-story-gate, never call /noor directly without the gate."
83
+ },
84
+ {
85
+ "problem_type": "collect_knowledge",
86
+ "signals": ["kavi", "/kavi", "collect knowledge", "scan codebase", "build vault", "knowledge archivist", "collect-knowledge"],
87
+ "route_to": ["kavi"],
88
+ "never_route_to": ["design-critic_chain", "zara", "arjun", "meera", "priya"],
89
+ "notes": "Producer only — run /kavi or `npx analyzthis_design collect`. Never part of a critique chain."
90
+ },
91
+ {
92
+ "problem_type": "mood_board",
93
+ "signals": ["mood board", "mood-board", "/mood-board", "visual direction", "references", "inspiration", "style direction", "design direction"],
94
+ "route_to": ["mood-board"],
95
+ "never_route_to": ["design-critic_chain", "zara", "noor_alone"],
96
+ "notes": "Visual direction setting — collect references, tag them, pull DS patterns, run team deliberation. Not a screen critique."
97
+ }
98
+ ]
99
+ }