whiteport-design-studio 0.1.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 (686) hide show
  1. package/LICENSE +27 -0
  2. package/README.md +196 -0
  3. package/docs/getting-started/MANUAL-INIT-GUIDE.md +251 -0
  4. package/docs/getting-started/about-wds.md +86 -0
  5. package/docs/getting-started/agent-activation/activation/step-01-load-agent-definition.md +28 -0
  6. package/docs/getting-started/agent-activation/activation/step-02-check-conversations.md +43 -0
  7. package/docs/getting-started/agent-activation/activation/step-03-check-activation-context.md +42 -0
  8. package/docs/getting-started/agent-activation/activation/step-04-handoff-presentation.md +30 -0
  9. package/docs/getting-started/agent-activation/activation/step-04-standard-presentation.md +27 -0
  10. package/docs/getting-started/agent-activation/activation/step-05-handoff-acknowledge.md +34 -0
  11. package/docs/getting-started/agent-activation/activation/step-05-standard-analysis.md +26 -0
  12. package/docs/getting-started/agent-activation/agent-launchers.md +134 -0
  13. package/docs/getting-started/agent-activation/wds-freya-ux.md +67 -0
  14. package/docs/getting-started/agent-activation/wds-idunn-pm.md +67 -0
  15. package/docs/getting-started/agent-activation/wds-mimir.md +78 -0
  16. package/docs/getting-started/agent-activation/wds-saga-analyst.md +65 -0
  17. package/docs/getting-started/getting-started-overview.md +112 -0
  18. package/docs/getting-started/installation.md +62 -0
  19. package/docs/getting-started/quick-start.md +125 -0
  20. package/docs/getting-started/where-to-go-next.md +137 -0
  21. package/docs/learn-wds/00-course-overview/00-getting-started-overview.md +66 -0
  22. package/docs/learn-wds/00-course-overview/01-prerequisites.md +98 -0
  23. package/docs/learn-wds/00-course-overview/02-learning-paths.md +99 -0
  24. package/docs/learn-wds/00-course-overview/03-support.md +128 -0
  25. package/docs/learn-wds/00-course-overview.md +211 -0
  26. package/docs/learn-wds/Webinars/2024-12-22-WDS-Jam-1-Say-Hello-to-AI-Agent-Framework.md +0 -0
  27. package/docs/learn-wds/Webinars/2024-12-22-WDS-Sessions-1-Say-Hello-to-WDS.md +174 -0
  28. package/docs/learn-wds/Webinars/2025-10-22-Webinar-WDS-v4.md +181 -0
  29. package/docs/learn-wds/Webinars/2026-01-15-WDS-Sessions-2-Strategy-in-Practice.md +159 -0
  30. package/docs/learn-wds/course-explainers/Module 00-transcript.srt +635 -0
  31. package/docs/learn-wds/course-explainers/Module 02-transcript.srt +807 -0
  32. package/docs/learn-wds/course-explainers/Module-00-notebook-lm-prompt.md +250 -0
  33. package/docs/learn-wds/course-explainers/Module-00-thumbnail-prompt.md +33 -0
  34. package/docs/learn-wds/course-explainers/Module-00-youtube-show-notes.md +78 -0
  35. package/docs/learn-wds/course-explainers/Module-01-notebook-lm-prompt.md +418 -0
  36. package/docs/learn-wds/course-explainers/Module-01-thumbnail-prompt.md +33 -0
  37. package/docs/learn-wds/course-explainers/Module-01-transcript.srt +731 -0
  38. package/docs/learn-wds/course-explainers/Module-02-notebook-lm-prompt.md +342 -0
  39. package/docs/learn-wds/course-explainers/Module-02-thumbnail-prompt.md +34 -0
  40. package/docs/learn-wds/course-explainers/Module-03-notebook-lm-prompt.md +745 -0
  41. package/docs/learn-wds/course-explainers/Module-03-thumbnail-prompt.md +33 -0
  42. package/docs/learn-wds/course-explainers/Module-03-transcript.srt +595 -0
  43. package/docs/learn-wds/course-explainers/Module-04-notebook-lm-prompt.md +163 -0
  44. package/docs/learn-wds/course-explainers/Module-04-thumbnail-prompt.md +36 -0
  45. package/docs/learn-wds/course-explainers/Module-04-youtube-show-notes.md +95 -0
  46. package/docs/learn-wds/course-explainers/Module-05-notebook-lm-prompt.md +274 -0
  47. package/docs/learn-wds/course-explainers/Module-05-thumbnail-prompt.md +40 -0
  48. package/docs/learn-wds/course-explainers/Module-05-youtube-show-notes.md +65 -0
  49. package/docs/learn-wds/course-explainers/module-01-YOUTUBE-SHOW-NOTES.md +75 -0
  50. package/docs/learn-wds/course-explainers/module-02-YOUTUBE-SHOW-NOTES.md +86 -0
  51. package/docs/learn-wds/course-explainers/module-03-YOUTUBE-SHOW-NOTES.md +82 -0
  52. package/docs/learn-wds/course-explainers/trigger-map-example.jpg +0 -0
  53. package/docs/learn-wds/module-01-why-wds-matters/lesson-01-the-problem.md +113 -0
  54. package/docs/learn-wds/module-01-why-wds-matters/lesson-02-the-solution.md +75 -0
  55. package/docs/learn-wds/module-01-why-wds-matters/lesson-03-the-path-forward.md +94 -0
  56. package/docs/learn-wds/module-01-why-wds-matters/module-01-overview.md +109 -0
  57. package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/01-lesson.md +124 -0
  58. package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/01-quick-checklist.md +63 -0
  59. package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/02-full-lesson.md +124 -0
  60. package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/checklist.md +87 -0
  61. package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/lesson.md +203 -0
  62. package/docs/learn-wds/module-02-installation-setup/lesson-01-setting-up-github/checklist.md +70 -0
  63. package/docs/learn-wds/module-02-installation-setup/lesson-02-git-configuration/checklist.md +40 -0
  64. package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/01-quick-checklist.md +48 -0
  65. package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-full-lesson.md +88 -0
  66. package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-lesson.md +88 -0
  67. package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-quick-checklist.md +48 -0
  68. package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/checklist.md +48 -0
  69. package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/tutorial.md +149 -0
  70. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/01-quick-checklist.md +51 -0
  71. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/02-full-lesson.md +111 -0
  72. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-lesson.md +111 -0
  73. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-quick-checklist.md +51 -0
  74. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/checklist.md +41 -0
  75. package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/tutorial.md +159 -0
  76. package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/checklist.md +93 -0
  77. package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/tutorial.md +217 -0
  78. package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/01-quick-checklist.md +73 -0
  79. package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/02-full-lesson.md +206 -0
  80. package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-lesson.md +206 -0
  81. package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-quick-checklist.md +73 -0
  82. package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/checklist.md +79 -0
  83. package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/tutorial.md +244 -0
  84. package/docs/learn-wds/module-02-installation-setup/module-02-overview.md +77 -0
  85. package/docs/learn-wds/module-03-alignment-signoff/lesson-01-understanding-alignment.md +175 -0
  86. package/docs/learn-wds/module-03-alignment-signoff/lesson-02-creating-alignment-document.md +289 -0
  87. package/docs/learn-wds/module-03-alignment-signoff/lesson-03-negotiation-acceptance.md +115 -0
  88. package/docs/learn-wds/module-03-alignment-signoff/lesson-04-external-contracts.md +201 -0
  89. package/docs/learn-wds/module-03-alignment-signoff/lesson-05-internal-signoff.md +189 -0
  90. package/docs/learn-wds/module-03-alignment-signoff/module-03-overview.md +170 -0
  91. package/docs/learn-wds/module-03-alignment-signoff/tutorial-03.md +344 -0
  92. package/docs/learn-wds/module-04-product-brief/lesson-01-chaos-problem.md +193 -0
  93. package/docs/learn-wds/module-04-product-brief/lesson-02-five-questions.md +364 -0
  94. package/docs/learn-wds/module-04-product-brief/lesson-03-document-structure.md +388 -0
  95. package/docs/learn-wds/module-04-product-brief/lesson-04-wds-advantage.md +402 -0
  96. package/docs/learn-wds/module-04-product-brief/lesson-05-using-brief.md +491 -0
  97. package/docs/learn-wds/module-04-product-brief/lesson-06-additional-documents.md +645 -0
  98. package/docs/learn-wds/module-04-product-brief/module-04-overview.md +194 -0
  99. package/docs/learn-wds/module-04-product-brief/tutorial-04.md +400 -0
  100. package/docs/learn-wds/module-05-map-triggers-outcomes/tutorial-04.md +460 -0
  101. package/docs/learn-wds/module-05-trigger-mapping/lesson-01-missing-link.md +237 -0
  102. package/docs/learn-wds/module-05-trigger-mapping/lesson-02-heritage-evolution.md +364 -0
  103. package/docs/learn-wds/module-05-trigger-mapping/lesson-03-five-workshops-overview.md +459 -0
  104. package/docs/learn-wds/module-05-trigger-mapping/lesson-04-workshop-1-business-goals.md +274 -0
  105. package/docs/learn-wds/module-05-trigger-mapping/lesson-05-workshop-2-target-groups.md +504 -0
  106. package/docs/learn-wds/module-05-trigger-mapping/lesson-06-workshop-3-driving-forces.md +458 -0
  107. package/docs/learn-wds/module-05-trigger-mapping/lesson-07-workshop-4-prioritization.md +313 -0
  108. package/docs/learn-wds/module-05-trigger-mapping/lesson-08-workshop-5-feature-impact.md +474 -0
  109. package/docs/learn-wds/module-05-trigger-mapping/lesson-09-positive-negative-drivers.md +348 -0
  110. package/docs/learn-wds/module-05-trigger-mapping/lesson-10-visual-trigger-map.md +411 -0
  111. package/docs/learn-wds/module-05-trigger-mapping/lesson-11-feature-impact-scoring.md +403 -0
  112. package/docs/learn-wds/module-05-trigger-mapping/module-05-overview.md +283 -0
  113. package/docs/learn-wds/module-05-trigger-mapping/tutorial-05.md +595 -0
  114. package/docs/learn-wds/module-05-trigger-mapping/tutorial-05b-value-trigger-chain.md +393 -0
  115. package/docs/learn-wds/module-05-trigger-mapping/tutorial-05c-documentation-synthesis.md +475 -0
  116. package/docs/learn-wds/module-06-platform-architecture/tutorial-06.md +358 -0
  117. package/docs/learn-wds/module-08-initialize-scenario/tutorial-08.md +521 -0
  118. package/docs/learn-wds/module-09-design-system/tutorial-09.md +515 -0
  119. package/docs/learn-wds/module-10-design-delivery/tutorial-10.md +604 -0
  120. package/docs/learn-wds/module-12-conceptual-specs/tutorial-12.md +734 -0
  121. package/docs/method/content-creation-philosophy.md +311 -0
  122. package/docs/method/content-purpose-guide.md +436 -0
  123. package/docs/method/phase-1-product-exploration-guide.md +178 -0
  124. package/docs/method/phase-2-trigger-mapping-guide.md +399 -0
  125. package/docs/method/phase-3-prd-platform-guide.md +284 -0
  126. package/docs/method/phase-4-ux-design-guide.md +388 -0
  127. package/docs/method/phase-5-design-system-guide.md +916 -0
  128. package/docs/method/phase-6-prd-finalization-guide.md +510 -0
  129. package/docs/method/tone-of-voice-guide.md +466 -0
  130. package/docs/method/value-trigger-chain-guide.md +474 -0
  131. package/docs/method/wds-method-guide.md +378 -0
  132. package/docs/models/action-mapping.md +681 -0
  133. package/docs/models/customer-awareness-cycle.md +530 -0
  134. package/docs/models/golden-circle.md +532 -0
  135. package/docs/models/gtd-getting-things-done.md +193 -0
  136. package/docs/models/impact-effect-mapping.md +600 -0
  137. package/docs/models/kathy-sierra-badass-users.md +672 -0
  138. package/docs/models/models-guide.md +297 -0
  139. package/docs/models/smart-goals-model.md +294 -0
  140. package/docs/tools/cursor-windsurf.md +190 -0
  141. package/docs/tools/figma-mcp.md +453 -0
  142. package/docs/tools/figma.md +212 -0
  143. package/docs/tools/git.md +285 -0
  144. package/docs/tools/html-to-design.md +185 -0
  145. package/docs/tools/nanobanana.md +240 -0
  146. package/docs/tools/prepare-for-figma-export.md +690 -0
  147. package/docs/tools/wds-tools-guide.md +115 -0
  148. package/package.json +114 -0
  149. package/src/agents/freya-ux.agent.yaml +128 -0
  150. package/src/agents/idunn-pm.agent.yaml +94 -0
  151. package/src/agents/mimir-orchestrator.agent.yaml +139 -0
  152. package/src/agents/saga-analyst.agent.yaml +128 -0
  153. package/src/data/agent-guides/freya/agentic-development.md +200 -0
  154. package/src/data/agent-guides/freya/content-creation.md +270 -0
  155. package/src/data/agent-guides/freya/design-system.md +336 -0
  156. package/src/data/agent-guides/freya/meta-content-guide.md +483 -0
  157. package/src/data/agent-guides/freya/specification-quality.md +250 -0
  158. package/src/data/agent-guides/freya/strategic-design.md +118 -0
  159. package/src/data/agent-guides/idunn/design-handoffs.md +411 -0
  160. package/src/data/agent-guides/idunn/platform-requirements.md +351 -0
  161. package/src/data/agent-guides/mimir/emotional-intelligence.md +295 -0
  162. package/src/data/agent-guides/mimir/teaching-styles.md +286 -0
  163. package/src/data/agent-guides/mimir/wds-overview.md +369 -0
  164. package/src/data/agent-guides/saga/discovery-conversation.md +245 -0
  165. package/src/data/agent-guides/saga/strategic-documentation.md +456 -0
  166. package/src/data/agent-guides/saga/trigger-mapping.md +403 -0
  167. package/src/data/design-system/component-boundaries.md +318 -0
  168. package/src/data/design-system/figma-component-structure.md +697 -0
  169. package/src/data/design-system/naming-conventions.md +200 -0
  170. package/src/data/design-system/state-management.md +93 -0
  171. package/src/data/design-system/token-architecture.md +474 -0
  172. package/src/data/design-system/validation-patterns.md +74 -0
  173. package/src/data/presentations/freya-intro.md +275 -0
  174. package/src/data/presentations/freya-presentation.md +78 -0
  175. package/src/data/presentations/idunn-intro.md +231 -0
  176. package/src/data/presentations/idunn-presentation.md +80 -0
  177. package/src/data/presentations/mimir-presentation.md +123 -0
  178. package/src/data/presentations/saga-intro.md +285 -0
  179. package/src/data/presentations/saga-presentation.md +75 -0
  180. package/src/gems/eira-visual-designer.md +571 -0
  181. package/src/module.yaml +111 -0
  182. package/src/templates/design-delivery.template.yaml +104 -0
  183. package/src/templates/platform-requirements.template.yaml +69 -0
  184. package/src/templates/test-scenario.template.yaml +192 -0
  185. package/src/workflows/00-system/FILE-NAMING-CONVENTIONS.md +286 -0
  186. package/src/workflows/00-system/INSTRUCTION-FILE-GUIDELINES.md +284 -0
  187. package/src/workflows/00-system/SPECIFICATION-FORMATTING-STANDARDS.md +516 -0
  188. package/src/workflows/00-system/language-configuration-guide.md +472 -0
  189. package/src/workflows/00-system/language-flow-diagram.md +446 -0
  190. package/src/workflows/00-system/wds-workflow-status-template.yaml +106 -0
  191. package/src/workflows/1-project-brief/alignment-signoff/contract.template.md +297 -0
  192. package/src/workflows/1-project-brief/alignment-signoff/pitch.template.md +101 -0
  193. package/src/workflows/1-project-brief/alignment-signoff/section-guide.md +212 -0
  194. package/src/workflows/1-project-brief/alignment-signoff/service-agreement.template.md +277 -0
  195. package/src/workflows/1-project-brief/alignment-signoff/signoff.template.md +188 -0
  196. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-01-start.md +81 -0
  197. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-01.5-extract-communications.md +78 -0
  198. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-02-explore-sections.md +159 -0
  199. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-03-synthesize.md +48 -0
  200. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-03.5-generate-contract.md +87 -0
  201. package/src/workflows/1-project-brief/alignment-signoff/steps-c/step-04-present-for-approval.md +89 -0
  202. package/src/workflows/1-project-brief/alignment-signoff/substeps/01-start-understand/01-understand-situation.md +27 -0
  203. package/src/workflows/1-project-brief/alignment-signoff/substeps/01-start-understand/02-determine-if-needed.md +32 -0
  204. package/src/workflows/1-project-brief/alignment-signoff/substeps/01-start-understand/03-offer-extract-communications.md +31 -0
  205. package/src/workflows/1-project-brief/alignment-signoff/substeps/01-start-understand/04-extract-info.md +39 -0
  206. package/src/workflows/1-project-brief/alignment-signoff/substeps/01-start-understand/05-detect-starting-point.md +34 -0
  207. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/06-explore-realization.md +45 -0
  208. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/07-explore-solution.md +25 -0
  209. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/08-explore-why-it-matters.md +33 -0
  210. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/09-explore-how-we-see-it-working.md +29 -0
  211. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/10-explore-paths-we-explored.md +28 -0
  212. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/11-explore-recommended-solution.md +26 -0
  213. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/12-explore-path-forward.md +38 -0
  214. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/13-explore-value-we-create.md +40 -0
  215. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/14-explore-cost-of-inaction.md +37 -0
  216. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/15-explore-our-commitment.md +33 -0
  217. package/src/workflows/1-project-brief/alignment-signoff/substeps/02-explore-sections/16-explore-summary.md +26 -0
  218. package/src/workflows/1-project-brief/alignment-signoff/substeps/03-synthesize-present/17-reflect-back.md +33 -0
  219. package/src/workflows/1-project-brief/alignment-signoff/substeps/03-synthesize-present/18-synthesize-document.md +41 -0
  220. package/src/workflows/1-project-brief/alignment-signoff/substeps/03-synthesize-present/18.5-create-vtc.md +76 -0
  221. package/src/workflows/1-project-brief/alignment-signoff/substeps/03-synthesize-present/19-present-for-approval.md +44 -0
  222. package/src/workflows/1-project-brief/alignment-signoff/substeps/04-generate-signoff/20-offer-signoff-document.md +38 -0
  223. package/src/workflows/1-project-brief/alignment-signoff/substeps/04-generate-signoff/21-determine-business-model.md +50 -0
  224. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/22-build-section-01-project-overview.md +29 -0
  225. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/23-build-section-02-business-model.md +66 -0
  226. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/24-build-section-03-scope-of-work.md +46 -0
  227. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/25-build-section-04-payment-terms.md +81 -0
  228. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/26-build-section-05-timeline.md +31 -0
  229. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/27-build-section-06-availability.md +38 -0
  230. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/28-build-section-07-confidentiality.md +42 -0
  231. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/29-build-section-08-not-to-exceed.md +54 -0
  232. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/30-build-section-09-work-initiation.md +41 -0
  233. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/31-build-section-10-terms-and-conditions.md +38 -0
  234. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/32-build-section-11-approval.md +36 -0
  235. package/src/workflows/1-project-brief/alignment-signoff/substeps/05-build-contract/33-finalize-contract.md +40 -0
  236. package/src/workflows/1-project-brief/alignment-signoff/substeps/06-build-signoff-internal/34-build-internal-signoff.md +65 -0
  237. package/src/workflows/1-project-brief/alignment-signoff/substeps/06-build-signoff-internal/35-finalize-signoff.md +39 -0
  238. package/src/workflows/1-project-brief/alignment-signoff/substeps/substeps-guide.md +81 -0
  239. package/src/workflows/1-project-brief/alignment-signoff/validation-report-alignment-signoff.md +360 -0
  240. package/src/workflows/1-project-brief/alignment-signoff/workflow.md +157 -0
  241. package/src/workflows/1-project-brief/complete/validation-report-complete.md +142 -0
  242. package/src/workflows/1-project-brief/complete/workflow.md +60 -0
  243. package/src/workflows/1-project-brief/handover/instructions.md +16 -0
  244. package/src/workflows/1-project-brief/handover/steps/step-01-analyze-brief.md +31 -0
  245. package/src/workflows/1-project-brief/handover/steps/step-02-create-summary.md +46 -0
  246. package/src/workflows/1-project-brief/handover/steps/step-03-provide-activation.md +44 -0
  247. package/src/workflows/1-project-brief/project-brief/complete/instructions.md +273 -0
  248. package/src/workflows/1-project-brief/project-brief/complete/project-brief.template.md +193 -0
  249. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-01-init.md +35 -0
  250. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-02-vision.md +43 -0
  251. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-03-positioning.md +34 -0
  252. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-04-create-vtc.md +118 -0
  253. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-05-business-model.md +26 -0
  254. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-06-business-customers.md +28 -0
  255. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-07-target-users.md +40 -0
  256. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-08-success-criteria.md +40 -0
  257. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-09-competitive-landscape.md +42 -0
  258. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-10-constraints.md +43 -0
  259. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-10a-platform-strategy.md +73 -0
  260. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-11-create-vtc.md +133 -0
  261. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-11-tone-of-voice.md +233 -0
  262. package/src/workflows/1-project-brief/project-brief/complete/steps-c/step-12-synthesize.md +44 -0
  263. package/src/workflows/1-project-brief/project-brief/complete/steps-c/substeps/11-tone-of-voice-example.md +52 -0
  264. package/src/workflows/1-project-brief/project-brief/complete/workflow.md +60 -0
  265. package/src/workflows/1-project-brief/project-brief/simplified/instructions.md +126 -0
  266. package/src/workflows/1-project-brief/project-brief/simplified/simplified-brief.template.md +44 -0
  267. package/src/workflows/1-project-brief/project-brief/validation-report-project-brief.md +343 -0
  268. package/src/workflows/1-project-brief/workflow.yaml +37 -0
  269. package/src/workflows/2-trigger-mapping/REVIEW-FINDINGS.md +160 -0
  270. package/src/workflows/2-trigger-mapping/document-generation/instructions.md +16 -0
  271. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-01-generate-hub.md +188 -0
  272. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-02-generate-business-goals.md +231 -0
  273. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-03a-generate-primary-persona.md +96 -0
  274. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-03b-generate-secondary-persona.md +104 -0
  275. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-03c-generate-tertiary-persona.md +96 -0
  276. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-04-generate-key-insights.md +88 -0
  277. package/src/workflows/2-trigger-mapping/document-generation/steps-c/step-05-quality-check.md +68 -0
  278. package/src/workflows/2-trigger-mapping/document-generation/steps-c/substeps/04-key-insights-structure.md +222 -0
  279. package/src/workflows/2-trigger-mapping/document-generation/steps-c/substeps/05-quality-checklist.md +212 -0
  280. package/src/workflows/2-trigger-mapping/document-generation/templates/persona-document-template.md +485 -0
  281. package/src/workflows/2-trigger-mapping/document-generation/validation-report-document-generation.md +321 -0
  282. package/src/workflows/2-trigger-mapping/document-generation/workflow.md +66 -0
  283. package/src/workflows/2-trigger-mapping/handover/instructions.md +15 -0
  284. package/src/workflows/2-trigger-mapping/handover/steps/step-01-finalize-hub.md +25 -0
  285. package/src/workflows/2-trigger-mapping/handover/steps/step-02-add-cross-references.md +27 -0
  286. package/src/workflows/2-trigger-mapping/handover/steps/step-03-quality-check.md +25 -0
  287. package/src/workflows/2-trigger-mapping/handover/steps/step-04-create-handover-package.md +73 -0
  288. package/src/workflows/2-trigger-mapping/handover/steps/step-05-provide-activation.md +64 -0
  289. package/src/workflows/2-trigger-mapping/instructions.md +159 -0
  290. package/src/workflows/2-trigger-mapping/mermaid-diagram/instructions.md +28 -0
  291. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-01-initialize-structure.md +84 -0
  292. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-02-format-business-goals.md +86 -0
  293. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-03-format-platform.md +94 -0
  294. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-04-format-target-groups.md +113 -0
  295. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-05-format-driving-forces.md +118 -0
  296. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-06-create-connections.md +136 -0
  297. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-07-apply-styling.md +171 -0
  298. package/src/workflows/2-trigger-mapping/mermaid-diagram/steps-c/step-08-quality-check.md +183 -0
  299. package/src/workflows/2-trigger-mapping/mermaid-diagram/validation-report-mermaid-diagram.md +185 -0
  300. package/src/workflows/2-trigger-mapping/mermaid-diagram/workflow.md +70 -0
  301. package/src/workflows/2-trigger-mapping/micro-instructions-mermaid-diagram.md +262 -0
  302. package/src/workflows/2-trigger-mapping/templates/feature-impact.template.md +47 -0
  303. package/src/workflows/2-trigger-mapping/templates/trigger-map.template.md +169 -0
  304. package/src/workflows/2-trigger-mapping/workflow.yaml +55 -0
  305. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/instructions.md +140 -0
  306. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/step-01-business-goals.md +124 -0
  307. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/step-02-target-groups.md +143 -0
  308. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/step-03-driving-forces.md +133 -0
  309. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/step-04-prioritization.md +130 -0
  310. package/src/workflows/2-trigger-mapping/workshops/0-documentation-synthesis/step-05-gap-analysis.md +141 -0
  311. package/src/workflows/2-trigger-mapping/workshops/1-business-goals/instructions.md +106 -0
  312. package/src/workflows/2-trigger-mapping/workshops/2-target-groups/instructions.md +106 -0
  313. package/src/workflows/2-trigger-mapping/workshops/3-driving-forces/instructions.md +130 -0
  314. package/src/workflows/2-trigger-mapping/workshops/4-prioritization/instructions.md +203 -0
  315. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/instructions.md +24 -0
  316. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/steps/step-01-extract-features.md +52 -0
  317. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/steps/step-02-confirm-assessment.md +41 -0
  318. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/steps/step-03-make-assessment.md +84 -0
  319. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/steps/step-04-generate-document.md +81 -0
  320. package/src/workflows/2-trigger-mapping/workshops/5-feature-impact/steps/step-05-wrap-up.md +55 -0
  321. package/src/workflows/3-prd-platform/handover/instructions.md +16 -0
  322. package/src/workflows/3-prd-platform/handover/steps/step-01-compile-deliverables.md +38 -0
  323. package/src/workflows/3-prd-platform/handover/steps/step-02-extract-epic-structure.md +30 -0
  324. package/src/workflows/3-prd-platform/handover/steps/step-03-prepare-prd-materials.md +31 -0
  325. package/src/workflows/3-prd-platform/handover/steps/step-04-create-handover-package.md +57 -0
  326. package/src/workflows/3-prd-platform/handover/steps/step-05-provide-activation.md +68 -0
  327. package/src/workflows/3-prd-platform/instructions.md +1161 -0
  328. package/src/workflows/3-prd-platform/templates/experimental-endpoints.template.md +221 -0
  329. package/src/workflows/3-prd-platform/templates/platform-architecture.template.md +159 -0
  330. package/src/workflows/3-prd-platform/templates/technical-constraints.template.md +191 -0
  331. package/src/workflows/3-prd-platform/workflow.yaml +39 -0
  332. package/src/workflows/4-ux-design/ARCHITECTURE.md +275 -0
  333. package/src/workflows/4-ux-design/COMPONENT-FILE-STRUCTURE.md +742 -0
  334. package/src/workflows/4-ux-design/CONCEPTUAL-SPECIFICATIONS.md +557 -0
  335. package/src/workflows/4-ux-design/CONTENT-PLACEMENT-GUIDE.md +552 -0
  336. package/src/workflows/4-ux-design/CROSS-PAGE-CONSISTENCY.md +301 -0
  337. package/src/workflows/4-ux-design/DOCUMENTATION-ARCHITECTURE.md +161 -0
  338. package/src/workflows/4-ux-design/HTML-VS-VISUAL-STYLES.md +243 -0
  339. package/src/workflows/4-ux-design/IMAGE-SKETCHING-BEST-PRACTICES.md +272 -0
  340. package/src/workflows/4-ux-design/PROACTIVE-TRANSLATION-WORKFLOW.md +447 -0
  341. package/src/workflows/4-ux-design/SKETCH-FIRST-IMPLEMENTATION-PLAN.md +617 -0
  342. package/src/workflows/4-ux-design/SKETCH-TEXT-ANALYSIS-GUIDE.md +532 -0
  343. package/src/workflows/4-ux-design/SKETCH-TEXT-QUICK-REFERENCE.md +222 -0
  344. package/src/workflows/4-ux-design/SKETCH-TEXT-STRATEGY.md +509 -0
  345. package/src/workflows/4-ux-design/STORYBOARD-INTEGRATION.md +714 -0
  346. package/src/workflows/4-ux-design/TRANSLATION-ORGANIZATION-GUIDE.md +513 -0
  347. package/src/workflows/4-ux-design/WDS-SPECIFICATION-PATTERN.md +436 -0
  348. package/src/workflows/4-ux-design/agentic-development/guides/AGENTIC-DEVELOPMENT-GUIDE.md +380 -0
  349. package/src/workflows/4-ux-design/agentic-development/guides/CREATION-GUIDE.md +1148 -0
  350. package/src/workflows/4-ux-design/agentic-development/guides/FILE-INDEX.md +212 -0
  351. package/src/workflows/4-ux-design/agentic-development/guides/PROTOTYPE-ANALYSIS.md +832 -0
  352. package/src/workflows/4-ux-design/agentic-development/guides/PROTOTYPE-INITIATION-DIALOG.md +409 -0
  353. package/src/workflows/4-ux-design/agentic-development/steps-c/1-prototype-setup.md +95 -0
  354. package/src/workflows/4-ux-design/agentic-development/steps-c/2-scenario-analysis.md +174 -0
  355. package/src/workflows/4-ux-design/agentic-development/steps-c/3-logical-view-breakdown.md +197 -0
  356. package/src/workflows/4-ux-design/agentic-development/steps-c/4a-announce-and-gather.md +69 -0
  357. package/src/workflows/4-ux-design/agentic-development/steps-c/4b-create-story-file.md +144 -0
  358. package/src/workflows/4-ux-design/agentic-development/steps-c/4c-implement-section.md +113 -0
  359. package/src/workflows/4-ux-design/agentic-development/steps-c/4d-present-for-testing.md +68 -0
  360. package/src/workflows/4-ux-design/agentic-development/steps-c/4e-handle-issue.md +85 -0
  361. package/src/workflows/4-ux-design/agentic-development/steps-c/4f-handle-improvement.md +104 -0
  362. package/src/workflows/4-ux-design/agentic-development/steps-c/4g-section-approved.md +146 -0
  363. package/src/workflows/4-ux-design/agentic-development/steps-c/5-finalization.md +158 -0
  364. package/src/workflows/4-ux-design/agentic-development/templates/PROTOTYPE-ROADMAP-template.md +382 -0
  365. package/src/workflows/4-ux-design/agentic-development/templates/components/DEV-MODE-GUIDE.md +189 -0
  366. package/src/workflows/4-ux-design/agentic-development/templates/components/dev-mode.css +164 -0
  367. package/src/workflows/4-ux-design/agentic-development/templates/components/dev-mode.html +18 -0
  368. package/src/workflows/4-ux-design/agentic-development/templates/components/dev-mode.js +430 -0
  369. package/src/workflows/4-ux-design/agentic-development/templates/demo-data-template.json +63 -0
  370. package/src/workflows/4-ux-design/agentic-development/templates/page-template.html +465 -0
  371. package/src/workflows/4-ux-design/agentic-development/templates/story-file-template.md +167 -0
  372. package/src/workflows/4-ux-design/agentic-development/templates/work-file-template.yaml +264 -0
  373. package/src/workflows/4-ux-design/agentic-development/validation-report-agentic-development.md +251 -0
  374. package/src/workflows/4-ux-design/agentic-development/workflow.md +631 -0
  375. package/src/workflows/4-ux-design/excalidraw-integration/guides/ai-collaboration.md +565 -0
  376. package/src/workflows/4-ux-design/excalidraw-integration/guides/excalidraw-guide.md +320 -0
  377. package/src/workflows/4-ux-design/excalidraw-integration/guides/excalidraw-setup.md +529 -0
  378. package/src/workflows/4-ux-design/excalidraw-integration/guides/export-workflow.md +563 -0
  379. package/src/workflows/4-ux-design/excalidraw-integration/guides/sketching-guide.md +693 -0
  380. package/src/workflows/4-ux-design/excalidraw-integration/validation-report-excalidraw-integration.md +208 -0
  381. package/src/workflows/4-ux-design/excalidraw-integration/workflow.md +226 -0
  382. package/src/workflows/4-ux-design/handover/instructions.md +15 -0
  383. package/src/workflows/4-ux-design/handover/steps/step-01-analyze-scenarios.md +32 -0
  384. package/src/workflows/4-ux-design/handover/steps/step-01-identify-delivery-scope.md +61 -0
  385. package/src/workflows/4-ux-design/handover/steps/step-02-create-summary.md +59 -0
  386. package/src/workflows/4-ux-design/handover/steps/step-02-extract-technical-needs.md +33 -0
  387. package/src/workflows/4-ux-design/handover/steps/step-03-create-delivery-package.md +79 -0
  388. package/src/workflows/4-ux-design/handover/steps/step-03-provide-activation.md +47 -0
  389. package/src/workflows/4-ux-design/handover/steps/step-04-log-delivery.md +41 -0
  390. package/src/workflows/4-ux-design/handover/steps/step-05-provide-activation.md +75 -0
  391. package/src/workflows/4-ux-design/modular-architecture/00-MODULAR-ARCHITECTURE-GUIDE.md +71 -0
  392. package/src/workflows/4-ux-design/modular-architecture/00-foundation/agent-designer-collaboration.md +488 -0
  393. package/src/workflows/4-ux-design/modular-architecture/01-core-concepts/complexity-detection.md +123 -0
  394. package/src/workflows/4-ux-design/modular-architecture/01-core-concepts/content-placement-rules.md +144 -0
  395. package/src/workflows/4-ux-design/modular-architecture/01-core-concepts/three-tier-overview.md +144 -0
  396. package/src/workflows/4-ux-design/modular-architecture/02-workflows/01-what-are-storyboards.md +70 -0
  397. package/src/workflows/4-ux-design/modular-architecture/02-workflows/01-when-to-use.md +68 -0
  398. package/src/workflows/4-ux-design/modular-architecture/02-workflows/02-file-structure.md +86 -0
  399. package/src/workflows/4-ux-design/modular-architecture/02-workflows/complexity-router-workflow.md +155 -0
  400. package/src/workflows/4-ux-design/modular-architecture/02-workflows/page-specification-workflow.md +312 -0
  401. package/src/workflows/4-ux-design/modular-architecture/02-workflows/storyboards-guide.md +75 -0
  402. package/src/workflows/4-ux-design/modular-architecture/03-quick-refs/benefits.md +128 -0
  403. package/src/workflows/4-ux-design/modular-architecture/03-quick-refs/decision-tree.md +67 -0
  404. package/src/workflows/4-ux-design/modular-architecture/validation-report-modular-architecture.md +220 -0
  405. package/src/workflows/4-ux-design/modular-architecture/workflow.md +289 -0
  406. package/src/workflows/4-ux-design/object-types/COMPLEXITY-ROUTER.md +842 -0
  407. package/src/workflows/4-ux-design/object-types/ROUTER-FLOW-DIAGRAM.md +275 -0
  408. package/src/workflows/4-ux-design/object-types/TEXT-DETECTION-PRIORITY.md +391 -0
  409. package/src/workflows/4-ux-design/object-types/object-router.md +349 -0
  410. package/src/workflows/4-ux-design/object-types/templates/button.md +345 -0
  411. package/src/workflows/4-ux-design/object-types/templates/heading-text.md +549 -0
  412. package/src/workflows/4-ux-design/object-types/templates/image.md +165 -0
  413. package/src/workflows/4-ux-design/object-types/templates/link.md +167 -0
  414. package/src/workflows/4-ux-design/object-types/templates/text-input.md +463 -0
  415. package/src/workflows/4-ux-design/object-types/validation-report-object-types.md +295 -0
  416. package/src/workflows/4-ux-design/object-types/workflow.md +439 -0
  417. package/src/workflows/4-ux-design/page-specification-quality/data/validation-standards.md +215 -0
  418. package/src/workflows/4-ux-design/page-specification-quality/instructions.md +32 -0
  419. package/src/workflows/4-ux-design/page-specification-quality/quality-guide.md +653 -0
  420. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-01-page-metadata.md +55 -0
  421. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-02-navigation.md +54 -0
  422. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-03-page-overview.md +47 -0
  423. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-04-page-sections.md +58 -0
  424. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-05-section-order.md +59 -0
  425. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-06-object-registry.md +52 -0
  426. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-07-design-system-separation.md +64 -0
  427. package/src/workflows/4-ux-design/page-specification-quality/steps-v/step-08-final-validation.md +92 -0
  428. package/src/workflows/4-ux-design/page-specification-quality/templates/diagnostic-report-template.md +227 -0
  429. package/src/workflows/4-ux-design/page-specification-quality/validation-report-page-specification-quality.md +357 -0
  430. package/src/workflows/4-ux-design/page-specification-quality/workflow.md +146 -0
  431. package/src/workflows/4-ux-design/scenario-init/SCENARIO-INIT-DIALOG.md +538 -0
  432. package/src/workflows/4-ux-design/scenario-init/SCENARIO-INIT-PROCESS.md +221 -0
  433. package/src/workflows/4-ux-design/scenario-init/steps-c/00-SCENARIO-INIT-GUIDE.md +76 -0
  434. package/src/workflows/4-ux-design/scenario-init/steps-c/01-platform-confirmation.md +167 -0
  435. package/src/workflows/4-ux-design/scenario-init/steps-c/02-feature-selection.md +70 -0
  436. package/src/workflows/4-ux-design/scenario-init/steps-c/03-entry-point.md +67 -0
  437. package/src/workflows/4-ux-design/scenario-init/steps-c/04-mental-state.md +74 -0
  438. package/src/workflows/4-ux-design/scenario-init/steps-c/05-mutual-success.md +69 -0
  439. package/src/workflows/4-ux-design/scenario-init/steps-c/06-shortest-path.md +92 -0
  440. package/src/workflows/4-ux-design/scenario-init/steps-c/07-create-vtc.md +132 -0
  441. package/src/workflows/4-ux-design/scenario-init/steps-c/examples/booking-example.md +64 -0
  442. package/src/workflows/4-ux-design/scenario-init/steps-c/examples/ecommerce-example.md +64 -0
  443. package/src/workflows/4-ux-design/scenario-init/steps-c/examples/saas-example.md +64 -0
  444. package/src/workflows/4-ux-design/scenario-init/validation-report-scenario-init.md +290 -0
  445. package/src/workflows/4-ux-design/scenario-init/workflow.md +117 -0
  446. package/src/workflows/4-ux-design/specification-audit-workflow.md +697 -0
  447. package/src/workflows/4-ux-design/steps/step-01-init.md +116 -0
  448. package/src/workflows/4-ux-design/steps/step-02-setup-scenario-structure.md +67 -0
  449. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/page-init-lightweight.md +355 -0
  450. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-01-page-context.md +61 -0
  451. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-02-page-name.md +26 -0
  452. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-03-page-purpose.md +25 -0
  453. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-04-entry-point.md +27 -0
  454. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-05-mental-state.md +22 -0
  455. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-06-desired-outcome.md +22 -0
  456. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-07-variants.md +29 -0
  457. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/step-08-create-page-structure.md +141 -0
  458. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-c-placeholder-pages.md +406 -0
  459. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-creation.md +578 -0
  460. package/src/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-process.md +333 -0
  461. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-01-core-feature.md +26 -0
  462. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-02-entry-point.md +26 -0
  463. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-03-mental-state.md +24 -0
  464. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-04-mutual-success.md +27 -0
  465. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-05-shortest-path.md +39 -0
  466. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-06-scenario-name.md +24 -0
  467. package/src/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-07-create-scenario-folder.md +145 -0
  468. package/src/workflows/4-ux-design/steps/step-02-substeps/substeps-guide.md +110 -0
  469. package/src/workflows/4-ux-design/steps/step-03-design-page.md +189 -0
  470. package/src/workflows/4-ux-design/steps/step-04-complete-scenario.md +59 -0
  471. package/src/workflows/4-ux-design/steps/step-05-next-steps.md +76 -0
  472. package/src/workflows/4-ux-design/stitch-generation/stitch-prompt.template.md +174 -0
  473. package/src/workflows/4-ux-design/stitch-generation/workflow.md +288 -0
  474. package/src/workflows/4-ux-design/substeps/4a-exploration.md +106 -0
  475. package/src/workflows/4-ux-design/substeps/4b-sketch-analysis.md +536 -0
  476. package/src/workflows/4-ux-design/substeps/4c-01-page-basics.md +59 -0
  477. package/src/workflows/4-ux-design/substeps/4c-02-layout-sections.md +66 -0
  478. package/src/workflows/4-ux-design/substeps/4c-03-components-objects.md +154 -0
  479. package/src/workflows/4-ux-design/substeps/4c-04-content-languages.md +83 -0
  480. package/src/workflows/4-ux-design/substeps/4c-05-interactions.md +82 -0
  481. package/src/workflows/4-ux-design/substeps/4c-06-states.md +125 -0
  482. package/src/workflows/4-ux-design/substeps/4c-07-validation.md +124 -0
  483. package/src/workflows/4-ux-design/substeps/4c-08-generate-spec.md +105 -0
  484. package/src/workflows/4-ux-design/substeps/4d-prototype.md +282 -0
  485. package/src/workflows/4-ux-design/substeps/4e-prd-update.md +139 -0
  486. package/src/workflows/4-ux-design/templates/audit-report.template.md +430 -0
  487. package/src/workflows/4-ux-design/templates/instructions/accessibility-audit.workflow.md +166 -0
  488. package/src/workflows/4-ux-design/templates/instructions/accessibility.instructions.md +102 -0
  489. package/src/workflows/4-ux-design/templates/instructions/data-api.instructions.md +69 -0
  490. package/src/workflows/4-ux-design/templates/instructions/form-validation.instructions.md +54 -0
  491. package/src/workflows/4-ux-design/templates/instructions/meta-content.instructions.md +37 -0
  492. package/src/workflows/4-ux-design/templates/instructions/open-questions.instructions.md +164 -0
  493. package/src/workflows/4-ux-design/templates/instructions/responsive.instructions.md +64 -0
  494. package/src/workflows/4-ux-design/templates/page-specification.template.md +227 -0
  495. package/src/workflows/4-ux-design/templates/scenario-overview.template.md +159 -0
  496. package/src/workflows/4-ux-design/templates/storyboard-specification.template.md +94 -0
  497. package/src/workflows/4-ux-design/ux-design-guide.md +223 -0
  498. package/src/workflows/4-ux-design/workflow-new.yaml +18 -0
  499. package/src/workflows/4-ux-design/workflow.md +61 -0
  500. package/src/workflows/4-ux-design/workflow.yaml +18 -0
  501. package/src/workflows/5-design-system/assessment/01-scan-existing.md +166 -0
  502. package/src/workflows/5-design-system/assessment/02-compare-attributes.md +287 -0
  503. package/src/workflows/5-design-system/assessment/03-calculate-similarity.md +357 -0
  504. package/src/workflows/5-design-system/assessment/04-identify-opportunities.md +339 -0
  505. package/src/workflows/5-design-system/assessment/05-identify-risks.md +357 -0
  506. package/src/workflows/5-design-system/assessment/06-present-decision.md +435 -0
  507. package/src/workflows/5-design-system/assessment/07-execute-decision.md +523 -0
  508. package/src/workflows/5-design-system/design-system-guide.md +353 -0
  509. package/src/workflows/5-design-system/design-system-router.md +370 -0
  510. package/src/workflows/5-design-system/figma-integration/INTEGRATION-SUMMARY.md +458 -0
  511. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-01-connection-check.md +118 -0
  512. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-01-substeps/substep-01-plugin-installation.md +37 -0
  513. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-01-substeps/substep-02-activate-plugin.md +37 -0
  514. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-01-substeps/substep-03-verify-mcp.md +51 -0
  515. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-02-identify-export-type.md +161 -0
  516. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-03-prepare-specifications.md +138 -0
  517. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-03-substeps/substep-01-analyze-code.md +62 -0
  518. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-03-substeps/substep-02-generate-ids.md +69 -0
  519. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-03-substeps/substep-03-create-spec.md +98 -0
  520. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-03-substeps/substep-04-review-spec.md +86 -0
  521. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-04-generate-validate.md +207 -0
  522. package/src/workflows/5-design-system/figma-integration/code-to-figma/steps/step-05-execute-export.md +229 -0
  523. package/src/workflows/5-design-system/figma-integration/code-to-figma/workflow.md +64 -0
  524. package/src/workflows/5-design-system/figma-integration/figma-to-code/README.md +0 -0
  525. package/src/workflows/5-design-system/figma-integration/figma-to-code/figma-integration-guide.md +37 -0
  526. package/src/workflows/5-design-system/figma-integration/reference/figma-designer-guide.md +687 -0
  527. package/src/workflows/5-design-system/figma-integration/reference/figma-mcp-integration.md +661 -0
  528. package/src/workflows/5-design-system/figma-integration/reference/mcp-server-integration.md +922 -0
  529. package/src/workflows/5-design-system/figma-integration/reference/prototype-to-figma-workflow.md +933 -0
  530. package/src/workflows/5-design-system/figma-integration/reference/tools-reference.md +665 -0
  531. package/src/workflows/5-design-system/figma-integration/reference/when-to-extract-decision-guide.md +663 -0
  532. package/src/workflows/5-design-system/operations/add-variant.md +490 -0
  533. package/src/workflows/5-design-system/operations/create-new-component.md +711 -0
  534. package/src/workflows/5-design-system/operations/generate-catalog.md +686 -0
  535. package/src/workflows/5-design-system/operations/initialize-design-system.md +467 -0
  536. package/src/workflows/5-design-system/operations/update-component.md +600 -0
  537. package/src/workflows/5-design-system/templates/catalog.template.html +363 -0
  538. package/src/workflows/5-design-system/templates/component-library-config.template.md +65 -0
  539. package/src/workflows/5-design-system/templates/component.template.md +134 -0
  540. package/src/workflows/5-design-system/templates/design-tokens.template.md +168 -0
  541. package/src/workflows/5-design-system/workflow.yaml +22 -0
  542. package/src/workflows/6-design-deliveries/design-deliveries-guide.md +489 -0
  543. package/src/workflows/6-design-deliveries/steps/step-6.1-detect-completion.md +131 -0
  544. package/src/workflows/6-design-deliveries/steps/step-6.2-create-delivery.md +156 -0
  545. package/src/workflows/6-design-deliveries/steps/step-6.2-create-delivery.md.bak +309 -0
  546. package/src/workflows/6-design-deliveries/steps/step-6.3-create-test-scenario.md +155 -0
  547. package/src/workflows/6-design-deliveries/steps/step-6.3-create-test-scenario.md.bak +432 -0
  548. package/src/workflows/6-design-deliveries/steps/step-6.4-handoff-dialog.md +441 -0
  549. package/src/workflows/6-design-deliveries/steps/step-6.5-hand-off.md +327 -0
  550. package/src/workflows/6-design-deliveries/steps/step-6.6-continue.md +414 -0
  551. package/src/workflows/6-design-deliveries/workflow.md +67 -0
  552. package/src/workflows/7-testing/steps/step-7.1-receive-notification.md +261 -0
  553. package/src/workflows/7-testing/steps/step-7.2-prepare-testing.md +399 -0
  554. package/src/workflows/7-testing/steps/step-7.3-run-tests.md +683 -0
  555. package/src/workflows/7-testing/steps/step-7.4-create-issues.md +517 -0
  556. package/src/workflows/7-testing/steps/step-7.5-create-report.md +441 -0
  557. package/src/workflows/7-testing/steps/step-7.6-send-to-bmad.md +392 -0
  558. package/src/workflows/7-testing/steps/step-7.7-iterate-or-approve.md +596 -0
  559. package/src/workflows/7-testing/testing-guide.md +613 -0
  560. package/src/workflows/7-testing/workflow.md +79 -0
  561. package/src/workflows/8-ongoing-development/existing-product-guide.md +929 -0
  562. package/src/workflows/8-ongoing-development/steps/step-8.1-identify-opportunity.md +497 -0
  563. package/src/workflows/8-ongoing-development/steps/step-8.2-gather-context.md +380 -0
  564. package/src/workflows/8-ongoing-development/steps/step-8.3-design-update.md +495 -0
  565. package/src/workflows/8-ongoing-development/steps/step-8.4-create-delivery.md +402 -0
  566. package/src/workflows/8-ongoing-development/steps/step-8.5-hand-off.md +163 -0
  567. package/src/workflows/8-ongoing-development/steps/step-8.6-validate.md +265 -0
  568. package/src/workflows/8-ongoing-development/steps/step-8.7-monitor.md +432 -0
  569. package/src/workflows/8-ongoing-development/steps/step-8.8-iterate.md +547 -0
  570. package/src/workflows/8-ongoing-development/workflow.md +302 -0
  571. package/src/workflows/9-agent-dialogs/steps/step-01-initialize-dialog.md +244 -0
  572. package/src/workflows/9-agent-dialogs/steps/step-02-analyze-scope.md +195 -0
  573. package/src/workflows/9-agent-dialogs/steps/step-03-create-steps.md +186 -0
  574. package/src/workflows/9-agent-dialogs/steps/step-04-execute-steps.md +250 -0
  575. package/src/workflows/9-agent-dialogs/steps/step-05-complete-dialog.md +177 -0
  576. package/src/workflows/9-agent-dialogs/templates/dialog-capture.template.md +75 -0
  577. package/src/workflows/9-agent-dialogs/templates/dialog-types/INDEX.md +142 -0
  578. package/src/workflows/9-agent-dialogs/templates/dialog-types/bug-fix.template.md +164 -0
  579. package/src/workflows/9-agent-dialogs/templates/dialog-types/design-exploration.template.md +180 -0
  580. package/src/workflows/9-agent-dialogs/templates/dialog-types/prototype-implementation.template.md +292 -0
  581. package/src/workflows/9-agent-dialogs/templates/dialog-types/stitch-generation.template.md +311 -0
  582. package/src/workflows/9-agent-dialogs/templates/dialog.template.md +200 -0
  583. package/src/workflows/9-agent-dialogs/templates/step.template.md +118 -0
  584. package/src/workflows/9-agent-dialogs/workflow.md +401 -0
  585. package/src/workflows/PROJECT-STRUCTURE-SYSTEM.md +226 -0
  586. package/src/workflows/VALIDATION-SUMMARY-REPORT.md +329 -0
  587. package/src/workflows/paths/design-system-only.yaml +62 -0
  588. package/src/workflows/paths/digital-strategy.yaml +39 -0
  589. package/src/workflows/paths/feature-enhancement.yaml +93 -0
  590. package/src/workflows/paths/full-product.yaml +96 -0
  591. package/src/workflows/paths/landing-page.yaml +54 -0
  592. package/src/workflows/paths/quick-prototype.yaml +39 -0
  593. package/src/workflows/project-analysis/AGENT-INITIATION-FLOW.md +295 -0
  594. package/src/workflows/project-analysis/LINK-VERIFICATION.md +179 -0
  595. package/src/workflows/project-analysis/ROUTER-ARCHITECTURE.md +224 -0
  596. package/src/workflows/project-analysis/SYSTEM-GUIDE.md +105 -0
  597. package/src/workflows/project-analysis/agent-domains/freya-domain.md +144 -0
  598. package/src/workflows/project-analysis/agent-domains/idunn-domain.md +112 -0
  599. package/src/workflows/project-analysis/agent-domains/saga-domain.md +132 -0
  600. package/src/workflows/project-analysis/agent-handoff-guide.md +233 -0
  601. package/src/workflows/project-analysis/analysis-types/empty-project-response.md +141 -0
  602. package/src/workflows/project-analysis/analysis-types/folder-based-analysis.md +135 -0
  603. package/src/workflows/project-analysis/analysis-types/new-project-response.md +194 -0
  604. package/src/workflows/project-analysis/analysis-types/outline-based-analysis.md +207 -0
  605. package/src/workflows/project-analysis/analysis-types/unknown-structure-response.md +216 -0
  606. package/src/workflows/project-analysis/context-aware-activation.md +99 -0
  607. package/src/workflows/project-analysis/conversation-persistence/check-conversations.md +162 -0
  608. package/src/workflows/project-analysis/conversation-persistence/conversation-template.md +70 -0
  609. package/src/workflows/project-analysis/conversation-persistence/persistence-guide.md +81 -0
  610. package/src/workflows/project-analysis/conversation-persistence/save-conversation.md +146 -0
  611. package/src/workflows/project-analysis/instructions.md +30 -0
  612. package/src/workflows/project-analysis/project-analysis-router.md +76 -0
  613. package/src/workflows/project-analysis/task-reflection.md +303 -0
  614. package/src/workflows/project-analysis/validation/deep-validation-before-work.md +235 -0
  615. package/src/workflows/project-analysis/work-types/strategy-work.md +88 -0
  616. package/src/workflows/project-analysis/workflow.yaml +82 -0
  617. package/src/workflows/shared/content-creation-workshop/content-creation-workshop-guide.md +320 -0
  618. package/src/workflows/shared/content-creation-workshop/content-output.template.md +349 -0
  619. package/src/workflows/shared/content-creation-workshop/steps-c/OPTIMIZATION-COMPLETE.md +143 -0
  620. package/src/workflows/shared/content-creation-workshop/steps-c/step-00-define-purpose.md +196 -0
  621. package/src/workflows/shared/content-creation-workshop/steps-c/step-01-load-vtc-context.md +126 -0
  622. package/src/workflows/shared/content-creation-workshop/steps-c/step-02-awareness-strategy.md +245 -0
  623. package/src/workflows/shared/content-creation-workshop/steps-c/step-03-action-filter.md +230 -0
  624. package/src/workflows/shared/content-creation-workshop/steps-c/step-04-empowerment-frame.md +248 -0
  625. package/src/workflows/shared/content-creation-workshop/steps-c/step-05-structural-order.md +227 -0
  626. package/src/workflows/shared/content-creation-workshop/steps-c/step-06-generate-content.md +247 -0
  627. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/00-purpose-examples.md +131 -0
  628. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/03-action-filter-example.md +97 -0
  629. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/04-badass-users-principles.md +159 -0
  630. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/04-example-empowerment-frame.md +88 -0
  631. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/05-example-golden-circle.md +96 -0
  632. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/05-golden-circle-guide.md +160 -0
  633. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/06-example-hairdresser-newsletter.md +136 -0
  634. package/src/workflows/shared/content-creation-workshop/steps-c/substeps/06-generation-instructions.md +95 -0
  635. package/src/workflows/shared/content-creation-workshop/steps-c/workflow.md +41 -0
  636. package/src/workflows/shared/content-creation-workshop/validation-report-content-creation-workshop.md +303 -0
  637. package/src/workflows/shared/content-creation-workshop/workflow.md +87 -0
  638. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-01-define-business-goal.md +115 -0
  639. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-02-identify-solution.md +105 -0
  640. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-03-describe-user.md +131 -0
  641. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-04-positive-driving-forces.md +150 -0
  642. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-05-negative-driving-forces.md +190 -0
  643. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-06-customer-awareness.md +256 -0
  644. package/src/workflows/shared/vtc-workshop/creation-steps-c/step-07-review-and-save.md +233 -0
  645. package/src/workflows/shared/vtc-workshop/creation-steps-c/workflow.md +43 -0
  646. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-01-load-trigger-map.md +81 -0
  647. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-02-select-business-goal.md +84 -0
  648. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-03-select-user.md +88 -0
  649. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-04-select-driving-forces.md +100 -0
  650. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-05-define-solution.md +59 -0
  651. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-06-customer-awareness.md +75 -0
  652. package/src/workflows/shared/vtc-workshop/selection-steps-c/step-07-review-and-save.md +151 -0
  653. package/src/workflows/shared/vtc-workshop/selection-steps-c/workflow.md +48 -0
  654. package/src/workflows/shared/vtc-workshop/validation-report-vtc-workshop.md +269 -0
  655. package/src/workflows/shared/vtc-workshop/vtc-creation-workshop.md +457 -0
  656. package/src/workflows/shared/vtc-workshop/vtc-selection-workshop.md +557 -0
  657. package/src/workflows/shared/vtc-workshop/vtc-template.yaml +210 -0
  658. package/src/workflows/shared/vtc-workshop/vtc-workshop-guide.md +418 -0
  659. package/src/workflows/shared/vtc-workshop/vtc-workshop-router.md +146 -0
  660. package/src/workflows/shared/vtc-workshop/workflow.md +174 -0
  661. package/src/workflows/workflow-init/COMPLETE-SYSTEM-SUMMARY.md +314 -0
  662. package/src/workflows/workflow-init/FINAL-SYSTEM-SUMMARY.md +321 -0
  663. package/src/workflows/workflow-init/PROJECT-OUTLINE-SYSTEM.md +240 -0
  664. package/src/workflows/workflow-init/excalidraw-setup-prompt.md +365 -0
  665. package/src/workflows/workflow-init/instructions.md +22 -0
  666. package/src/workflows/workflow-init/methodology-instructions/custom-methodology-template.md +299 -0
  667. package/src/workflows/workflow-init/methodology-instructions/methodology-guide.md +252 -0
  668. package/src/workflows/workflow-init/methodology-instructions/wds-v6-instructions.md +221 -0
  669. package/src/workflows/workflow-init/methodology-instructions/wps2c-v4-instructions.md +231 -0
  670. package/src/workflows/workflow-init/project-config.template.yaml +87 -0
  671. package/src/workflows/workflow-init/project-initiation-conversation.md +957 -0
  672. package/src/workflows/workflow-init/project-outline.template.yaml +429 -0
  673. package/src/workflows/workflow-init/project-type-selection.md +318 -0
  674. package/src/workflows/workflow-init/steps/step-02-project-structure.md +54 -0
  675. package/src/workflows/workflow-init/steps/step-03-delivery-config.md +76 -0
  676. package/src/workflows/workflow-init/steps/step-04-phases-selection.md +180 -0
  677. package/src/workflows/workflow-init/workflow.yaml +32 -0
  678. package/src/workflows/workflow-status/instructions.md +143 -0
  679. package/src/workflows/workflow-status/workflow.yaml +25 -0
  680. package/tools/cli/commands/install.js +34 -0
  681. package/tools/cli/lib/compiler.js +407 -0
  682. package/tools/cli/lib/ide-configs.js +104 -0
  683. package/tools/cli/lib/installer.js +257 -0
  684. package/tools/cli/lib/ui.js +127 -0
  685. package/tools/cli/wds-cli.js +43 -0
  686. package/tools/wds-npx-wrapper.js +37 -0
