whiteport-design-studio 0.2.2 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -67
- package/docs/getting-started/agent-activation/activation/step-01-load-agent-definition.md +0 -1
- package/docs/getting-started/agent-activation/activation/step-04-handoff-presentation.md +0 -1
- package/docs/getting-started/installation.md +1 -1
- package/docs/getting-started/quick-start.md +1 -1
- package/docs/getting-started/where-to-go-next.md +8 -8
- package/docs/learn/00-course-overview/00-course-overview.md +239 -0
- package/docs/{learn-wds → learn}/00-course-overview/00-getting-started-overview.md +1 -1
- package/docs/{learn-wds → learn}/00-course-overview/01-prerequisites.md +2 -2
- package/docs/{learn-wds → learn}/00-course-overview/02-learning-paths.md +6 -6
- package/docs/{learn-wds → learn}/00-course-overview/03-support.md +1 -1
- package/docs/{learn-wds → learn}/Webinars/2024-12-22-WDS-Sessions-1-Say-Hello-to-WDS.md +2 -2
- package/docs/{learn-wds → learn}/Webinars/2025-10-22-Webinar-WDS-v4.md +1 -1
- package/docs/{learn-wds → learn}/Webinars/2026-01-15-WDS-Sessions-2-Strategy-in-Practice.md +2 -2
- package/docs/{learn-wds → learn}/module-01-why-wds-matters/lesson-01-the-problem.md +4 -2
- package/docs/learn/module-01-why-wds-matters/lesson-02-designer-as-strategic-thinker.md +483 -0
- package/docs/{learn-wds/module-01-why-wds-matters/lesson-02-the-solution.md → learn/module-01-why-wds-matters/lesson-03-the-solution.md} +5 -3
- package/docs/{learn-wds/module-01-why-wds-matters/lesson-03-the-path-forward.md → learn/module-01-why-wds-matters/lesson-04-the-path-forward.md} +9 -6
- package/docs/{learn-wds → learn}/module-01-why-wds-matters/module-01-overview.md +22 -4
- package/docs/{learn-wds/module-02-installation-setup/lesson-01-git-setup/01-lesson.md → learn/module-02-installation-setup/lesson-01-git-setup.md} +12 -11
- package/docs/{learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-lesson.md → learn/module-02-installation-setup/lesson-02-ide-installation.md} +8 -7
- package/docs/{learn-wds/module-02-installation-setup/lesson-03-git-cloning/02-full-lesson.md → learn/module-02-installation-setup/lesson-03-git-cloning.md} +10 -9
- package/docs/learn/module-02-installation-setup/lesson-04-wds-initialization.md +133 -0
- package/docs/learn/module-02-installation-setup/module-02-overview.md +59 -0
- package/docs/learn/module-02-installation-setup/tutorial-02.md +158 -0
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-01-understanding-alignment.md +6 -2
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-02-creating-alignment-document.md +5 -1
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-03-negotiation-acceptance.md +6 -2
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-04-external-contracts.md +7 -3
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/lesson-05-internal-signoff.md +7 -3
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/module-03-overview.md +4 -4
- package/docs/{learn-wds → learn}/module-03-alignment-signoff/tutorial-03.md +7 -7
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-01-chaos-problem.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-02-five-questions.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-03-document-structure.md +3 -1
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-04-wds-advantage.md +4 -2
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-05-using-brief.md +2 -0
- package/docs/{learn-wds → learn}/module-04-product-brief/lesson-06-additional-documents.md +3 -1
- package/docs/{learn-wds → learn}/module-04-product-brief/module-04-overview.md +4 -4
- package/docs/{learn-wds → learn}/module-04-product-brief/tutorial-04.md +10 -8
- package/docs/learn/module-05-platform-requirements/lesson-01-why-boundaries-matter.md +232 -0
- package/docs/learn/module-05-platform-requirements/lesson-02-defining-platform-requirements.md +416 -0
- package/docs/learn/module-05-platform-requirements/module-05-platform-requirements-overview.md +186 -0
- package/docs/learn/module-05-platform-requirements/tutorial-05.md +377 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-01-missing-link.md +7 -4
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-02-heritage-evolution.md +20 -42
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-03-five-workshops-overview.md +7 -5
- package/docs/learn/module-06-trigger-mapping/lesson-04-workshop-1-business-goals.md +319 -0
- package/docs/learn/module-06-trigger-mapping/lesson-05-workshop-2-target-groups.md +557 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-06-workshop-3-driving-forces.md +120 -83
- package/docs/learn/module-06-trigger-mapping/lesson-07-workshop-4-prioritization.md +373 -0
- package/docs/learn/module-06-trigger-mapping/lesson-08-workshop-5-feature-impact.md +543 -0
- package/docs/learn/module-06-trigger-mapping/lesson-09-positive-negative-drivers.md +507 -0
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-10-visual-trigger-map.md +6 -4
- package/docs/{learn-wds/module-05-trigger-mapping → learn/module-06-trigger-mapping}/lesson-11-feature-impact-scoring.md +5 -3
- package/docs/{learn-wds/module-05-trigger-mapping/module-05-overview.md → learn/module-06-trigger-mapping/module-06-overview.md} +8 -20
- package/docs/{learn-wds/module-05-trigger-mapping/tutorial-05.md → learn/module-06-trigger-mapping/tutorial-06.md} +14 -12
- package/docs/{learn-wds/module-05-trigger-mapping/tutorial-05c-documentation-synthesis.md → learn/module-06-trigger-mapping/tutorial-06c-documentation-synthesis.md} +11 -9
- package/docs/learn/module-07-design-phase/lesson-01-entering-design.md +251 -0
- package/docs/learn/module-07-design-phase/lesson-02-why-specifications-matter.md +836 -0
- package/docs/learn/module-07-design-phase/lesson-03-meet-freya.md +200 -0
- package/docs/learn/module-07-design-phase/module-07-design-phase-overview.md +148 -0
- package/docs/learn/module-08-outline-scenarios/lesson-01-design-experiences-not-screens.md +559 -0
- package/docs/learn/module-08-outline-scenarios/lesson-02-from-trigger-map-to-scenarios.md +667 -0
- package/docs/learn/module-08-outline-scenarios/lesson-03-mapping-the-journey.md +347 -0
- package/docs/learn/module-08-outline-scenarios/module-08-outline-scenarios-overview.md +298 -0
- package/docs/learn/module-08-outline-scenarios/tutorial-08.md +397 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-01-visualize-first.md +286 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-02-sketching-techniques.md +270 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-03-why-hand-sketching.md +250 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-04-image-sketching-best-practices.md +272 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-05-sketch-text-strategy.md +509 -0
- package/docs/learn/module-09-conceptual-sketching/lesson-06-ai-wireframe-generation.md +211 -0
- package/docs/learn/module-09-conceptual-sketching/module-09-conceptual-sketching-overview.md +243 -0
- package/docs/learn/module-09-conceptual-sketching/tutorial-09.md +381 -0
- package/docs/learn/module-10-storyboarding/lesson-01-transformations.md +392 -0
- package/docs/learn/module-10-storyboarding/lesson-02-storyboard-format.md +410 -0
- package/docs/learn/module-10-storyboarding/module-10-storyboarding-overview.md +290 -0
- package/docs/learn/module-10-storyboarding/tutorial-10.md +405 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-01-design-is-specification.md +593 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-02-section-widget-specifications.md +704 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-03-element-state-specifications.md +950 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-04-spacing-objects.md +192 -0
- package/docs/learn/module-11-conceptual-specifications/lesson-05-typography-tokens.md +157 -0
- package/docs/learn/module-11-conceptual-specifications/module-11-conceptual-specifications-overview.md +497 -0
- package/docs/learn/module-11-conceptual-specifications/storyboards/password-field.md +32 -0
- package/docs/learn/module-11-conceptual-specifications/storyboards/submit-button.md +26 -0
- package/docs/learn/module-11-conceptual-specifications/tutorial-11.md +509 -0
- package/docs/learn/module-12-functional-components/components/button.md +41 -0
- package/docs/learn/module-12-functional-components/components/card.md +40 -0
- package/docs/learn/module-12-functional-components/components/input.md +42 -0
- package/docs/learn/module-12-functional-components/lesson-01-patterns-emerge.md +263 -0
- package/docs/learn/module-12-functional-components/lesson-02-component-anatomy.md +332 -0
- package/docs/learn/module-12-functional-components/module-12-functional-components-overview.md +384 -0
- package/docs/learn/module-12-functional-components/tutorial-12.md +405 -0
- package/docs/learn/module-13-design-system/lesson-01-understanding-modes.md +274 -0
- package/docs/learn/module-13-design-system/module-13-design-system-overview.md +157 -0
- package/docs/learn/module-13-design-system/tutorial-13.md +344 -0
- package/docs/learn/module-14-agentic-development/lesson-01-iterative-building.md +182 -0
- package/docs/learn/module-14-agentic-development/lesson-02-documenting-decisions.md +188 -0
- package/docs/learn/module-14-agentic-development/lesson-03-when-you-get-stuck.md +213 -0
- package/docs/learn/module-14-agentic-development/lesson-04-working-with-code.md +304 -0
- package/docs/learn/module-14-agentic-development/lesson-05-git-discipline.md +349 -0
- package/docs/learn/module-14-agentic-development/module-14-agentic-development-overview.md +249 -0
- package/docs/learn/module-14-agentic-development/tutorial-14.md +339 -0
- package/docs/learn/module-15-visual-design/lesson-01-making-it-visible.md +216 -0
- package/docs/learn/module-15-visual-design/lesson-02-visual-techniques.md +334 -0
- package/docs/learn/module-15-visual-design/module-15-visual-design-overview.md +338 -0
- package/docs/learn/module-15-visual-design/tutorial-15.md +377 -0
- package/docs/learn/module-16-design-delivery/lesson-01-validation-packaging.md +340 -0
- package/docs/learn/module-16-design-delivery/module-16-design-delivery-overview.md +178 -0
- package/docs/learn/module-16-design-delivery/tutorial-16.md +411 -0
- package/docs/learn/module-17-usability-testing/lesson-01-spec-verification.md +243 -0
- package/docs/learn/module-17-usability-testing/lesson-02-test-results.md +240 -0
- package/docs/learn/module-17-usability-testing/lesson-03-acting-on-findings.md +253 -0
- package/docs/learn/module-17-usability-testing/module-17-usability-testing-overview.md +231 -0
- package/docs/learn/module-17-usability-testing/tutorial-17.md +301 -0
- package/docs/learn/module-18-product-evolution/lesson-01-continuous-improvement.md +255 -0
- package/docs/learn/module-18-product-evolution/lesson-02-update-spec-project-code.md +229 -0
- package/docs/learn/module-18-product-evolution/module-18-product-evolution-overview.md +253 -0
- package/docs/learn/module-18-product-evolution/tutorial-18.md +293 -0
- package/docs/learn/widgets/W01-task-list.md +31 -0
- package/docs/learn/widgets/W02-calendar.md +31 -0
- package/docs/learn/widgets/W02-product-card.md +31 -0
- package/docs/learn/widgets/W03-quick-add.md +31 -0
- package/docs/method/content-creation-philosophy.md +3 -3
- package/docs/method/content-purpose-guide.md +4 -4
- package/docs/method/phase-1-product-exploration-guide.md +36 -9
- package/docs/method/phase-2-trigger-mapping-guide.md +44 -2
- package/docs/method/phase-3-prd-platform-guide.md +3 -282
- package/docs/method/phase-3-ux-scenarios-guide.md +193 -0
- package/docs/method/phase-4-ux-design-guide.md +146 -158
- package/docs/method/value-trigger-chain-guide.md +6 -469
- package/docs/method/wds-method-guide.md +139 -129
- package/docs/models/action-mapping.md +1 -1
- package/docs/models/customer-awareness-cycle.md +1 -15
- package/docs/models/golden-circle.md +2 -3
- package/docs/models/impact-effect-mapping.md +5 -6
- package/docs/models/kathy-sierra-badass-users.md +1 -1
- package/docs/models/models-guide.md +1 -2
- package/docs/models/smart-goals-model.md +2 -2
- package/docs/tools/excalidraw.md +384 -0
- package/docs/tools/wds-tools-guide.md +16 -8
- package/package.json +2 -2
- package/src/agents/freya-ux.agent.yaml +16 -15
- package/src/agents/saga-analyst.agent.yaml +11 -0
- package/src/data/agent-guides/freya/agentic-development.md +26 -27
- package/src/data/agent-guides/freya/content-creation.md +7 -7
- package/src/data/agent-guides/freya/strategic-design.md +4 -6
- package/src/data/agent-guides/saga/discovery-conversation.md +20 -0
- package/src/data/agent-guides/saga/dream-up-approach.md +132 -7
- package/src/data/agent-guides/saga/strategic-documentation.md +4 -6
- package/src/data/agent-guides/saga/trigger-mapping.md +7 -7
- package/src/data/presentations/freya-presentation.md +1 -1
- package/src/data/presentations/freya-workflows-guide.md +1 -1
- package/src/data/presentations/idunn-presentation.md +1 -1
- package/src/data/presentations/saga-presentation.md +1 -1
- package/src/module-help.csv +3 -3
- package/src/skills/freya.activation.md +14 -15
- package/src/skills/idunn.activation.md +12 -13
- package/src/skills/saga.activation.md +13 -14
- package/src/workflows/0-alignment-signoff/data/02-explore-sections-routing.md +12 -12
- package/src/workflows/0-alignment-signoff/data/03-synthesize-present-routing.md +2 -3
- package/src/workflows/0-alignment-signoff/steps-c/step-01a-understand-situation.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01b-determine-if-needed.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01c-offer-extract.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01d-extract-info.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-01e-detect-starting-point.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02a-explore-realization.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02b-explore-solution.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02c-explore-why-it-matters.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02d-explore-how-we-see-it-working.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02e-explore-paths-we-explored.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02f-explore-recommended-solution.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02g-explore-path-forward.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02h-explore-value-we-create.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02i-explore-cost-of-inaction.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02j-explore-our-commitment.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-02k-explore-summary.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-03a-reflect-back.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-03b-synthesize-document.md +3 -3
- package/src/workflows/0-alignment-signoff/steps-c/step-03d-present-approval.md +2 -2
- package/src/workflows/0-alignment-signoff/steps-c/step-04a-offer-signoff.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-04b-determine-business-model.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05a-contract-overview.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05b-contract-business-model.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05c-contract-scope.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05d-contract-payment.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05e-contract-timeline.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05f-contract-availability.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05g-contract-confidentiality.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05h-contract-not-to-exceed.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05i-contract-work-initiation.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05j-contract-terms.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05k-contract-approval.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-05l-finalize-contract.md +1 -1
- package/src/workflows/0-alignment-signoff/steps-c/step-06a-build-internal-signoff.md +1 -1
- package/src/workflows/0-alignment-signoff/workflow.md +2 -6
- package/src/workflows/0-project-setup/steps/step-01-welcome.md +1 -1
- package/src/workflows/0-project-setup/steps/step-02-structure.md +3 -3
- package/src/workflows/0-project-setup/templates/folder-guides/00-design-log.template.md +59 -0
- package/src/workflows/0-project-setup/templates/folder-guides/00-design-system.template.md +150 -1
- package/src/workflows/0-project-setup/templates/folder-guides/00-trigger-map.template.md +0 -1
- package/src/workflows/0-project-setup/workflow.md +2 -2
- package/src/workflows/1-project-brief/data/positioning-reflect-confirm.md +2 -2
- package/src/workflows/1-project-brief/data/positioning-synthesize.md +3 -3
- package/src/workflows/1-project-brief/data/vision-synthesize.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-00-simplified-brief.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-01-init.md +4 -4
- package/src/workflows/1-project-brief/steps-c/step-02-vision.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-03-positioning.md +5 -5
- package/src/workflows/1-project-brief/steps-c/step-05-business-model.md +4 -4
- package/src/workflows/1-project-brief/steps-c/step-06-business-customers.md +8 -2
- package/src/workflows/1-project-brief/steps-c/step-07-target-users.md +10 -4
- package/src/workflows/1-project-brief/steps-c/step-07a-product-concept.md +9 -3
- package/src/workflows/1-project-brief/steps-c/step-08-success-criteria.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-09-competitive-landscape.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-10-constraints.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-10a-platform-strategy.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-11-tone-of-voice.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-12-synthesize.md → step-12-create-product-brief.md} +6 -6
- package/src/workflows/1-project-brief/steps-c/step-13-content-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-14-personality.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-15-tone.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-16-languages.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-17-seo-keywords.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-17a-content-structure.md +2 -2
- package/src/workflows/1-project-brief/steps-c/{step-18-content-synthesize.md → step-18-create-content-document.md} +7 -7
- package/src/workflows/1-project-brief/steps-c/step-19-inspiration-workshop.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-20-visual-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-21-existing-brand.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-22-references.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-23-design-style.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-24-layout-effects.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-25-imagery.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-26-visual-synthesize.md → step-26-create-visual-document.md} +3 -3
- package/src/workflows/1-project-brief/steps-c/step-27-platform-init.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-28-tech-stack.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-29-integrations.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-30-contact-strategy.md +3 -3
- package/src/workflows/1-project-brief/steps-c/step-31-multilingual.md +4 -4
- package/src/workflows/1-project-brief/steps-c/{step-32-platform-synthesize.md → step-32-create-platform-document.md} +3 -3
- package/src/workflows/1-project-brief/steps-c/step-33-analyze-brief.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-34-create-summary.md +1 -1
- package/src/workflows/1-project-brief/steps-c/step-35-update-design-log.md +4 -4
- package/src/workflows/1-project-brief/steps-v/step-01-brief-completeness.md +2 -2
- package/src/workflows/1-project-brief/steps-v/{step-02-vtc-consistency.md → step-02-trigger-map-consistency.md} +27 -27
- package/src/workflows/1-project-brief/steps-v/step-03-seo-strategy.md +2 -2
- package/src/workflows/1-project-brief/steps-v/step-04-content-language.md +1 -1
- package/src/workflows/1-project-brief/steps-v/step-05-visual-direction.md +1 -1
- package/src/workflows/1-project-brief/steps-v/step-06-platform-requirements.md +1 -1
- package/src/workflows/1-project-brief/templates/00-project-info.template.md +1 -2
- package/src/workflows/1-project-brief/templates/pitch.template.md +5 -13
- package/src/workflows/1-project-brief/templates/project-brief-dialog/USAGE.md +7 -92
- package/src/workflows/1-project-brief/templates/project-brief.template.md +5 -11
- package/src/workflows/1-project-brief/workflow-validate.md +3 -5
- package/src/workflows/1-project-brief/workflow.md +6 -10
- package/src/workflows/2-trigger-mapping/steps-c/step-01-overview.md +10 -10
- package/src/workflows/2-trigger-mapping/steps-c/step-07a-generate-hub.md +36 -0
- package/src/workflows/2-trigger-mapping/steps-c/step-09a-finalize-hub.md +18 -2
- package/src/workflows/2-trigger-mapping/steps-c/step-09e-update-design-log.md +3 -3
- package/src/workflows/2-trigger-mapping/workflow-validate.md +2 -5
- package/src/workflows/2-trigger-mapping/workflow.md +2 -4
- package/src/workflows/3-scenarios/data/quality-checklist.md +10 -6
- package/src/workflows/3-scenarios/data/scenario-outline-template.md +45 -32
- package/src/workflows/3-scenarios/steps-c/step-01-load-context.md +2 -2
- package/src/workflows/3-scenarios/steps-c/step-02-analyze-scope.md +5 -5
- package/src/workflows/3-scenarios/steps-c/{step-03-build-vtcs.md → step-03-build-strategic-context.md} +32 -32
- package/src/workflows/3-scenarios/steps-c/step-04-suggest-scenarios.md +4 -4
- package/src/workflows/3-scenarios/steps-c/step-05-outline-scenario.md +177 -64
- package/src/workflows/3-scenarios/steps-c/step-06-generate-overview.md +1 -1
- package/src/workflows/3-scenarios/steps-c/step-07-quality-review.md +1 -1
- package/src/workflows/3-scenarios/steps-c/step-08-update-design-log.md +2 -2
- package/src/workflows/3-scenarios/steps-c/step-09-handover.md +8 -8
- package/src/workflows/3-scenarios/steps-v/step-01-scenario-coverage.md +23 -23
- package/src/workflows/3-scenarios/workflow-validate.md +2 -5
- package/src/workflows/3-scenarios/workflow.md +4 -6
- package/src/workflows/4-ux-design/data/guides/DESIGN-LOOP-GUIDE.md +179 -0
- package/src/workflows/4-ux-design/data/guides/NANO-BANANA-PROMPT-GUIDE.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/flow-b-verbal.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/flow-e-html.md +2 -2
- package/src/workflows/4-ux-design/data/page-creation-flows/lightweight-page-template.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/page-init-lightweight.md +1 -1
- package/src/workflows/4-ux-design/data/page-creation-flows/placeholder-templates.md +3 -3
- package/src/workflows/4-ux-design/data/quality-guide.md +1 -1
- package/src/workflows/4-ux-design/data/scenario-init/06-shortest-path.md +2 -2
- package/src/workflows/4-ux-design/data/scenario-init/07-reference-trigger-map.md +80 -0
- package/src/workflows/4-ux-design/data/scenario-init/scenario-init-guide.md +4 -4
- package/src/workflows/4-ux-design/data/specification-audit-workflow.md +29 -4
- package/src/workflows/4-ux-design/steps-c/step-01-exploration.md +230 -98
- package/src/workflows/4-ux-design/steps-m/step-01-review-current.md +2 -2
- package/src/workflows/4-ux-design/steps-m/step-02-define-component.md +1 -1
- package/src/workflows/4-ux-design/steps-m/step-03-validate-usage.md +2 -2
- package/src/workflows/4-ux-design/steps-p/step-07-validation.md +3 -3
- package/src/workflows/4-ux-design/steps-p/step-08-spacing-typography.md +210 -0
- package/src/workflows/4-ux-design/steps-p/{step-08-generate-spec.md → step-09-generate-spec.md} +19 -25
- package/src/workflows/4-ux-design/steps-s/step-01-core-feature.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-02-entry-point.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-03-mental-state.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-04-mutual-success.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-05-shortest-path.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-06-scenario-name.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-07-create-scenario-folder.md +8 -7
- package/src/workflows/4-ux-design/steps-s/step-08-page-context.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-09-page-name.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-10-page-purpose.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-11-entry-point.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-12-mental-state.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-13-desired-outcome.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-14-variants.md +3 -2
- package/src/workflows/4-ux-design/steps-s/step-15-create-page-structure.md +32 -13
- package/src/workflows/4-ux-design/steps-v/step-03-page-overview.md +1 -1
- package/src/workflows/4-ux-design/steps-w/step-01-visual-approach.md +1 -2
- package/src/workflows/4-ux-design/steps-w/step-02-generate-visual.md +1 -1
- package/src/workflows/4-ux-design/steps-w/step-02w-nb-compose-prompt.md +13 -22
- package/src/workflows/4-ux-design/steps-w/step-03-review-integrate.md +4 -4
- package/src/workflows/4-ux-design/templates/audit-report.template.md +2 -2
- package/src/workflows/4-ux-design/templates/page-specification.template.md +86 -0
- package/src/workflows/4-ux-design/workflow-conceptualize.md +9 -15
- package/src/workflows/4-ux-design/workflow-design-system.md +20 -8
- package/src/workflows/4-ux-design/workflow-dream.md +104 -13
- package/src/workflows/4-ux-design/workflow-handover.md +4 -8
- package/src/workflows/4-ux-design/workflow-sketch.md +2 -9
- package/src/workflows/4-ux-design/workflow-specify.md +6 -11
- package/src/workflows/4-ux-design/workflow-suggest.md +70 -21
- package/src/workflows/4-ux-design/workflow-validate.md +6 -10
- package/src/workflows/4-ux-design/workflow-visual.md +5 -10
- package/src/workflows/4-ux-design/workflow.md +110 -39
- package/src/workflows/5-agentic-development/data/guides/FILE-INDEX.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-01-define-question.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-02-scan-codebase.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-03-map-architecture.md +1 -1
- package/src/workflows/5-agentic-development/steps-a/step-04-document-findings.md +2 -2
- package/src/workflows/5-agentic-development/steps-d/step-01-scope-and-plan.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-02-setup-environment.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-03-implement.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-04-verify.md +1 -1
- package/src/workflows/5-agentic-development/steps-d/step-05-finalize.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-01-scope-change.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-02-analyze-impact.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-03-plan-implementation.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-04-implement.md +1 -1
- package/src/workflows/5-agentic-development/steps-e/step-05-verify-and-document.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-01-reproduce.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-02-investigate.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-03-fix.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-04-verify.md +1 -1
- package/src/workflows/5-agentic-development/steps-f/step-05-document.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/1-prototype-setup.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/2-scenario-analysis.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/3-logical-view-breakdown.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4a-announce-and-gather.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4b-create-story-file.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4c-implement-section.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4d-present-for-testing.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4e-handle-issue.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4f-handle-improvement.md +1 -1
- package/src/workflows/5-agentic-development/steps-p/4g-section-approved.md +2 -2
- package/src/workflows/5-agentic-development/steps-p/5-finalization.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-01-identify-target.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-02-explore-and-capture.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-03-generate-specs.md +1 -1
- package/src/workflows/5-agentic-development/steps-r/step-04-extract-design-system.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-01-prepare.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-02-execute.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-03-document-issues.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-04-report.md +1 -1
- package/src/workflows/5-agentic-development/steps-t/step-05-iterate.md +1 -1
- package/src/workflows/5-agentic-development/workflow-acceptance-testing.md +33 -8
- package/src/workflows/5-agentic-development/workflow-analysis.md +5 -8
- package/src/workflows/5-agentic-development/workflow-bugfixing.md +5 -8
- package/src/workflows/5-agentic-development/workflow-development.md +17 -8
- package/src/workflows/5-agentic-development/workflow-evolution.md +5 -8
- package/src/workflows/5-agentic-development/workflow-prototyping.md +26 -8
- package/src/workflows/5-agentic-development/workflow-reverse-engineering.md +5 -8
- package/src/workflows/5-agentic-development/workflow.md +5 -8
- package/src/workflows/6-asset-generation/data/00-purpose-examples.md +4 -4
- package/src/workflows/6-asset-generation/data/03-action-filter-example.md +1 -1
- package/src/workflows/6-asset-generation/data/04-example-empowerment-frame.md +1 -1
- package/src/workflows/6-asset-generation/data/05-example-golden-circle.md +1 -1
- package/src/workflows/6-asset-generation/data/05-golden-circle-guide.md +1 -1
- package/src/workflows/6-asset-generation/data/06-example-hairdresser-newsletter.md +1 -1
- package/src/workflows/6-asset-generation/data/06-generation-instructions.md +1 -1
- package/src/workflows/6-asset-generation/data/content-creation-workshop-guide.md +9 -10
- package/src/workflows/6-asset-generation/steps-c/step-00-define-purpose.md +3 -3
- package/src/workflows/6-asset-generation/steps-c/step-01-load-trigger-map-context.md +147 -0
- package/src/workflows/6-asset-generation/steps-c/step-02-awareness-strategy.md +5 -5
- package/src/workflows/6-asset-generation/steps-c/step-03-action-filter.md +7 -7
- package/src/workflows/6-asset-generation/steps-c/step-04-empowerment-frame.md +1 -1
- package/src/workflows/6-asset-generation/steps-c/step-05-structural-order.md +2 -2
- package/src/workflows/6-asset-generation/steps-c/step-06-generate-content.md +3 -3
- package/src/workflows/6-asset-generation/templates/content-output.template.md +5 -5
- package/src/workflows/6-asset-generation/workflow-content.md +4 -7
- package/src/workflows/6-asset-generation/workflow-figma.md +2 -5
- package/src/workflows/6-asset-generation/workflow-icons.md +2 -5
- package/src/workflows/6-asset-generation/workflow-images.md +2 -5
- package/src/workflows/6-asset-generation/workflow-page-designs.md +2 -5
- package/src/workflows/6-asset-generation/workflow-stitch.md +5 -9
- package/src/workflows/6-asset-generation/workflow-ui-elements.md +2 -5
- package/src/workflows/6-asset-generation/workflow-videos.md +2 -5
- package/src/workflows/6-asset-generation/workflow-wireframes.md +2 -5
- package/src/workflows/6-asset-generation/workflow.md +3 -5
- package/src/workflows/7-design-system/steps-c/step-01-scan-existing.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-02-compare-attributes.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-03-calculate-similarity.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-04-identify-opportunities.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-05-identify-risks.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-06-present-decision.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-07-execute-decision.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08a-initialize-design-system.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08b-create-new-component.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08c-update-component.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08d-add-variant.md +2 -2
- package/src/workflows/7-design-system/steps-c/step-08e-generate-catalog.md +1 -1
- package/src/workflows/7-design-system/workflow-browse.md +2 -5
- package/src/workflows/7-design-system/workflow-create.md +2 -5
- package/src/workflows/7-design-system/workflow-edit.md +2 -5
- package/src/workflows/7-design-system/workflow-import.md +2 -5
- package/src/workflows/7-design-system/workflow-view.md +2 -5
- package/src/workflows/7-design-system/workflow.md +9 -11
- package/src/workflows/8-product-evolution/steps-a/step-01-identify.md +4 -4
- package/src/workflows/8-product-evolution/steps-p/step-01-create-delivery.md +1 -1
- package/src/workflows/8-product-evolution/workflow-analyze.md +2 -5
- package/src/workflows/8-product-evolution/workflow-deploy.md +3 -6
- package/src/workflows/8-product-evolution/workflow-design.md +2 -5
- package/src/workflows/8-product-evolution/workflow-implement.md +2 -5
- package/src/workflows/8-product-evolution/workflow-scope.md +2 -5
- package/src/workflows/8-product-evolution/workflow-test.md +2 -5
- package/src/workflows/8-product-evolution/workflow.md +7 -9
- package/tools/cli/commands/install.js +1 -1
- package/tools/cli/installers/lib/ide/_base-ide.js +263 -0
- package/tools/cli/installers/lib/ide/antigravity.js +34 -0
- package/tools/cli/installers/lib/ide/auggie.js +42 -0
- package/tools/cli/installers/lib/ide/claude-code.js +114 -0
- package/tools/cli/installers/lib/ide/cline.js +116 -0
- package/tools/cli/installers/lib/ide/codex.js +43 -0
- package/tools/cli/installers/lib/ide/crush.js +42 -0
- package/tools/cli/installers/lib/ide/cursor.js +116 -0
- package/tools/cli/installers/lib/ide/gemini.js +50 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +106 -0
- package/tools/cli/installers/lib/ide/iflow.js +42 -0
- package/tools/cli/installers/lib/ide/kilo.js +55 -0
- package/tools/cli/installers/lib/ide/kiro-cli.js +44 -0
- package/tools/cli/installers/lib/ide/manager.js +218 -0
- package/tools/cli/installers/lib/ide/opencode.js +44 -0
- package/tools/cli/installers/lib/ide/qwen.js +50 -0
- package/tools/cli/installers/lib/ide/roo.js +43 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +43 -0
- package/tools/cli/installers/lib/ide/trae.js +42 -0
- package/tools/cli/installers/lib/ide/windsurf.js +106 -0
- package/tools/cli/lib/compiler.js +10 -2
- package/tools/cli/lib/ide-configs.js +2 -4
- package/tools/cli/lib/installer.js +115 -206
- package/tools/cli/lib/ui.js +191 -54
- package/docs/getting-started/agent-activation/wds-mimir.md +0 -78
- package/docs/learn-wds/00-course-overview.md +0 -211
- package/docs/learn-wds/Webinars/2024-12-22-WDS-Jam-1-Say-Hello-to-AI-Agent-Framework.md +0 -0
- package/docs/learn-wds/course-explainers/Module 00-transcript.srt +0 -635
- package/docs/learn-wds/course-explainers/Module 02-transcript.srt +0 -807
- package/docs/learn-wds/course-explainers/Module-00-notebook-lm-prompt.md +0 -250
- package/docs/learn-wds/course-explainers/Module-00-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-00-youtube-show-notes.md +0 -78
- package/docs/learn-wds/course-explainers/Module-01-notebook-lm-prompt.md +0 -418
- package/docs/learn-wds/course-explainers/Module-01-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-01-transcript.srt +0 -731
- package/docs/learn-wds/course-explainers/Module-02-notebook-lm-prompt.md +0 -342
- package/docs/learn-wds/course-explainers/Module-02-thumbnail-prompt.md +0 -34
- package/docs/learn-wds/course-explainers/Module-03-notebook-lm-prompt.md +0 -745
- package/docs/learn-wds/course-explainers/Module-03-thumbnail-prompt.md +0 -33
- package/docs/learn-wds/course-explainers/Module-03-transcript.srt +0 -595
- package/docs/learn-wds/course-explainers/Module-04-notebook-lm-prompt.md +0 -163
- package/docs/learn-wds/course-explainers/Module-04-thumbnail-prompt.md +0 -36
- package/docs/learn-wds/course-explainers/Module-04-youtube-show-notes.md +0 -95
- package/docs/learn-wds/course-explainers/Module-05-notebook-lm-prompt.md +0 -274
- package/docs/learn-wds/course-explainers/Module-05-thumbnail-prompt.md +0 -40
- package/docs/learn-wds/course-explainers/Module-05-youtube-show-notes.md +0 -65
- package/docs/learn-wds/course-explainers/module-01-YOUTUBE-SHOW-NOTES.md +0 -75
- package/docs/learn-wds/course-explainers/module-02-YOUTUBE-SHOW-NOTES.md +0 -86
- package/docs/learn-wds/course-explainers/module-03-YOUTUBE-SHOW-NOTES.md +0 -82
- package/docs/learn-wds/course-explainers/trigger-map-example.jpg +0 -0
- package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/01-quick-checklist.md +0 -63
- package/docs/learn-wds/module-02-installation-setup/lesson-01-git-setup/02-full-lesson.md +0 -124
- package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/checklist.md +0 -87
- package/docs/learn-wds/module-02-installation-setup/lesson-01-github-and-ide-setup/lesson.md +0 -203
- package/docs/learn-wds/module-02-installation-setup/lesson-01-setting-up-github/checklist.md +0 -70
- package/docs/learn-wds/module-02-installation-setup/lesson-02-git-configuration/checklist.md +0 -40
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/01-quick-checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-full-lesson.md +0 -88
- package/docs/learn-wds/module-02-installation-setup/lesson-02-ide-installation/02-quick-checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/checklist.md +0 -48
- package/docs/learn-wds/module-02-installation-setup/lesson-02-install-ide/tutorial.md +0 -149
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/01-quick-checklist.md +0 -51
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-lesson.md +0 -111
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-cloning/03-quick-checklist.md +0 -51
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/checklist.md +0 -41
- package/docs/learn-wds/module-02-installation-setup/lesson-03-git-setup/tutorial.md +0 -159
- package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/checklist.md +0 -93
- package/docs/learn-wds/module-02-installation-setup/lesson-04-clone-and-wds/tutorial.md +0 -217
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/01-quick-checklist.md +0 -73
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/02-full-lesson.md +0 -206
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-lesson.md +0 -206
- package/docs/learn-wds/module-02-installation-setup/lesson-04-wds-initialization/04-quick-checklist.md +0 -73
- package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/checklist.md +0 -79
- package/docs/learn-wds/module-02-installation-setup/lesson-05-initiate-mimir/tutorial.md +0 -244
- package/docs/learn-wds/module-02-installation-setup/module-02-overview.md +0 -77
- package/docs/learn-wds/module-05-map-triggers-outcomes/tutorial-04.md +0 -460
- package/docs/learn-wds/module-05-trigger-mapping/lesson-04-workshop-1-business-goals.md +0 -274
- package/docs/learn-wds/module-05-trigger-mapping/lesson-05-workshop-2-target-groups.md +0 -504
- package/docs/learn-wds/module-05-trigger-mapping/lesson-07-workshop-4-prioritization.md +0 -313
- package/docs/learn-wds/module-05-trigger-mapping/lesson-08-workshop-5-feature-impact.md +0 -474
- package/docs/learn-wds/module-05-trigger-mapping/lesson-09-positive-negative-drivers.md +0 -348
- package/docs/learn-wds/module-05-trigger-mapping/tutorial-05b-value-trigger-chain.md +0 -393
- package/docs/learn-wds/module-06-platform-architecture/tutorial-06.md +0 -358
- package/docs/learn-wds/module-08-initialize-scenario/tutorial-08.md +0 -521
- package/docs/learn-wds/module-09-design-system/tutorial-09.md +0 -515
- package/docs/learn-wds/module-10-design-delivery/tutorial-10.md +0 -604
- package/docs/learn-wds/module-12-conceptual-specs/tutorial-12.md +0 -734
- package/src/agents/mimir-orchestrator.agent.yaml +0 -45
- package/src/data/agent-guides/mimir/emotional-intelligence.md +0 -295
- package/src/data/agent-guides/mimir/teaching-styles.md +0 -286
- package/src/data/agent-guides/mimir/wds-overview.md +0 -377
- package/src/data/presentations/mimir-getting-started.md +0 -52
- package/src/data/presentations/mimir-presentation.md +0 -123
- package/src/gems/eira-visual-designer.md +0 -571
- package/src/workflows/0-alignment-signoff/steps-c/step-03c-create-vtc.md +0 -148
- package/src/workflows/0-project-setup/templates/folder-guides/00-progress.template.md +0 -56
- package/src/workflows/1-project-brief/steps-c/step-04-create-vtc.md +0 -120
- package/src/workflows/1-project-brief/steps-c/step-11a-create-vtc.md +0 -181
- package/src/workflows/1-project-brief/templates/vtc-template.yaml +0 -210
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-01a-define-business-goal.md +0 -137
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-01b-load-trigger-map.md +0 -127
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-02a-identify-solution.md +0 -133
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-02b-select-business-goal.md +0 -138
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-03a-describe-user.md +0 -147
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-03b-select-user.md +0 -142
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-04a-positive-driving-forces.md +0 -163
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-04b-select-driving-forces.md +0 -154
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-05a-negative-driving-forces.md +0 -195
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-05b-define-solution.md +0 -117
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-06a-customer-awareness.md +0 -216
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-06b-customer-awareness.md +0 -123
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-07a-review-and-save.md +0 -250
- package/src/workflows/1-project-brief/vtc-workshop/steps-c/step-07b-review-and-save.md +0 -191
- package/src/workflows/1-project-brief/vtc-workshop/workflow.md +0 -209
- package/src/workflows/4-ux-design/data/scenario-init/07-create-vtc.md +0 -132
- package/src/workflows/6-asset-generation/steps-c/step-01-load-vtc-context.md +0 -150
- package/src/workflows/_agent-dialogs/conversation-persistence/check-conversations.md +0 -162
- package/src/workflows/_agent-dialogs/conversation-persistence/conversation-template.md +0 -70
- package/src/workflows/_agent-dialogs/conversation-persistence/persistence-guide.md +0 -81
- package/src/workflows/_agent-dialogs/conversation-persistence/save-conversation.md +0 -146
- package/src/workflows/_agent-dialogs/project-analysis/01-instructions.md +0 -79
- package/src/workflows/_agent-dialogs/project-analysis/02-project-analysis-router.md +0 -99
- package/src/workflows/_agent-dialogs/project-analysis/03-context-aware-activation.md +0 -99
- package/src/workflows/_agent-dialogs/project-analysis/04-task-reflection.md +0 -303
- package/src/workflows/_agent-dialogs/project-analysis/05-agent-handoff-guide.md +0 -233
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/freya-domain.md +0 -144
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/idunn-domain.md +0 -112
- package/src/workflows/_agent-dialogs/project-analysis/agent-domains/saga-domain.md +0 -132
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/empty-project-response.md +0 -207
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/folder-based-analysis.md +0 -135
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/new-project-response.md +0 -235
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/outline-based-analysis.md +0 -238
- package/src/workflows/_agent-dialogs/project-analysis/analysis-types/unknown-structure-response.md +0 -216
- package/src/workflows/_agent-dialogs/project-analysis/validation/deep-validation-before-work.md +0 -235
- package/src/workflows/_agent-dialogs/project-analysis/work-types/strategy-work.md +0 -88
- package/src/workflows/_agent-dialogs/step-completion-protocol.md +0 -175
- package/src/workflows/_agent-dialogs/steps/step-01-initialize-dialog.md +0 -244
- package/src/workflows/_agent-dialogs/steps/step-02-analyze-scope.md +0 -195
- package/src/workflows/_agent-dialogs/steps/step-03-create-steps.md +0 -186
- package/src/workflows/_agent-dialogs/steps/step-04-execute-steps.md +0 -250
- package/src/workflows/_agent-dialogs/steps/step-05-complete-dialog.md +0 -177
- package/src/workflows/_agent-dialogs/templates/agent-dialog.template.md +0 -115
- package/src/workflows/_agent-dialogs/templates/dialog-capture.template.md +0 -75
- package/src/workflows/_agent-dialogs/templates/dialog-types/INDEX.md +0 -142
- package/src/workflows/_agent-dialogs/templates/dialog-types/bug-fix.template.md +0 -164
- package/src/workflows/_agent-dialogs/templates/dialog-types/design-exploration.template.md +0 -180
- package/src/workflows/_agent-dialogs/templates/dialog-types/prototype-implementation.template.md +0 -292
- package/src/workflows/_agent-dialogs/templates/dialog-types/stitch-generation.template.md +0 -311
- package/src/workflows/_agent-dialogs/templates/dialog.template.md +0 -200
- package/src/workflows/_agent-dialogs/templates/dream-up-agent-dialog.template.md +0 -271
- package/src/workflows/_agent-dialogs/templates/step.template.md +0 -138
- package/src/workflows/_agent-dialogs/workflow.md +0 -193
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
const chalk = require('chalk');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Cursor IDE setup handler for WDS
|
|
7
|
+
*/
|
|
8
|
+
class CursorSetup extends BaseIdeSetup {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('cursor', 'Cursor', true); // preferred IDE
|
|
11
|
+
this.configDir = '.cursor/rules/wds';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Setup Cursor IDE configuration
|
|
16
|
+
* @param {string} projectDir - Project directory
|
|
17
|
+
* @param {string} wdsDir - WDS installation directory
|
|
18
|
+
* @param {Object} options - Setup options
|
|
19
|
+
*/
|
|
20
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
21
|
+
// Create .cursor/rules/wds directory
|
|
22
|
+
const targetDir = path.join(projectDir, this.configDir);
|
|
23
|
+
await this.ensureDir(targetDir);
|
|
24
|
+
|
|
25
|
+
// Get all WDS agents
|
|
26
|
+
const agents = await this.getAgents(wdsDir);
|
|
27
|
+
|
|
28
|
+
if (agents.length === 0) {
|
|
29
|
+
throw new Error('No agents found in WDS installation');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Create launcher file for each agent
|
|
33
|
+
let agentCount = 0;
|
|
34
|
+
for (const agent of agents) {
|
|
35
|
+
// Create launcher content that references the compiled agent
|
|
36
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
37
|
+
|
|
38
|
+
// Add Cursor-specific MDC frontmatter
|
|
39
|
+
const content = this.processContent(launcher, agent.metadata);
|
|
40
|
+
|
|
41
|
+
// Write launcher file with .mdc extension
|
|
42
|
+
const filePath = path.join(targetDir, `${agent.slug}.mdc`);
|
|
43
|
+
await this.writeFile(filePath, content);
|
|
44
|
+
agentCount++;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if (options.logger) {
|
|
48
|
+
options.logger.log(chalk.dim(` - ${agentCount} agent(s) configured for Cursor`));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
success: true,
|
|
53
|
+
agents: agentCount,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Process content with Cursor-specific MDC frontmatter
|
|
59
|
+
* @param {string} content - Launcher content
|
|
60
|
+
* @param {Object} metadata - Agent metadata
|
|
61
|
+
* @returns {string} Processed content with Cursor MDC frontmatter
|
|
62
|
+
*/
|
|
63
|
+
processContent(content, metadata = {}) {
|
|
64
|
+
// Strip any existing frontmatter from launcher
|
|
65
|
+
const frontmatterRegex = /^---\s*\n[\s\S]*?\n---\s*\n/;
|
|
66
|
+
const contentWithoutFrontmatter = content.replace(frontmatterRegex, '');
|
|
67
|
+
|
|
68
|
+
const description = metadata.name
|
|
69
|
+
? `WDS Agent: ${metadata.name} - ${metadata.description}`
|
|
70
|
+
: `WDS Agent: ${metadata.description || 'Agent'}`;
|
|
71
|
+
|
|
72
|
+
// Create Cursor MDC metadata header
|
|
73
|
+
const mdcHeader = `---
|
|
74
|
+
description: ${description}
|
|
75
|
+
globs:
|
|
76
|
+
alwaysApply: false
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
`;
|
|
80
|
+
|
|
81
|
+
return mdcHeader + contentWithoutFrontmatter;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Cleanup Cursor WDS configuration
|
|
86
|
+
* @param {string} projectDir - Project directory
|
|
87
|
+
*/
|
|
88
|
+
async cleanup(projectDir) {
|
|
89
|
+
const wdsPath = path.join(projectDir, this.configDir);
|
|
90
|
+
|
|
91
|
+
if (await this.exists(wdsPath)) {
|
|
92
|
+
await this.remove(wdsPath);
|
|
93
|
+
console.log(chalk.dim(`Removed Cursor WDS configuration`));
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Detect if Cursor is configured in project
|
|
99
|
+
* @param {string} projectDir - Project directory
|
|
100
|
+
* @returns {boolean}
|
|
101
|
+
*/
|
|
102
|
+
async detect(projectDir) {
|
|
103
|
+
return await this.exists(path.join(projectDir, '.cursor'));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Remove directory helper
|
|
108
|
+
* @param {string} dirPath - Directory to remove
|
|
109
|
+
*/
|
|
110
|
+
async remove(dirPath) {
|
|
111
|
+
const fs = require('fs-extra');
|
|
112
|
+
await fs.remove(dirPath);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
module.exports = { CursorSetup };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Gemini CLI setup handler for WDS
|
|
6
|
+
* Uses TOML format for commands
|
|
7
|
+
*/
|
|
8
|
+
class GeminiSetup extends BaseIdeSetup {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('gemini', 'Gemini CLI', false);
|
|
11
|
+
this.configDir = '.gemini/commands/wds';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
15
|
+
const targetDir = path.join(projectDir, this.configDir);
|
|
16
|
+
await this.ensureDir(targetDir);
|
|
17
|
+
|
|
18
|
+
const agents = await this.getAgents(wdsDir);
|
|
19
|
+
if (agents.length === 0) throw new Error('No agents found in WDS installation');
|
|
20
|
+
|
|
21
|
+
for (const agent of agents) {
|
|
22
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
23
|
+
const content = this.processContent(launcher, agent.metadata);
|
|
24
|
+
await this.writeFile(path.join(targetDir, `${agent.slug}.toml`), content);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return { success: true, agents: agents.length };
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
processContent(content, metadata = {}) {
|
|
31
|
+
const description = metadata.name ? `${metadata.name} - ${metadata.description}` : metadata.description || 'WDS Agent';
|
|
32
|
+
|
|
33
|
+
// Escape content for TOML multi-line string
|
|
34
|
+
const escapedContent = content.replaceAll('"""', String.raw`\"\"\"`);
|
|
35
|
+
|
|
36
|
+
return `description = "${description}"
|
|
37
|
+
|
|
38
|
+
[prompt]
|
|
39
|
+
text = """
|
|
40
|
+
${escapedContent}
|
|
41
|
+
"""
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async detect(projectDir) {
|
|
46
|
+
return await this.exists(path.join(projectDir, '.gemini'));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
module.exports = { GeminiSetup };
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
const chalk = require('chalk');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* GitHub Copilot IDE setup handler for WDS
|
|
7
|
+
* Note: GitHub Copilot doesn't support includes/references, so we must copy full agent content
|
|
8
|
+
*/
|
|
9
|
+
class GitHubCopilotSetup extends BaseIdeSetup {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('github-copilot', 'GitHub Copilot', false);
|
|
12
|
+
this.configFile = '.github/copilot-instructions.md';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Setup GitHub Copilot IDE configuration
|
|
17
|
+
* @param {string} projectDir - Project directory
|
|
18
|
+
* @param {string} wdsDir - WDS installation directory
|
|
19
|
+
* @param {Object} options - Setup options
|
|
20
|
+
*/
|
|
21
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
22
|
+
// Ensure .github directory exists
|
|
23
|
+
const githubDir = path.join(projectDir, '.github');
|
|
24
|
+
await this.ensureDir(githubDir);
|
|
25
|
+
|
|
26
|
+
// Get all WDS agents
|
|
27
|
+
const agents = await this.getAgents(wdsDir);
|
|
28
|
+
|
|
29
|
+
if (agents.length === 0) {
|
|
30
|
+
throw new Error('No agents found in WDS installation');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Build content to append
|
|
34
|
+
let content = '\n\n## WDS Agents\n\n';
|
|
35
|
+
content += '<!-- Generated by WDS installer - Do not edit manually -->\n\n';
|
|
36
|
+
|
|
37
|
+
// For each agent, read the full compiled agent content
|
|
38
|
+
let agentCount = 0;
|
|
39
|
+
for (const agent of agents) {
|
|
40
|
+
// Read the full agent content
|
|
41
|
+
const agentContent = await this.readFile(agent.path);
|
|
42
|
+
|
|
43
|
+
// Add section header
|
|
44
|
+
content += `### ${agent.metadata.name} - ${agent.metadata.description}\n\n`;
|
|
45
|
+
|
|
46
|
+
// Add full agent content
|
|
47
|
+
content += agentContent + '\n\n';
|
|
48
|
+
content += '---\n\n';
|
|
49
|
+
|
|
50
|
+
agentCount++;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Append to copilot-instructions.md
|
|
54
|
+
const filePath = path.join(projectDir, this.configFile);
|
|
55
|
+
|
|
56
|
+
if (await this.exists(filePath)) {
|
|
57
|
+
// File exists, append to it
|
|
58
|
+
const fs = require('fs-extra');
|
|
59
|
+
await fs.appendFile(filePath, content);
|
|
60
|
+
} else {
|
|
61
|
+
// File doesn't exist, create it
|
|
62
|
+
await this.writeFile(filePath, content);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (options.logger) {
|
|
66
|
+
options.logger.log(chalk.dim(` - ${agentCount} agent(s) configured for GitHub Copilot`));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return {
|
|
70
|
+
success: true,
|
|
71
|
+
agents: agentCount,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Cleanup GitHub Copilot WDS configuration
|
|
77
|
+
* @param {string} projectDir - Project directory
|
|
78
|
+
*/
|
|
79
|
+
async cleanup(projectDir) {
|
|
80
|
+
const filePath = path.join(projectDir, this.configFile);
|
|
81
|
+
|
|
82
|
+
if (await this.exists(filePath)) {
|
|
83
|
+
// Read file, remove WDS Agents section
|
|
84
|
+
const fs = require('fs-extra');
|
|
85
|
+
const content = await fs.readFile(filePath, 'utf8');
|
|
86
|
+
|
|
87
|
+
// Remove WDS Agents section (everything from "## WDS Agents" to the end or next ## section)
|
|
88
|
+
const wdsAgentsRegex = /\n\n## WDS Agents\n\n[\s\S]*?(?=\n\n##\s|$)/;
|
|
89
|
+
const cleanedContent = content.replace(wdsAgentsRegex, '');
|
|
90
|
+
|
|
91
|
+
await fs.writeFile(filePath, cleanedContent);
|
|
92
|
+
console.log(chalk.dim(`Removed GitHub Copilot WDS configuration`));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Detect if GitHub Copilot is configured in project
|
|
98
|
+
* @param {string} projectDir - Project directory
|
|
99
|
+
* @returns {boolean}
|
|
100
|
+
*/
|
|
101
|
+
async detect(projectDir) {
|
|
102
|
+
return await this.exists(path.join(projectDir, '.github'));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
module.exports = { GitHubCopilotSetup };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* iFlow CLI setup handler for WDS
|
|
6
|
+
*/
|
|
7
|
+
class IFlowSetup extends BaseIdeSetup {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('iflow', 'iFlow CLI', false);
|
|
10
|
+
this.configDir = '.iflow/commands/wds';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
14
|
+
const targetDir = path.join(projectDir, this.configDir);
|
|
15
|
+
await this.ensureDir(targetDir);
|
|
16
|
+
|
|
17
|
+
const agents = await this.getAgents(wdsDir);
|
|
18
|
+
if (agents.length === 0) throw new Error('No agents found in WDS installation');
|
|
19
|
+
|
|
20
|
+
for (const agent of agents) {
|
|
21
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
22
|
+
const content = this.processContent(launcher, agent.metadata);
|
|
23
|
+
await this.writeFile(path.join(targetDir, `${agent.slug}.md`), content);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return { success: true, agents: agents.length };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
processContent(content, metadata = {}) {
|
|
30
|
+
const title = metadata.name ? `${metadata.name} - ${metadata.description}` : metadata.description || 'WDS Agent';
|
|
31
|
+
|
|
32
|
+
return `# ${title}
|
|
33
|
+
|
|
34
|
+
${content}`;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
async detect(projectDir) {
|
|
38
|
+
return await this.exists(path.join(projectDir, '.iflow'));
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
module.exports = { IFlowSetup };
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const fs = require('fs-extra');
|
|
3
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Kilo Code setup handler for WDS
|
|
7
|
+
* Appends agent modes to .kilocodemodes YAML file
|
|
8
|
+
*/
|
|
9
|
+
class KiloSetup extends BaseIdeSetup {
|
|
10
|
+
constructor() {
|
|
11
|
+
super('kilo', 'Kilo Code', false);
|
|
12
|
+
this.configFile = '.kilocodemodes';
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
16
|
+
const agents = await this.getAgents(wdsDir);
|
|
17
|
+
if (agents.length === 0) throw new Error('No agents found in WDS installation');
|
|
18
|
+
|
|
19
|
+
const filePath = path.join(projectDir, this.configFile);
|
|
20
|
+
|
|
21
|
+
// Build modes content
|
|
22
|
+
let modesContent = '\n# WDS Agent Modes\n';
|
|
23
|
+
|
|
24
|
+
for (const agent of agents) {
|
|
25
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
26
|
+
|
|
27
|
+
modesContent += `\n- slug: wds-${agent.slug}`;
|
|
28
|
+
modesContent += `\n name: "${agent.metadata.name || agent.slug}"`;
|
|
29
|
+
modesContent += `\n roleDefinition: "${agent.metadata.description || 'WDS Agent'}"`;
|
|
30
|
+
modesContent += `\n customInstructions: |`;
|
|
31
|
+
// Indent launcher content for YAML block
|
|
32
|
+
const indented = launcher
|
|
33
|
+
.split('\n')
|
|
34
|
+
.map((line) => ` ${line}`)
|
|
35
|
+
.join('\n');
|
|
36
|
+
modesContent += `\n${indented}\n`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (await this.exists(filePath)) {
|
|
40
|
+
// Append to existing file
|
|
41
|
+
await fs.appendFile(filePath, modesContent);
|
|
42
|
+
} else {
|
|
43
|
+
// Create new file
|
|
44
|
+
await this.writeFile(filePath, modesContent);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return { success: true, agents: agents.length };
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async detect(projectDir) {
|
|
51
|
+
return await this.exists(path.join(projectDir, this.configFile));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
module.exports = { KiloSetup };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Kiro CLI setup handler for WDS
|
|
6
|
+
* Creates JSON config + markdown prompt files
|
|
7
|
+
*/
|
|
8
|
+
class KiroCliSetup extends BaseIdeSetup {
|
|
9
|
+
constructor() {
|
|
10
|
+
super('kiro-cli', 'Kiro CLI', false);
|
|
11
|
+
this.configDir = '.kiro/agents/wds';
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
15
|
+
const targetDir = path.join(projectDir, this.configDir);
|
|
16
|
+
await this.ensureDir(targetDir);
|
|
17
|
+
|
|
18
|
+
const agents = await this.getAgents(wdsDir);
|
|
19
|
+
if (agents.length === 0) throw new Error('No agents found in WDS installation');
|
|
20
|
+
|
|
21
|
+
for (const agent of agents) {
|
|
22
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
23
|
+
|
|
24
|
+
// Write JSON config
|
|
25
|
+
const jsonConfig = {
|
|
26
|
+
name: agent.metadata.name || agent.slug,
|
|
27
|
+
description: agent.metadata.description || 'WDS Agent',
|
|
28
|
+
prompt: `./${agent.slug}-prompt.md`,
|
|
29
|
+
};
|
|
30
|
+
await this.writeFile(path.join(targetDir, `${agent.slug}.json`), JSON.stringify(jsonConfig, null, 2));
|
|
31
|
+
|
|
32
|
+
// Write markdown prompt
|
|
33
|
+
await this.writeFile(path.join(targetDir, `${agent.slug}-prompt.md`), launcher);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return { success: true, agents: agents.length };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async detect(projectDir) {
|
|
40
|
+
return await this.exists(path.join(projectDir, '.kiro'));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = { KiroCliSetup };
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
const fs = require('fs-extra');
|
|
2
|
+
const path = require('node:path');
|
|
3
|
+
const chalk = require('chalk');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* IDE Manager - handles IDE-specific setup for WDS
|
|
7
|
+
* Dynamically discovers and loads IDE handlers
|
|
8
|
+
*/
|
|
9
|
+
class IdeManager {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.handlers = new Map();
|
|
12
|
+
this.loadHandlers();
|
|
13
|
+
this.wdsFolderName = '_bmad/wds'; // Default, can be overridden
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Set the WDS folder name for all IDE handlers
|
|
18
|
+
* @param {string} wdsFolderName - The WDS folder name
|
|
19
|
+
*/
|
|
20
|
+
setWdsFolderName(wdsFolderName) {
|
|
21
|
+
this.wdsFolderName = wdsFolderName;
|
|
22
|
+
// Update all loaded handlers
|
|
23
|
+
for (const handler of this.handlers.values()) {
|
|
24
|
+
if (typeof handler.setWdsFolderName === 'function') {
|
|
25
|
+
handler.setWdsFolderName(wdsFolderName);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Dynamically load all IDE handlers from directory
|
|
32
|
+
*/
|
|
33
|
+
loadHandlers() {
|
|
34
|
+
const ideDir = __dirname;
|
|
35
|
+
|
|
36
|
+
try {
|
|
37
|
+
// Get all JS files in the IDE directory
|
|
38
|
+
const files = fs.readdirSync(ideDir).filter((file) => {
|
|
39
|
+
// Skip base class, manager, and utility files (starting with _)
|
|
40
|
+
return file.endsWith('.js') && !file.startsWith('_') && file !== 'manager.js';
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Sort alphabetically for consistent ordering
|
|
44
|
+
files.sort();
|
|
45
|
+
|
|
46
|
+
for (const file of files) {
|
|
47
|
+
const moduleName = path.basename(file, '.js');
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
const modulePath = path.join(ideDir, file);
|
|
51
|
+
const HandlerModule = require(modulePath);
|
|
52
|
+
|
|
53
|
+
// Get the first exported class (handles various export styles)
|
|
54
|
+
const HandlerClass = HandlerModule.default || HandlerModule[Object.keys(HandlerModule)[0]];
|
|
55
|
+
|
|
56
|
+
if (HandlerClass) {
|
|
57
|
+
const instance = new HandlerClass();
|
|
58
|
+
// Use the name property from the instance (set in constructor)
|
|
59
|
+
// Only add if the instance has a valid name
|
|
60
|
+
if (instance.name && typeof instance.name === 'string') {
|
|
61
|
+
this.handlers.set(instance.name, instance);
|
|
62
|
+
} else {
|
|
63
|
+
console.log(chalk.yellow(` Warning: ${moduleName} handler missing valid 'name' property`));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.log(chalk.yellow(` Warning: Could not load ${moduleName}: ${error.message}`));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
} catch (error) {
|
|
71
|
+
console.error(chalk.red('Failed to load IDE handlers:'), error.message);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Get all available IDEs with their metadata
|
|
77
|
+
* @returns {Array} Array of IDE information objects
|
|
78
|
+
*/
|
|
79
|
+
getAvailableIdes() {
|
|
80
|
+
const ides = [];
|
|
81
|
+
|
|
82
|
+
for (const [key, handler] of this.handlers) {
|
|
83
|
+
// Skip handlers without valid names
|
|
84
|
+
const name = handler.displayName || handler.name || key;
|
|
85
|
+
|
|
86
|
+
// Filter out invalid entries
|
|
87
|
+
if (!key || !name || typeof key !== 'string' || typeof name !== 'string') {
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
ides.push({
|
|
92
|
+
value: key,
|
|
93
|
+
name: name,
|
|
94
|
+
preferred: handler.preferred || false,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// Sort: preferred first, then alphabetical
|
|
99
|
+
ides.sort((a, b) => {
|
|
100
|
+
if (a.preferred && !b.preferred) return -1;
|
|
101
|
+
if (!a.preferred && b.preferred) return 1;
|
|
102
|
+
return a.name.localeCompare(b.name);
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
return ides;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Setup IDE integrations for selected IDEs
|
|
110
|
+
* Main method called by installer
|
|
111
|
+
* @param {string} projectDir - Project directory
|
|
112
|
+
* @param {string} wdsDir - WDS installation directory
|
|
113
|
+
* @param {Array<string>} selectedIdes - List of IDE names to setup
|
|
114
|
+
* @param {Object} options - Setup options (logger, etc.)
|
|
115
|
+
* @returns {Object} Results object with success/failure counts
|
|
116
|
+
*/
|
|
117
|
+
async setup(projectDir, wdsDir, selectedIdes, options = {}) {
|
|
118
|
+
const results = {
|
|
119
|
+
success: [],
|
|
120
|
+
failed: [],
|
|
121
|
+
skipped: [],
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
const logger = options.logger || console;
|
|
125
|
+
|
|
126
|
+
// Set WDS folder name if provided
|
|
127
|
+
if (options.wdsFolderName) {
|
|
128
|
+
this.setWdsFolderName(options.wdsFolderName);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
for (const ideName of selectedIdes) {
|
|
132
|
+
const handler = this.handlers.get(ideName.toLowerCase());
|
|
133
|
+
|
|
134
|
+
if (!handler) {
|
|
135
|
+
logger.warn(chalk.yellow(` ⚠ IDE '${ideName}' is not yet supported`));
|
|
136
|
+
results.skipped.push({ ide: ideName, reason: 'unsupported' });
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
try {
|
|
141
|
+
logger.log(chalk.dim(` Setting up ${handler.displayName || ideName}...`));
|
|
142
|
+
await handler.setup(projectDir, wdsDir, options);
|
|
143
|
+
results.success.push(ideName);
|
|
144
|
+
logger.log(chalk.green(` ✓ ${handler.displayName || ideName} configured`));
|
|
145
|
+
} catch (error) {
|
|
146
|
+
logger.warn(chalk.yellow(` ⚠ Failed to setup ${ideName}: ${error.message}`));
|
|
147
|
+
results.failed.push({ ide: ideName, error: error.message });
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Log summary
|
|
152
|
+
if (results.success.length > 0) {
|
|
153
|
+
logger.log(chalk.dim(` Configured ${results.success.length} IDE(s)`));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
if (results.failed.length > 0) {
|
|
157
|
+
logger.warn(chalk.yellow(` ${results.failed.length} IDE(s) failed to configure`));
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
return results;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Cleanup IDE configurations
|
|
165
|
+
* @param {string} projectDir - Project directory
|
|
166
|
+
* @returns {Array} Results for each IDE
|
|
167
|
+
*/
|
|
168
|
+
async cleanup(projectDir) {
|
|
169
|
+
const results = [];
|
|
170
|
+
|
|
171
|
+
for (const [name, handler] of this.handlers) {
|
|
172
|
+
try {
|
|
173
|
+
await handler.cleanup(projectDir);
|
|
174
|
+
results.push({ ide: name, success: true });
|
|
175
|
+
} catch (error) {
|
|
176
|
+
results.push({ ide: name, success: false, error: error.message });
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
return results;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Get list of supported IDEs
|
|
185
|
+
* @returns {Array} List of supported IDE names
|
|
186
|
+
*/
|
|
187
|
+
getSupportedIdes() {
|
|
188
|
+
return [...this.handlers.keys()];
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
/**
|
|
192
|
+
* Check if an IDE is supported
|
|
193
|
+
* @param {string} ideName - Name of the IDE
|
|
194
|
+
* @returns {boolean} True if IDE is supported
|
|
195
|
+
*/
|
|
196
|
+
isSupported(ideName) {
|
|
197
|
+
return this.handlers.has(ideName.toLowerCase());
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* Detect installed IDEs in project
|
|
202
|
+
* @param {string} projectDir - Project directory
|
|
203
|
+
* @returns {Array} List of detected IDEs
|
|
204
|
+
*/
|
|
205
|
+
async detectInstalledIdes(projectDir) {
|
|
206
|
+
const detected = [];
|
|
207
|
+
|
|
208
|
+
for (const [name, handler] of this.handlers) {
|
|
209
|
+
if (typeof handler.detect === 'function' && (await handler.detect(projectDir))) {
|
|
210
|
+
detected.push(name);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return detected;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
module.exports = { IdeManager };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const path = require('node:path');
|
|
2
|
+
const { BaseIdeSetup } = require('./_base-ide');
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* OpenCode IDE setup handler for WDS
|
|
6
|
+
*/
|
|
7
|
+
class OpenCodeSetup extends BaseIdeSetup {
|
|
8
|
+
constructor() {
|
|
9
|
+
super('opencode', 'OpenCode', false);
|
|
10
|
+
this.configDir = '.opencode/agent/wds';
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
async setup(projectDir, wdsDir, options = {}) {
|
|
14
|
+
const targetDir = path.join(projectDir, this.configDir);
|
|
15
|
+
await this.ensureDir(targetDir);
|
|
16
|
+
|
|
17
|
+
const agents = await this.getAgents(wdsDir);
|
|
18
|
+
if (agents.length === 0) throw new Error('No agents found in WDS installation');
|
|
19
|
+
|
|
20
|
+
for (const agent of agents) {
|
|
21
|
+
const launcher = this.formatAgentLauncher(agent.name, agent.path);
|
|
22
|
+
const content = this.processContent(launcher, agent.metadata);
|
|
23
|
+
await this.writeFile(path.join(targetDir, `${agent.slug}.md`), content);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return { success: true, agents: agents.length };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
processContent(content, metadata = {}) {
|
|
30
|
+
return `---
|
|
31
|
+
name: ${metadata.name || 'WDS Agent'}
|
|
32
|
+
description: ${metadata.description || 'Agent'}
|
|
33
|
+
mode: agent
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
${content}`;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async detect(projectDir) {
|
|
40
|
+
return await this.exists(path.join(projectDir, '.opencode'));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
module.exports = { OpenCodeSetup };
|