@@ -0,0 +1,1148 @@
1
+ # Interactive Prototype Creation Guide
2
+
3
+ **For**: Freya WDS Designer Agent
4
+ **Purpose**: Step-by-step guide to creating production-quality interactive prototypes
5
+ **Based on**: Dog Week proven patterns
6
+
7
+ ---
8
+
9
+ ## 🎯 When to Create Interactive Prototypes
10
+
11
+ Create interactive prototypes when:
12
+
13
+ ✅ **Complex interactions** - Multi-step forms, drag-and-drop, animations
14
+ ✅ **User testing needed** - Need real usability feedback
15
+ ✅ **Developer handoff** - Developers need working reference
16
+ ✅ **Stakeholder demo** - Need to show actual functionality
17
+ ✅ **Custom components** - Non-standard UI patterns (Swedish calendar, etc.)
18
+
19
+ **Skip prototypes when**:
20
+ ❌ Simple static pages
21
+ ❌ Standard CRUD forms (specs are enough)
22
+ ❌ Time-constrained projects (use Figma/Excalidraw instead)
23
+
24
+ ---
25
+
26
+ ## 📁 Step 1: Set Up File Structure
27
+
28
+ ### Create Folder Structure
29
+
30
+ ```
31
+ docs/C-Scenarios/[Scenario-Name]/[Page-Number]-[Page-Name]/
32
+ ├── [Page-Number]-[Page-Name].md ← Specification
33
+ ├── Sketches/
34
+ │ └── [sketch-files].jpg
35
+ └── Frontend/ ← PROTOTYPE FOLDER
36
+ ├── [Page-Number]-[Page-Name]-Preview.html
37
+ ├── [Page-Number]-[Page-Name]-Preview.css
38
+ ├── [Page-Number]-[Page-Name]-Preview.js
39
+ └── prototype-api.js ← Copy from existing
40
+ ```
41
+
42
+ ### Example (Add Dog page):
43
+
44
+ ```
45
+ docs/C-Scenarios/01-Customer-Onboarding/1.6-Add-Dog/
46
+ ├── 1.6-Add-Dog.md
47
+ ├── Sketches/
48
+ │ └── add-dog-sketch.jpg
49
+ └── Frontend/
50
+ ├── 1.6-Add-Dog-Preview.html
51
+ ├── 1.6-Add-Dog-Preview.css
52
+ ├── 1.6-Add-Dog-Preview.js
53
+ └── prototype-api.js
54
+ ```
55
+
56
+ ---
57
+
58
+ ## 🌍 Multi-Language Support
59
+
60
+ ### Hardcoded Translations (Recommended for Prototypes)
61
+
62
+ **Best practice**: Use hardcoded translations directly in HTML/JS for readability.
63
+
64
+ **Why?**
65
+ - ✅ Code is immediately readable
66
+ - ✅ No separate translation files to manage
67
+ - ✅ Easy to see what user sees
68
+ - ✅ Simple language switcher if needed
69
+ - ✅ Faster prototyping
70
+ - ✅ No secrets in translations anyway
71
+
72
+ ### Simple Language Switcher
73
+
74
+ ```javascript
75
+ // Define translations inline
76
+ const strings = {
77
+ sv: {
78
+ bookWalk: 'Boka promenad',
79
+ cancel: 'Avbryt',
80
+ save: 'Spara',
81
+ delete: 'Ta bort'
82
+ },
83
+ en: {
84
+ bookWalk: 'Book walk',
85
+ cancel: 'Cancel',
86
+ save: 'Save',
87
+ delete: 'Delete'
88
+ }
89
+ };
90
+
91
+ let currentLang = 'sv'; // or get from localStorage
92
+
93
+ // Update UI text
94
+ function updateLanguage(lang) {
95
+ currentLang = lang;
96
+ document.querySelectorAll('[data-i18n]').forEach(el => {
97
+ const key = el.dataset.i18n;
98
+ el.textContent = strings[lang][key];
99
+ });
100
+ localStorage.setItem('language', lang);
101
+ }
102
+
103
+ // Language toggle
104
+ document.getElementById('lang-toggle').addEventListener('click', () => {
105
+ const newLang = currentLang === 'sv' ? 'en' : 'sv';
106
+ updateLanguage(newLang);
107
+ });
108
+
109
+ // Initialize on load
110
+ document.addEventListener('DOMContentLoaded', () => {
111
+ const savedLang = localStorage.getItem('language') || 'sv';
112
+ updateLanguage(savedLang);
113
+ });
114
+ ```
115
+
116
+ ### HTML with Language Support
117
+
118
+ ```html
119
+ <!-- Option 1: data-i18n attribute (dynamic) -->
120
+ <button data-i18n="bookWalk" data-object-id="calendar-book-btn">
121
+ Boka promenad
122
+ </button>
123
+
124
+ <!-- Option 2: Hardcoded with comment (simple) -->
125
+ <button data-object-id="calendar-book-btn">
126
+ Boka promenad <!-- Book walk -->
127
+ </button>
128
+
129
+ <!-- Language toggle -->
130
+ <button id="lang-toggle" class="language-toggle">
131
+ 🇸🇪 / 🇬🇧
132
+ </button>
133
+ ```
134
+
135
+ ### When to Include Language Switching
136
+
137
+ **Include if**:
138
+ - Project defines multiple languages in project brief
139
+ - Stakeholders need to see different languages
140
+ - User testing requires language options
141
+
142
+ **Skip if**:
143
+ - Single language project
144
+ - Prototype for internal team only
145
+ - Time-constrained
146
+
147
+ ---
148
+
149
+ ## 📝 Step 2: Create HTML Structure
150
+
151
+ ### HTML Template
152
+
153
+ ```html
154
+ <!DOCTYPE html>
155
+ <html lang="se">
156
+ <head>
157
+ <meta charset="UTF-8" />
158
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
159
+ <title>[Page Number] [Page Name] - [Project Name]</title>
160
+
161
+ <!-- Google Fonts (if using Inter) -->
162
+ <link rel="preconnect" href="https://fonts.googleapis.com" />
163
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
164
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet" />
165
+
166
+ <!-- Page Styles -->
167
+ <link rel="stylesheet" href="[Page-Number]-[Page-Name]-Preview.css" />
168
+ </head>
169
+ <body>
170
+ <!-- Header -->
171
+ <header class="page-header">
172
+ <button id="[page]-header-back" data-object-id="[page]-header-back" onclick="handleBack()">← Back</button>
173
+
174
+ <h1 id="[page]-header-title" data-object-id="[page]-header-title">[Page Title]</h1>
175
+
176
+ <!-- Optional: Language selector, actions, etc. -->
177
+ </header>
178
+
179
+ <!-- Main Content -->
180
+ <main class="page-content">
181
+ <form id="mainForm" class="form" onsubmit="handleSubmit(event)">
182
+ <!-- Form fields here -->
183
+
184
+ <!-- Example Input Field -->
185
+ <div class="input-container">
186
+ <input
187
+ type="text"
188
+ id="[page]-input-[field]"
189
+ data-object-id="[page]-input-[field]"
190
+ name="[fieldName]"
191
+ placeholder="[Placeholder text]"
192
+ class="internal-input"
193
+ required
194
+ />
195
+ <p class="text-sm text-red-600 hidden" id="[field]Error"></p>
196
+ </div>
197
+
198
+ <!-- Submit Button -->
199
+ <button type="submit" id="[page]-button-submit" data-object-id="[page]-button-submit" class="submit-button">
200
+ <span id="submitButtonText">[Button Text]</span>
201
+ <svg id="submitButtonSpinner" class="hidden spinner">
202
+ <!-- Spinner SVG -->
203
+ </svg>
204
+ </button>
205
+ </form>
206
+ </main>
207
+
208
+ <!-- Optional: Modals -->
209
+ <div id="modal" class="modal-overlay hidden">
210
+ <!-- Modal content -->
211
+ </div>
212
+
213
+ <!-- Optional: Toast Notification -->
214
+ <div id="toast" class="toast hidden">
215
+ <span id="toastMessage"></span>
216
+ </div>
217
+
218
+ <!-- Scripts -->
219
+ <script src="prototype-api.js"></script>
220
+ <script src="[Page-Number]-[Page-Name]-Preview.js"></script>
221
+ </body>
222
+ </html>
223
+ ```
224
+
225
+ ### Critical HTML Rules
226
+
227
+ 1. **Always include Object IDs** on interactive elements
228
+ 2. **Use semantic HTML** (header, main, nav, section)
229
+ 3. **Include aria labels** for accessibility
230
+ 4. **Mobile viewport meta tag** is mandatory
231
+ 5. **Load prototype-api.js first**, then page-specific JS
232
+
233
+ ---
234
+
235
+ ## 🎨 Step 3: Write CSS Styles
236
+
237
+ ### CSS Template
238
+
239
+ ```css
240
+ /* ============================================================================
241
+ [Page Number] [Page Name] - Prototype Styles
242
+ Project: [Project Name]
243
+ ============================================================================ */
244
+
245
+ /* Reset & Base Styles */
246
+ * {
247
+ margin: 0;
248
+ padding: 0;
249
+ box-sizing: border-box;
250
+ }
251
+
252
+ body {
253
+ font-family:
254
+ 'Inter',
255
+ -apple-system,
256
+ BlinkMacSystemFont,
257
+ sans-serif;
258
+ font-size: 16px;
259
+ line-height: 1.5;
260
+ color: var(--gray-900);
261
+ background: var(--gray-50);
262
+ -webkit-font-smoothing: antialiased;
263
+ }
264
+
265
+ /* CSS Variables (Design Tokens) */
266
+ :root {
267
+ /* Colors */
268
+ --primary: #2563eb;
269
+ --primary-hover: #1d4ed8;
270
+ --success: #10b981;
271
+ --error: #ef4444;
272
+
273
+ --gray-50: #f9fafb;
274
+ --gray-100: #f3f4f6;
275
+ --gray-200: #e5e7eb;
276
+ --gray-300: #d1d5db;
277
+ --gray-600: #4b5563;
278
+ --gray-700: #374151;
279
+ --gray-900: #111827;
280
+
281
+ /* Spacing */
282
+ --spacing-sm: 0.5rem;
283
+ --spacing-md: 1rem;
284
+ --spacing-lg: 1.5rem;
285
+ --spacing-xl: 2rem;
286
+
287
+ /* Border Radius */
288
+ --radius-sm: 0.375rem;
289
+ --radius-md: 0.5rem;
290
+ --radius-lg: 0.75rem;
291
+
292
+ /* Shadows */
293
+ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
294
+ --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
295
+ }
296
+
297
+ /* ============================================================================
298
+ Layout
299
+ ============================================================================ */
300
+
301
+ .page-header {
302
+ background: white;
303
+ border-bottom: 1px solid var(--gray-200);
304
+ padding: 1rem;
305
+ display: flex;
306
+ align-items: center;
307
+ justify-content: space-between;
308
+ }
309
+
310
+ .page-content {
311
+ max-width: 640px;
312
+ margin: 0 auto;
313
+ padding: var(--spacing-lg);
314
+ }
315
+
316
+ /* ============================================================================
317
+ Form Components
318
+ ============================================================================ */
319
+
320
+ .form {
321
+ display: flex;
322
+ flex-direction: column;
323
+ gap: var(--spacing-md);
324
+ }
325
+
326
+ .input-container {
327
+ display: flex;
328
+ flex-direction: column;
329
+ gap: var(--spacing-sm);
330
+ }
331
+
332
+ .internal-input {
333
+ width: 100%;
334
+ padding: 0.75rem;
335
+ border: 1px solid var(--gray-300);
336
+ border-radius: var(--radius-md);
337
+ font-size: 1rem;
338
+ transition: all 0.2s;
339
+ }
340
+
341
+ .internal-input:focus {
342
+ outline: none;
343
+ border-color: var(--primary);
344
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
345
+ }
346
+
347
+ .internal-input.error {
348
+ border-color: var(--error);
349
+ }
350
+
351
+ /* ============================================================================
352
+ Buttons
353
+ ============================================================================ */
354
+
355
+ .submit-button {
356
+ width: 100%;
357
+ padding: 0.75rem 1.5rem;
358
+ background: var(--primary);
359
+ color: white;
360
+ border: none;
361
+ border-radius: var(--radius-md);
362
+ font-size: 1rem;
363
+ font-weight: 600;
364
+ cursor: pointer;
365
+ transition: background 0.2s;
366
+ display: flex;
367
+ align-items: center;
368
+ justify-content: center;
369
+ gap: 0.5rem;
370
+ min-height: 44px; /* Mobile touch target */
371
+ }
372
+
373
+ .submit-button:hover {
374
+ background: var(--primary-hover);
375
+ }
376
+
377
+ .submit-button:disabled {
378
+ opacity: 0.5;
379
+ cursor: not-allowed;
380
+ }
381
+
382
+ /* ============================================================================
383
+ Utility Classes
384
+ ============================================================================ */
385
+
386
+ .hidden {
387
+ display: none !important;
388
+ }
389
+
390
+ .text-red-600 {
391
+ color: var(--error);
392
+ }
393
+
394
+ .text-sm {
395
+ font-size: 0.875rem;
396
+ }
397
+
398
+ /* Spinner Animation */
399
+ .spinner {
400
+ animation: spin 1s linear infinite;
401
+ }
402
+
403
+ @keyframes spin {
404
+ from {
405
+ transform: rotate(0deg);
406
+ }
407
+ to {
408
+ transform: rotate(360deg);
409
+ }
410
+ }
411
+
412
+ /* ============================================================================
413
+ Modal
414
+ ============================================================================ */
415
+
416
+ .modal-overlay {
417
+ position: fixed;
418
+ inset: 0;
419
+ background: rgba(0, 0, 0, 0.5);
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: center;
423
+ z-index: 1000;
424
+ }
425
+
426
+ .modal-content {
427
+ background: white;
428
+ border-radius: var(--radius-lg);
429
+ padding: var(--spacing-xl);
430
+ max-width: 90%;
431
+ max-height: 90vh;
432
+ overflow-y: auto;
433
+ }
434
+
435
+ /* ============================================================================
436
+ Toast Notification
437
+ ============================================================================ */
438
+
439
+ .toast {
440
+ position: fixed;
441
+ bottom: 2rem;
442
+ left: 50%;
443
+ transform: translateX(-50%);
444
+ background: var(--gray-900);
445
+ color: white;
446
+ padding: 1rem 1.5rem;
447
+ border-radius: var(--radius-lg);
448
+ box-shadow: var(--shadow-md);
449
+ z-index: 1001;
450
+ animation: slideUp 0.3s ease-out;
451
+ }
452
+
453
+ @keyframes slideUp {
454
+ from {
455
+ transform: translateX(-50%) translateY(100%);
456
+ opacity: 0;
457
+ }
458
+ to {
459
+ transform: translateX(-50%) translateY(0);
460
+ opacity: 1;
461
+ }
462
+ }
463
+
464
+ /* ============================================================================
465
+ Responsive Design
466
+ ============================================================================ */
467
+
468
+ @media (min-width: 768px) {
469
+ .page-content {
470
+ padding: var(--spacing-xl);
471
+ }
472
+ }
473
+ ```
474
+
475
+ ### CSS Best Practices
476
+
477
+ 1. **Use CSS Variables** for colors, spacing, etc.
478
+ 2. **Mobile-first** approach (base styles for mobile, media queries for larger)
479
+ 3. **Organize by sections** with clear comments
480
+ 4. **Follow naming conventions** (BEM or utility-based)
481
+ 5. **Include animations** (subtle, performance-conscious)
482
+
483
+ ---
484
+
485
+ ## ⚙️ Step 4: Write JavaScript Logic
486
+
487
+ ### JavaScript Template
488
+
489
+ ```javascript
490
+ /**
491
+ * [Page Number] [Page Name] - Interactive Prototype
492
+ * Project: [Project Name]
493
+ *
494
+ * This prototype demonstrates [key functionality].
495
+ */
496
+
497
+ // ============================================================================
498
+ // STATE MANAGEMENT
499
+ // ============================================================================
500
+
501
+ let formData = {
502
+ // Initialize form state
503
+ };
504
+
505
+ // ============================================================================
506
+ // INITIALIZATION
507
+ // ============================================================================
508
+
509
+ document.addEventListener('DOMContentLoaded', async () => {
510
+ console.log('📄 [Page Name] prototype loaded');
511
+
512
+ // Load saved data (if any)
513
+ await loadSavedData();
514
+
515
+ // Initialize form listeners
516
+ initializeFormListeners();
517
+
518
+ // Load language preference
519
+ applyLanguage(DogWeekAPI.getLanguagePreference());
520
+ });
521
+
522
+ // ============================================================================
523
+ // DATA LOADING
524
+ // ============================================================================
525
+
526
+ async function loadSavedData() {
527
+ try {
528
+ const user = await DogWeekAPI.getUser();
529
+ if (user) {
530
+ console.log('👤 User loaded:', user.firstName);
531
+ // Pre-fill form if needed
532
+ }
533
+ } catch (error) {
534
+ console.error('❌ Error loading data:', error);
535
+ }
536
+ }
537
+
538
+ // ============================================================================
539
+ // FORM HANDLING
540
+ // ============================================================================
541
+
542
+ function initializeFormListeners() {
543
+ const form = document.getElementById('mainForm');
544
+
545
+ // Real-time validation
546
+ form.querySelectorAll('input').forEach(input => {
547
+ input.addEventListener('blur', () => validateField(input));
548
+ input.addEventListener('input', () => clearError(input));
549
+ });
550
+ }
551
+
552
+ async function handleSubmit(event) {
553
+ event.preventDefault();
554
+
555
+ // Validate all fields
556
+ if (!validateForm()) {
557
+ return;
558
+ }
559
+
560
+ // Show loading state
561
+ setLoadingState(true);
562
+
563
+ try {
564
+ // Collect form data
565
+ const formData = new FormData(event.target);
566
+ const data = Object.fromEntries(formData.entries());
567
+
568
+ // Call API (prototype or production)
569
+ const result = await DogWeekAPI.[relevantMethod](data);
570
+
571
+ console.log('✅ Success:', result);
572
+
573
+ // Show success feedback
574
+ showSuccessToast('[Success message]');
575
+
576
+ // Navigate to next page (after delay)
577
+ setTimeout(() => {
578
+ navigateToNextPage();
579
+ }, 1500);
580
+
581
+ } catch (error) {
582
+ console.error('❌ Error:', error);
583
+ showErrorBanner(error.message);
584
+ } finally {
585
+ setLoadingState(false);
586
+ }
587
+ }
588
+
589
+ // ============================================================================
590
+ // VALIDATION
591
+ // ============================================================================
592
+
593
+ function validateForm() {
594
+ let isValid = true;
595
+
596
+ const fields = [
597
+ { id: 'fieldName', validator: validateRequired, message: 'Field is required' },
598
+ // Add more fields
599
+ ];
600
+
601
+ fields.forEach(field => {
602
+ const input = document.getElementById(field.id);
603
+ if (!field.validator(input.value)) {
604
+ showFieldError(field.id, field.message);
605
+ isValid = false;
606
+ }
607
+ });
608
+
609
+ return isValid;
610
+ }
611
+
612
+ function validateField(input) {
613
+ const value = input.value.trim();
614
+ const fieldName = input.name;
615
+
616
+ // Example validations
617
+ if (input.required && !value) {
618
+ showFieldError(fieldName, 'This field is required');
619
+ return false;
620
+ }
621
+
622
+ if (input.type === 'email' && !isValidEmail(value)) {
623
+ showFieldError(fieldName, 'Please enter a valid email');
624
+ return false;
625
+ }
626
+
627
+ clearError(input);
628
+ return true;
629
+ }
630
+
631
+ function validateRequired(value) {
632
+ return value && value.trim().length > 0;
633
+ }
634
+
635
+ function isValidEmail(email) {
636
+ return /^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email);
637
+ }
638
+
639
+ // ============================================================================
640
+ // UI FEEDBACK
641
+ // ============================================================================
642
+
643
+ function showFieldError(fieldName, message) {
644
+ const errorElement = document.getElementById(`${fieldName}Error`);
645
+ const inputElement = document.getElementById(fieldName);
646
+
647
+ if (errorElement) {
648
+ errorElement.textContent = message;
649
+ errorElement.classList.remove('hidden');
650
+ }
651
+
652
+ if (inputElement) {
653
+ inputElement.classList.add('error');
654
+ }
655
+ }
656
+
657
+ function clearError(input) {
658
+ const fieldName = input.name || input.id;
659
+ const errorElement = document.getElementById(`${fieldName}Error`);
660
+
661
+ if (errorElement) {
662
+ errorElement.classList.add('hidden');
663
+ }
664
+
665
+ input.classList.remove('error');
666
+ }
667
+
668
+ function setLoadingState(isLoading) {
669
+ const submitBtn = document.getElementById('[page]-button-submit');
670
+ const submitText = document.getElementById('submitButtonText');
671
+ const submitSpinner = document.getElementById('submitButtonSpinner');
672
+
673
+ submitBtn.disabled = isLoading;
674
+
675
+ if (isLoading) {
676
+ submitText.classList.add('hidden');
677
+ submitSpinner.classList.remove('hidden');
678
+ } else {
679
+ submitText.classList.remove('hidden');
680
+ submitSpinner.classList.add('hidden');
681
+ }
682
+ }
683
+
684
+ function showSuccessToast(message) {
685
+ const toast = document.getElementById('toast');
686
+ const toastMessage = document.getElementById('toastMessage');
687
+
688
+ toastMessage.textContent = message;
689
+ toast.classList.remove('hidden');
690
+
691
+ setTimeout(() => {
692
+ toast.classList.add('hidden');
693
+ }, 3000);
694
+ }
695
+
696
+ function showErrorBanner(message) {
697
+ const errorBanner = document.getElementById('networkError');
698
+ const errorMessage = document.getElementById('networkErrorMessage');
699
+
700
+ errorMessage.textContent = message;
701
+ errorBanner.classList.remove('hidden');
702
+
703
+ setTimeout(() => {
704
+ errorBanner.classList.add('hidden');
705
+ }, 5000);
706
+ }
707
+
708
+ // ============================================================================
709
+ // NAVIGATION
710
+ // ============================================================================
711
+
712
+ function handleBack() {
713
+ console.log('🔙 Navigating back');
714
+ window.history.back();
715
+ // OR: window.location.href = '../[previous-page]/Frontend/[previous-page]-Preview.html';
716
+ }
717
+
718
+ function navigateToNextPage() {
719
+ console.log('➡️ Navigating to next page');
720
+ window.location.href = '../[next-page]/Frontend/[next-page]-Preview.html';
721
+ }
722
+
723
+ // ============================================================================
724
+ // MULTI-LANGUAGE SUPPORT (Optional)
725
+ // ============================================================================
726
+
727
+ const translations = {
728
+ se: {
729
+ pageTitle: '[Swedish Title]',
730
+ submitButton: '[Swedish Submit]',
731
+ // ... all UI text
732
+ },
733
+ en: {
734
+ pageTitle: '[English Title]',
735
+ submitButton: '[English Submit]',
736
+ // ...
737
+ }
738
+ };
739
+
740
+ function applyLanguage(lang) {
741
+ const t = translations[lang];
742
+
743
+ // Update all text elements
744
+ Object.keys(t).forEach(key => {
745
+ const element = document.getElementById(key);
746
+ if (element) {
747
+ element.textContent = t[key];
748
+ }
749
+ });
750
+
751
+ // Save preference
752
+ DogWeekAPI.setLanguagePreference(lang);
753
+ }
754
+ ```
755
+
756
+ ### JavaScript Best Practices
757
+
758
+ 1. **Use async/await** for API calls
759
+ 2. **Console.log key actions** (with emojis for visibility)
760
+ 3. **Handle errors gracefully** (try/catch)
761
+ 4. **Validate before submit**
762
+ 5. **Show loading states**
763
+ 6. **Always reset UI state** (finally blocks)
764
+
765
+ ---
766
+
767
+ ## 🔌 Step 5: Integrate with Prototype API
768
+
769
+ ### Common API Patterns
770
+
771
+ #### 1. Get Current User
772
+
773
+ ```javascript
774
+ const user = await DogWeekAPI.getUser();
775
+ if (user) {
776
+ console.log('Logged in as:', user.firstName);
777
+ }
778
+ ```
779
+
780
+ #### 2. Create/Update User Profile
781
+
782
+ ```javascript
783
+ const userData = {
784
+ firstName: 'Patrick',
785
+ lastName: 'Parent',
786
+ email: 'patrick@example.com',
787
+ phoneNumber: '+46701234567',
788
+ };
789
+
790
+ const user = await DogWeekAPI.createUserProfile(userData);
791
+ ```
792
+
793
+ #### 3. Create Family
794
+
795
+ ```javascript
796
+ const familyData = {
797
+ name: 'The Johnsons',
798
+ description: 'Our lovely dog family',
799
+ location: 'Stockholm, Sweden',
800
+ };
801
+
802
+ const family = await DogWeekAPI.createFamily(familyData);
803
+ ```
804
+
805
+ #### 4. Add Dog
806
+
807
+ ```javascript
808
+ const dogData = {
809
+ name: 'Rufus',
810
+ breed: 'Golden Retriever',
811
+ gender: 'male',
812
+ birthDate: '2020-05-15',
813
+ color: 'Golden',
814
+ picture: '[base64-image-data]',
815
+ };
816
+
817
+ const dog = await DogWeekAPI.addDog(dogData);
818
+ ```
819
+
820
+ #### 5. Get Family Data
821
+
822
+ ```javascript
823
+ const family = await DogWeekAPI.getActiveFamily();
824
+ const dogs = await DogWeekAPI.getFamilyDogs();
825
+ const members = await DogWeekAPI.getFamilyMembers();
826
+ ```
827
+
828
+ ---
829
+
830
+ ## ✅ Step 6: Testing Checklist
831
+
832
+ ### Before Considering Prototype "Done"
833
+
834
+ #### Functionality Testing
835
+
836
+ - [ ] All form fields work
837
+ - [ ] Validation shows errors correctly
838
+ - [ ] Submit button works
839
+ - [ ] Loading states display
840
+ - [ ] Success feedback shows
841
+ - [ ] Error handling works
842
+ - [ ] Navigation works (back, next)
843
+ - [ ] Data persists (reload page)
844
+
845
+ #### Mobile Testing
846
+
847
+ - [ ] Viewport is 375px wide (iPhone SE)
848
+ - [ ] All tap targets min 44x44px
849
+ - [ ] Text is readable (min 16px)
850
+ - [ ] No horizontal scroll
851
+ - [ ] Inputs don't cause zoom (iOS)
852
+ - [ ] Touch gestures work (if applicable)
853
+
854
+ #### Code Quality
855
+
856
+ - [ ] All Object IDs present
857
+ - [ ] Console logs helpful (not excessive)
858
+ - [ ] No console errors
859
+ - [ ] CSS organized with comments
860
+ - [ ] JS functions documented
861
+ - [ ] No hardcoded values (use variables)
862
+
863
+ #### Accessibility
864
+
865
+ - [ ] Keyboard navigation works
866
+ - [ ] Form labels present
867
+ - [ ] Error messages clear
868
+ - [ ] Focus states visible
869
+ - [ ] Color contrast sufficient
870
+
871
+ #### Documentation
872
+
873
+ - [ ] Comments explain complex logic
874
+ - [ ] TODOs noted for Supabase migration
875
+ - [ ] Known limitations documented
876
+ - [ ] README included (if needed)
877
+
878
+ ---
879
+
880
+ ## 📚 Common Patterns Library
881
+
882
+ ### Pattern 1: Image Upload with Crop
883
+
884
+ **Use When**: User profile pictures, dog photos, etc.
885
+
886
+ **Files Needed**:
887
+
888
+ - `image-crop.js` (copy from existing prototype)
889
+ - Modal HTML in main file
890
+ - CSS for crop interface
891
+
892
+ **Implementation**:
893
+
894
+ ```javascript
895
+ function handlePictureUpload() {
896
+ document.getElementById('pictureInput').click();
897
+ }
898
+
899
+ document.getElementById('pictureInput').addEventListener('change', (e) => {
900
+ const file = e.target.files[0];
901
+ if (file) {
902
+ const reader = new FileReader();
903
+ reader.onload = (e) => {
904
+ showCropModal(e.target.result);
905
+ };
906
+ reader.readAsDataURL(file);
907
+ }
908
+ });
909
+ ```
910
+
911
+ ---
912
+
913
+ ### Pattern 2: Searchable Dropdown (Combobox)
914
+
915
+ **Use When**: Large lists (breeds, countries, etc.)
916
+
917
+ **HTML**:
918
+
919
+ ```html
920
+ <button type="button" onclick="toggleDropdown()">
921
+ <span id="selectedValue">Select...</span>
922
+ </button>
923
+
924
+ <div id="dropdown" class="dropdown hidden">
925
+ <input type="text" id="searchInput" oninput="filterOptions()" placeholder="Search..." />
926
+ <div id="optionsList"></div>
927
+ </div>
928
+ ```
929
+
930
+ **JavaScript**:
931
+
932
+ ```javascript
933
+ function filterOptions() {
934
+ const query = document.getElementById('searchInput').value.toLowerCase();
935
+ const filtered = allOptions.filter((opt) => opt.toLowerCase().includes(query));
936
+ renderOptions(filtered);
937
+ }
938
+ ```
939
+
940
+ ---
941
+
942
+ ### Pattern 3: Multi-Language Toggle
943
+
944
+ **Use When**: International products
945
+
946
+ **HTML**:
947
+
948
+ ```html
949
+ <select id="languageSelector" onchange="switchLanguage(this.value)">
950
+ <option value="se">SE</option>
951
+ <option value="en">EN</option>
952
+ </select>
953
+ ```
954
+
955
+ **JavaScript**:
956
+
957
+ ```javascript
958
+ function switchLanguage(lang) {
959
+ applyLanguage(lang);
960
+ DogWeekAPI.setLanguagePreference(lang);
961
+ }
962
+ ```
963
+
964
+ ---
965
+
966
+ ### Pattern 4: Loading State
967
+
968
+ **Use During**: API calls, navigation, heavy processing
969
+
970
+ **Implementation**:
971
+
972
+ ```javascript
973
+ function setLoadingState(isLoading) {
974
+ const btn = document.getElementById('submitButton');
975
+ const text = btn.querySelector('.text');
976
+ const spinner = btn.querySelector('.spinner');
977
+
978
+ btn.disabled = isLoading;
979
+ text.classList.toggle('hidden', isLoading);
980
+ spinner.classList.toggle('hidden', !isLoading);
981
+ }
982
+
983
+ // Usage
984
+ try {
985
+ setLoadingState(true);
986
+ await DogWeekAPI.someOperation();
987
+ } finally {
988
+ setLoadingState(false);
989
+ }
990
+ ```
991
+
992
+ ---
993
+
994
+ ### Pattern 5: Toast Notification
995
+
996
+ **Use For**: Success messages, simple errors
997
+
998
+ **Implementation**:
999
+
1000
+ ```javascript
1001
+ function showToast(message, duration = 3000) {
1002
+ const toast = document.getElementById('toast');
1003
+ toast.textContent = message;
1004
+ toast.classList.remove('hidden');
1005
+
1006
+ setTimeout(() => {
1007
+ toast.classList.add('hidden');
1008
+ }, duration);
1009
+ }
1010
+
1011
+ // Usage
1012
+ showToast('Dog added successfully! ✓');
1013
+ ```
1014
+
1015
+ ---
1016
+
1017
+ ## 🚨 Common Pitfalls to Avoid
1018
+
1019
+ ### 1. Forgetting Object IDs
1020
+
1021
+ ❌ **Wrong**: `<button id="submitBtn">Submit</button>`
1022
+ ✅ **Right**: `<button id="page-button-submit" data-object-id="page-button-submit">Submit</button>`
1023
+
1024
+ ### 2. Not Handling Loading States
1025
+
1026
+ ❌ **Wrong**: Submit button stays active during API call
1027
+ ✅ **Right**: Disable button, show spinner, prevent double-submit
1028
+
1029
+ ### 3. Hardcoded Values
1030
+
1031
+ ❌ **Wrong**: `background-color: #2563eb;`
1032
+ ✅ **Right**: `background-color: var(--primary);`
1033
+
1034
+ ### 4. No Error Handling
1035
+
1036
+ ❌ **Wrong**: `const result = await API.call();`
1037
+ ✅ **Right**: `try { const result = await API.call(); } catch (error) { showError(error); }`
1038
+
1039
+ ### 5. Desktop-Only Design
1040
+
1041
+ ❌ **Wrong**: Hover states, small tap targets
1042
+ ✅ **Right**: Touch-friendly, min 44px targets
1043
+
1044
+ ### 6. Missing Validation Feedback
1045
+
1046
+ ❌ **Wrong**: Form just doesn't submit
1047
+ ✅ **Right**: Show specific error messages per field
1048
+
1049
+ ### 7. No Console Logging
1050
+
1051
+ ❌ **Wrong**: Silent operations
1052
+ ✅ **Right**: `console.log('✅ Dog added:', dog.name);`
1053
+
1054
+ ---
1055
+
1056
+ ## 🎓 Learning Path
1057
+
1058
+ ### For New Prototype Creators
1059
+
1060
+ **Week 1**: Study existing prototypes
1061
+
1062
+ - Read `PROTOTYPE-ANALYSIS.md`
1063
+ - Open 1.2 Sign In, examine code
1064
+ - Test in mobile viewport
1065
+ - Check console logs
1066
+
1067
+ **Week 2**: Modify existing prototype
1068
+
1069
+ - Copy 1.3 Profile Setup
1070
+ - Change field names
1071
+ - Update validation rules
1072
+ - Test thoroughly
1073
+
1074
+ **Week 3**: Create simple prototype from scratch
1075
+
1076
+ - Pick simple page (static content + form)
1077
+ - Follow this guide step-by-step
1078
+ - Get code review
1079
+
1080
+ **Week 4**: Create complex prototype
1081
+
1082
+ - Multi-step flow
1083
+ - Custom components
1084
+ - Advanced interactions
1085
+
1086
+ ---
1087
+
1088
+ ## 📖 Quick Reference
1089
+
1090
+ ### Object ID Naming Convention
1091
+
1092
+ ```
1093
+ [page]-[section]-[action]
1094
+
1095
+ Examples:
1096
+ - add-dog-input-name
1097
+ - profile-avatar-upload
1098
+ - calendar-week-next
1099
+ - signin-button-google
1100
+ ```
1101
+
1102
+ ### File Naming Convention
1103
+
1104
+ ```
1105
+ [Page-Number]-[Page-Name]-Preview.[ext]
1106
+
1107
+ Examples:
1108
+ - 1.2-Sign-In-Preview.html
1109
+ - 3.1-Dog-Calendar-Booking-Preview.css
1110
+ - 1.6-Add-Dog-Preview.js
1111
+ ```
1112
+
1113
+ ### Required Meta Tag
1114
+
1115
+ ```html
1116
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
1117
+ ```
1118
+
1119
+ ### Minimum Touch Target Size
1120
+
1121
+ ```
1122
+ 44px × 44px (Apple Human Interface Guidelines)
1123
+ 48px × 48px (Material Design)
1124
+ ```
1125
+
1126
+ ---
1127
+
1128
+ ## ✨ Final Tips
1129
+
1130
+ 1. **Start simple** - Get basic version working first
1131
+ 2. **Test early** - Open in mobile viewport immediately
1132
+ 3. **Console log everything** - Makes debugging easier
1133
+ 4. **Copy working patterns** - Don't reinvent the wheel
1134
+ 5. **Ask for help** - Reference existing prototypes
1135
+ 6. **Document as you go** - Comments save time later
1136
+ 7. **Test on real devices** - Emulator != real thing
1137
+
1138
+ ---
1139
+
1140
+ **Remember**: A good interactive prototype is:
1141
+
1142
+ - ✅ **Functional** - Actually works
1143
+ - ✅ **Mobile-optimized** - Touch-friendly
1144
+ - ✅ **Well-documented** - Code is clear
1145
+ - ✅ **Developer-ready** - Easy to extract
1146
+ - ✅ **User-testable** - Can get real feedback
1147
+
1148
+ **Now go create amazing prototypes!** 🚀