From 8f3af396dd333535133bd835b839db10f73f507c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Angner?= Date: Sun, 28 Dec 2025 20:59:27 +0100 Subject: [PATCH] feat(wds): Enhance UX design documentation and workflow structure Updated the UX design documentation to reflect changes in project phases, including the addition of a new phase for ongoing product cycles. Revised terminology for clarity, replacing "detailed specifications" with "conceptual specifications." Enhanced the workflow initialization process by defining project structure and delivery configurations, ensuring a more streamlined setup for users. Additionally, updated examples and scenarios to align with the new project focus on TaskFlow, improving overall consistency and user guidance. --- .../presentations/freyja-presentation.md | 8 +- .../docs/1-project-brief/01-product-brief.md | 31 +- .../1-project-brief/02-content-strategy.md | 562 ++++++++++++++++ .../1.1-wds-presentation.md | 228 +++++++ .../1-1-wds-presentation-desktop-concept.jpg | Bin 0 -> 529358 bytes .../WDS-Presentation/wds-workflow-status.yaml | 111 ++++ .../wds-workflow-status-template.yaml | 18 + .../SKETCH-FIRST-IMPLEMENTATION-PLAN.md | 617 ++++++++++++++++++ .../content-placement-rules.md | 8 +- .../02-workflows/01-what-are-storyboards.md | 2 +- .../02-workflows/01-when-to-use.md | 12 +- .../page-specification-workflow.md | 2 +- .../02-workflows/storyboards-guide.md | 2 +- .../page-specification-quality/README.md | 318 +++++++++ .../instructions.md | 23 + .../step-01-navigation.md | 239 +++++++ .../step-02-page-overview.md | 310 +++++++++ .../step-03-page-overview.md | 221 +++++++ .../step-04-object-registry.md | 327 ++++++++++ .../step-04-page-sections.md | 319 +++++++++ .../step-05-object-registry.md | 327 ++++++++++ .../step-06-final-validation.md | 420 ++++++++++++ .../4-ux-design/steps/step-01-init.md | 45 +- .../steps/step-02-define-scenario.md | 93 --- .../steps/step-02-setup-scenario-structure.md | 67 ++ .../steps/step-02-substeps/README.md | 110 ++++ .../page-init/page-init-lightweight.md | 327 ++++++++++ .../page-init/step-01-page-context.md | 61 ++ .../page-init/step-02-page-name.md | 26 + .../page-init/step-03-page-purpose.md | 25 + .../page-init/step-04-entry-point.md | 27 + .../page-init/step-05-mental-state.md | 22 + .../page-init/step-06-desired-outcome.md | 22 + .../page-init/step-07-variants.md | 29 + .../step-08-create-page-structure.md | 141 ++++ .../page-init/workshop-c-placeholder-pages.md | 406 ++++++++++++ .../page-init/workshop-page-creation.md | 578 ++++++++++++++++ .../page-init/workshop-page-process.md | 333 ++++++++++ .../scenario-init/step-01-core-feature.md | 26 + .../scenario-init/step-02-entry-point.md | 26 + .../scenario-init/step-03-mental-state.md | 24 + .../scenario-init/step-04-mutual-success.md | 27 + .../scenario-init/step-05-shortest-path.md | 39 ++ .../scenario-init/step-06-scenario-name.md | 24 + .../step-07-create-scenario-folder.md | 145 ++++ .../4-ux-design/steps/step-05-next-steps.md | 2 +- .../wds/workflows/PROJECT-STRUCTURE-SYSTEM.md | 226 +++++++ .../agent-domains/freyja-domain.md | 30 + .../agent-domains/idunn-domain.md | 13 + .../agent-domains/saga-domain.md | 13 + .../workflows/workflow-init/instructions.md | 347 +--------- .../project-config.template.yaml | 11 + .../steps/step-02-project-structure.md | 54 ++ .../steps/step-03-delivery-config.md | 76 +++ .../steps/step-04-phases-selection.md | 180 +++++ 55 files changed, 7223 insertions(+), 457 deletions(-) create mode 100644 src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/02-content-strategy.md create mode 100644 src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/1.1-wds-presentation.md create mode 100644 src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/sketches/1-1-wds-presentation-desktop-concept.jpg create mode 100644 src/modules/wds/examples/WDS-Presentation/wds-workflow-status.yaml create mode 100644 src/modules/wds/workflows/4-ux-design/SKETCH-FIRST-IMPLEMENTATION-PLAN.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/README.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/instructions.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-01-navigation.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-02-page-overview.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-03-page-overview.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-object-registry.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-page-sections.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-05-object-registry.md create mode 100644 src/modules/wds/workflows/4-ux-design/page-specification-quality/step-06-final-validation.md delete mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-define-scenario.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-setup-scenario-structure.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/README.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/page-init-lightweight.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-01-page-context.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-02-page-name.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-03-page-purpose.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-04-entry-point.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-05-mental-state.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-06-desired-outcome.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-07-variants.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-08-create-page-structure.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-c-placeholder-pages.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-creation.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-process.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-01-core-feature.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-02-entry-point.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-03-mental-state.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-04-mutual-success.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-05-shortest-path.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-06-scenario-name.md create mode 100644 src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-07-create-scenario-folder.md create mode 100644 src/modules/wds/workflows/PROJECT-STRUCTURE-SYSTEM.md create mode 100644 src/modules/wds/workflows/workflow-init/steps/step-02-project-structure.md create mode 100644 src/modules/wds/workflows/workflow-init/steps/step-03-delivery-config.md create mode 100644 src/modules/wds/workflows/workflow-init/steps/step-04-phases-selection.md diff --git a/src/modules/wds/agents/presentations/freyja-presentation.md b/src/modules/wds/agents/presentations/freyja-presentation.md index 90f1bb01..c4271dee 100644 --- a/src/modules/wds/agents/presentations/freyja-presentation.md +++ b/src/modules/wds/agents/presentations/freyja-presentation.md @@ -39,11 +39,11 @@ docs/ ## 🌟 My Expertise -**Phase 4: UX Design** - Creating scenarios, sketches, interactive prototypes, and detailed specifications +**Phase 4: UX Design** - Creating scenarios, sketches, interactive prototypes, and conceptual specifications **Phase 5: Design System** - Building design tokens, component libraries, and style guides -**Phase 7: Testing** - Validating designs through usability testing and implementation review - -**I create interactive prototypes** you can actually click through and test before any code is written! +**Phase 6: Design Deliverables** - Preparing handoff packages for development with all specifications and assets +**Phase 7: Testing** - Validating designs through usability testing and implementation review +**Phase 8: Ongoing Product Cycles** - Iterative improvements and feature evolution for existing products --- diff --git a/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/01-product-brief.md b/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/01-product-brief.md index 366dd6de..43cf699c 100644 --- a/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/01-product-brief.md +++ b/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/01-product-brief.md @@ -3,7 +3,36 @@ **Project:** WDS Official Presentation Page **Date:** December 24, 2025 **Author:** Saga WDS Analyst Agent -**Status:** In Progress +**Status:** Complete + +--- + +## Project Structure + +**Type:** simple_website +**Description:** Single-page marketing site with multiple content sections +**Scenarios:** single +**Pages:** single (with potential variants) + +This is a simple website project with a single primary landing page. The page contains multiple sections but represents one continuous user journey. Future variants (e.g., for different audiences) may be added as page variants. + +--- + +## Delivery Configuration + +**Format:** WordPress Markup +**Target Platform:** WordPress CMS (Whiteport.com) +**Requires PRD:** No + +**Delivery Description:** +Ready-to-paste WordPress page editor code with properly formatted blocks, content sections, and embedded media. No separate PRD phase needed since the specifications translate directly to WordPress implementation. + +**Deliverables:** +- WordPress editor code blocks (headings, paragraphs, lists, tables) +- YouTube embeds with proper shortcodes +- Image placements with alt text +- Links formatted as WordPress links +- Paste-ready content sections --- diff --git a/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/02-content-strategy.md b/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/02-content-strategy.md new file mode 100644 index 00000000..624d5c81 --- /dev/null +++ b/src/modules/wds/examples/WDS-Presentation/docs/1-project-brief/02-content-strategy.md @@ -0,0 +1,562 @@ +# WDS Presentation Page - Content Strategy + +**Purpose:** Define messaging strategy, tone, and content boundaries for the WDS Presentation landing page. + +**Target Persona:** Stina the Strategist (Primary) +**Secondary Personas:** Lars the Leader, Felix the Full-Stack + +--- + +## Strategic Content Principles + +### 1. AI as Co-Pilot, Not Replacement + +**Messaging:** +- Position AI agents as collaborative tools that enhance designer expertise +- Emphasize "strategic leader" role for designers +- Use "co-pilot" language consistently + +**Why:** +- Addresses Stina's fear of being replaced by AI +- Elevates her role rather than threatening it +- Builds confidence in AI adoption + +**Examples:** +- βœ… "Design with AI co-pilots" +- βœ… "AI agents that amplify your expertise" +- ❌ "AI does the design for you" +- ❌ "Replace manual design work" + +--- + +### 2. Empowering, Not Easy + +**Messaging:** +- Acknowledge the learning curve honestly +- Emphasize capability-building over simplicity +- Use language like "empowering," "strategic," "professional" + +**Why:** +- Stina is skeptical of "easy" promises (been burned before) +- WDS genuinely requires skill and thoughtfulness +- Respect for expertise builds trust + +**Examples:** +- βœ… "Build professional design specifications" +- βœ… "Master strategic UX methodology" +- ❌ "Easy to use" +- ❌ "Anyone can design" +- ❌ "No experience needed" + +--- + +### 3. Free as Generosity, Not Cheap + +**Messaging:** +- Mention "free" but don't overemphasize it +- Focus on value and capability, price is secondary +- GitHub open-source positioning builds credibility + +**Why:** +- Over-emphasizing "free" can devalue the methodology +- Stina values quality over price +- Open-source = transparency, not "cheap" + +**Examples:** +- βœ… "Available on GitHub" +- βœ… "Open-source methodology" +- ⚠️ "Free forever" (OK but don't lead with it) +- ❌ "Free because we can't charge for this" +- ❌ "Get it for free before we start charging" + +--- + +### 4. Show Outcomes, Not Features + +**Messaging:** +- Lead with what designers can CREATE (deliverables) +- Show tangible artifacts (PRDs, specs, prototypes) +- Link to GitHub examples + +**Why:** +- Stina needs to see concrete value quickly +- Deliverables prove this isn't vaporware +- Real examples build confidence + +**Examples:** +- βœ… "Create professional Product Briefs" +- βœ… "Generate interactive prototypes" +- ❌ "Has 8 different agents" +- ❌ "Includes many templates" + +--- + +## Section-Specific Strategy + +### Hero Section + +**Primary Goal:** Emotional connection + immediate value proposition + +**Content Strategy:** +- **Battle Cry First** - Lead with emotional transformation +- **Illustration Shows Designer** - Stina sees herself in the tool +- **Single CTA** - One clear action (GitHub) +- **Blue Background** - Professional, brand-consistent + +**Messaging Focus:** +- Design methodology, not just software +- Strategic leadership role +- Creative empowerment + +**Psychology:** +- **Addresses Fear:** "Being replaced" β†’ Shows designer in control +- **Triggers Want:** "Be strategic expert" β†’ Methodology focus + +--- + +### Benefits Section + +**Primary Goal:** Quick differentiation from Figma/standard tools + +**Content Strategy:** +- 3 key differentiators only (not overwhelming) +- Each benefit = problem solved + outcome delivered +- Visual icons to aid scanning + +**Messaging Focus:** +- What makes WDS DIFFERENT (not better) +- Problems other tools don't solve +- Designer + AI collaboration model + +**Psychology:** +- **Addresses Fear:** "Wasting time" β†’ Shows specific value +- **Triggers Want:** "Make real impact" β†’ Business outcomes + +--- + +### Capabilities Section (Right Column) + +**Primary Goal:** Show tangible outputs and build confidence + +**Content Strategy:** +- 8 phases presented as capabilities +- Each = Action verb + Outcome + GitHub link +- 4 lines max per capability (scannable) +- Deliverable clearly marked + +**Messaging Focus:** +- WHAT you create (not how it works) +- Complete workflow visibility +- Professional artifacts + +**Psychology:** +- **Addresses Fear:** "Too complex for me" β†’ Broken into clear steps +- **Triggers Want:** "See complete picture" β†’ Full workflow + +**See detailed capability descriptions in:** [Capability Messaging](#capability-messaging) + +--- + +### Testimonials Section + +**Primary Goal:** Build trust through social proof + +**Content Strategy:** +- Real people (eventually) with real results +- Focus on transformation, not features +- Include persona-specific testimonials + +**Messaging Focus:** +- Before/after emotional states +- Specific outcomes achieved +- Credible, authentic voices + +**Psychology:** +- **Addresses Fear:** "This won't work for me" β†’ Others succeeded +- **Triggers Want:** "Be recognized" β†’ Social validation + +--- + +### CTA Section + +**Primary Goal:** Remove barriers to action + +**Content Strategy:** +- Clear next step (GitHub or Course) +- Low commitment language +- Emphasize exploratory, risk-free approach + +**Messaging Focus:** +- Invitation, not pressure +- Multiple entry points (browse, learn, try) +- Open-source transparency + +**Psychology:** +- **Addresses Fear:** "Being locked in" β†’ Can explore freely +- **Triggers Want:** "Learn confidently" β†’ Safe exploration + +--- + +## Content Boundaries (WHAT NOT TO DO) + +### Don't Lead with Technical Details + +**Avoid upfront:** +- IDE requirements (Cursor) +- Text-based workflows +- Terminal/command line mentions +- Technical architecture + +**Why:** +- Too intimidating for Stina initially +- Save technical details for "Getting Started" +- Focus on outcomes first, mechanics later + +**When to introduce:** +- After emotional connection established +- In "How It Works" or "Getting Started" section +- With supportive, educational framing + +--- + +### Don't Use "Easy" or "Simple" Language + +**Avoid:** +- "Easy to use" +- "Simple design tool" +- "No learning curve" +- "Anyone can do it" + +**Use instead:** +- "Empowering" +- "Strategic" +- "Professional" +- "Systematic" + +**Why:** +- WDS genuinely requires skill +- Stina is skeptical of false promises +- Respect for expertise builds trust + +--- + +### Don't Show Code/Terminal Screenshots + +**Avoid upfront:** +- Terminal windows +- Code syntax +- File system screenshots +- Technical editor views + +**Show instead:** +- Finished deliverables (specs, PRDs) +- Visual outputs (prototypes, diagrams) +- Designer-agent conversation flows +- Beautiful page examples + +**Why:** +- Code looks intimidating +- Focus on outputs, not inputs +- Visual outcomes are more compelling + +--- + +### Don't Use Multiple CTAs + +**Avoid:** +- Multiple buttons in hero +- Competing calls to action +- "Try now" + "Learn more" + "Sign up" + +**Use instead:** +- One primary CTA per section +- Clear hierarchy (primary vs. secondary) +- Consistent action across sections + +**Why:** +- Multiple CTAs create decision paralysis +- Stina needs clear path forward +- Reduces cognitive load + +--- + +### Don't Use Comparison Language + +**Avoid:** +- "Better than Figma" +- "Replace your design tools" +- "Unlike other UX tools" +- Competitor name-dropping + +**Use instead:** +- "Different approach" +- "Complements your existing tools" +- "Text-based design methodology" +- Focus on what WDS DOES, not what others don't + +**Why:** +- Creates defensiveness (Stina probably uses Figma) +- Comparison feels aggressive +- WDS is additive, not replacement + +--- + +### Don't Use Aggressive AI Replacement Messaging + +**Avoid:** +- "AI does the design work" +- "Replace your design team" +- "Automated UX design" +- "AI-first workflow" + +**Use instead:** +- "AI co-pilots" +- "AI-assisted design" +- "Collaborative agents" +- "AI amplifies your expertise" + +**Why:** +- Threatens designer identity +- Stina fears being replaced +- Co-pilot framing reduces anxiety + +--- + +### Don't Overemphasize "Free" + +**Avoid:** +- "Free forever!" as headline +- "No credit card required" everywhere +- Price comparison tables +- "Get it free before we charge" + +**Use instead:** +- "Available on GitHub" +- "Open-source methodology" +- Mention free once, move on +- Focus on value, not price + +**Why:** +- Over-emphasizing free devalues the work +- Stina values quality over price +- Free can signal "cheap" or "unfinished" + +--- + +## Capability Messaging + +*[This section contains the detailed messaging for the 8 WDS capabilities/phases]* + +### Phase 1: Win Client Buy-In + +**Headline:** "Win Client Buy-In" + +**Description:** +``` +Present your vision in business language that stakeholders understand. Get everyone +aligned on goals, budget, and commitment before you start. Stop projects from dying +in "maybe" meetings. Saga helps you articulate value and create professional agreements. +``` + +**Deliverable:** "β†’ Pitch & Service Agreement" + +**Psychology:** +- **Problem:** Projects stuck in "maybe" limbo +- **Outcome:** Commitment and alignment +- **Agent Help:** Saga translates design vision to business language + +--- + +### Phase 2: Define Your Project + +**Headline:** "Define Your Project" + +**Description:** +``` +Get crystal clear on what you're building, who it's for, and why it matters. Create a +strategic foundation that guides every design decision. No more scope creep or confused +teams. This brief becomes your north star when things get messy. +``` + +**Deliverable:** "β†’ Product Brief" + +**Psychology:** +- **Problem:** Scope creep, confusion +- **Outcome:** Strategic clarity +- **Agent Help:** Structured questioning process + +--- + +### Phase 3: Map Business Goals to User Needs + +**Headline:** "Map Business Goals to User Needs" + +**Description:** +``` +Connect what the business wants to what users actually need. Identify the emotional +triggers and pain points that make your design work. Stop guessing and start designing +with psychological insight. Cascade helps you create personas grounded in real driving forces. +``` + +**Deliverable:** "β†’ Trigger Map & Personas" + +**Psychology:** +- **Problem:** Designing by guesswork +- **Outcome:** Psychological insight +- **Agent Help:** Cascade guides trigger mapping + +--- + +### Phase 4: Architect the Platform + +**Headline:** "Architect the Platform" + +**Description:** +``` +Define the technical foundation, data structure, and system architecture. Make smart +decisions about what to build and how it fits together. Bridge the gap between design +vision and technical reality. Idunn helps you think through the platform without getting lost in code. +``` + +**Deliverable:** "β†’ Platform PRD & Architecture" + +**Psychology:** +- **Problem:** Design-dev disconnect +- **Outcome:** Technical clarity without coding +- **Agent Help:** Idunn translates design to technical specs + +--- + +### Phase 5: Design the Experience + +**Headline:** "Design the Experience" + +**Description:** +``` +Turn sketches into complete specifications with interactive prototypes. Capture not +just WHAT it looks like, but WHY you designed it that way. Preserve your design intent +from concept to code. Freyja helps you create specifications that developers actually understand and respect. +``` + +**Deliverable:** "β†’ Page Specs & Prototypes" + +**Psychology:** +- **Problem:** Design intent lost in handoff +- **Outcome:** Specifications developers respect +- **Agent Help:** Freyja captures WHY, not just WHAT + +--- + +### Phase 6: Build Your Design System + +**Headline:** "Build Your Design System" + +**Description:** +``` +Extract reusable components, patterns, and design tokens from your pages. Create +consistency across your entire product without starting from scratch every time. Scale +your design decisions efficiently. Stop reinventing buttons and start building systems. +``` + +**Deliverable:** "β†’ Component Library & Tokens" + +**Psychology:** +- **Problem:** Reinventing components repeatedly +- **Outcome:** Systematic consistency +- **Agent Help:** Pattern extraction and documentation + +--- + +### Phase 7: Hand Off to Developers + +**Headline:** "Hand Off to Developers" + +**Description:** +``` +Package everything developers need in organized PRD documents with epics and stories. +No more "what did you mean by this?" meetings. No more guesswork or lost design intent. +Idunn creates implementation guides that turn your specs into buildable tasks. +``` + +**Deliverable:** "β†’ PRD, Epics & Stories" + +**Psychology:** +- **Problem:** Endless clarification meetings +- **Outcome:** Clear implementation roadmap +- **Agent Help:** Idunn translates specs to dev tasks + +--- + +### Phase 8: Validate the Build + +**Headline:** "Validate the Build" + +**Description:** +``` +Ensure what's built matches what you designed. Catch misinterpretations before they +reach users. Create test plans that validate both function and design intent. Freyja +helps you compare implementations to specifications systematically. +``` + +**Deliverable:** "β†’ Test Plans & Reports" + +**Psychology:** +- **Problem:** Design compromised in implementation +- **Outcome:** Fidelity to original vision +- **Agent Help:** Freyja validates against specs + +--- + +## Tone Guidelines + +### Overall Tone + +**Be:** +- Honest about learning curve +- Enthusiastic about possibilities +- Respectful of expertise +- Inviting to responsibility + +**Avoid:** +- Overpromising +- Condescension +- Hype or exaggeration +- Gatekeeping + +--- + +### Language Patterns + +**Use:** +- "Create," "Build," "Design" (active verbs) +- "You," "Your" (direct address) +- "Professional," "Strategic," "Systematic" (quality descriptors) +- Specific deliverables (not vague promises) + +**Avoid:** +- Passive voice +- Technical jargon (upfront) +- Marketing clichΓ©s +- Vague value propositions + +--- + +## Reference Links + +**For Page Specifications:** +- Link to this document from page specs: `[Content Strategy](../../1-project-brief/02-content-strategy.md)` +- Use this as source of truth for messaging decisions +- Update this document when strategy evolves + +**For Agents:** +- Saga (Analyst) - Client buy-in messaging +- Cascade (Trigger Mapping) - User psychology insights +- Freyja (UX Designer) - Design specification approach +- Idunn (Technical Architect) - Platform/PRD messaging + +--- + +**Last Updated:** December 28, 2025 +**Owner:** Product Team +**Review Cycle:** After each major iteration + diff --git a/src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/1.1-wds-presentation.md b/src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/1.1-wds-presentation.md new file mode 100644 index 00000000..2a4f6aa9 --- /dev/null +++ b/src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/1.1-wds-presentation.md @@ -0,0 +1,228 @@ +### 1.1 WDS Presentation + +![WDS Presentation Page Desktop](sketches/1-1-wds-presentation-desktop-concept.jpg) + +# 1.1 WDS Presentation + +The WDS Presentation page serves as the primary entry point for designers discovering WDS for the first time. This page addresses the universal pain point of feeling threatened and overwhelmed by AI while promising the emotional transformation to empowered strategic leadership. The page must convert curious visitors into engaged learners by demonstrating immediate value and removing adoption barriers. + +**User Situation**: Stina the Strategist, a designer feeling overwhelmed by AI disruption, job hunting, AI-curious but lacking confidence. She's skeptical but hopeful - doesn't want to waste time on another tool. Needs quick value assessment: "Is this worth my time?" + +**Page Purpose**: Convert visitors into learners/users by addressing core emotional drivers from the trigger map - eliminating overwhelm while building confidence that designers can thrive (not just survive) in the AI era through structured methodology and strategic leadership. + +--- + +## Reference Materials + +**Strategic Foundation:** +- [Product Brief](../../1-project-brief/01-product-brief.md) +- [Content Strategy](../../1-project-brief/02-content-strategy.md) - Messaging guidelines and tone +- [Trigger Map](../../2-trigger-map/00-trigger-map.md) +- [Stina Persona](../../2-trigger-map/02-Stina-the-Strategist.md) +- [Feature Impact](../../2-trigger-map/06-Feature-Impact.md) + +**Design Principles:** +1. **Build confidence, don't overwhelm** - Progressive disclosure +2. **Show tangible value fast** - "You'll create THIS" +3. **Make AI friendly** - Co-pilot language, not replacement +4. **Provide structure** - Clear path forward +5. **Prove credibility** - BMad foundation, real results + +**Success Metrics:** +- Engagement: 3+ min time on page, 40%+ scroll to capabilities, 20%+ click GitHub/course +- Conversion: 10%+ click CTA, 5%+ watch Module 01, 2%+ clone repository + +--- + +## Page Sections + +### Hero Object +**Purpose**: Capture attention and communicate core value in 5 seconds + +**Strategic Rationale:** See [Content Strategy - Hero Section](../../1-project-brief/02-content-strategy.md#hero-section) for messaging decisions and psychology. + +#### Main Headline +**OBJECT ID**: `wds-hero-headline` +- **Component**: H1 heading +- **Content:** + - **EN:** "Whiteport Design Studio, WDS" +- **Rationale**: Clear, branded, professional. Not trying to be clever. + +#### Battle Cry Tagline +**OBJECT ID**: `wds-hero-tagline` +- **Component**: H2 heading +- **Content:** + - **EN:** "Shoulder the complexity, break it down using AI as your co-pilot. Not as a burden, but with excitement. Not as a task, but as a calling!" +- **Rationale**: Acknowledges complexity (honest), positions AI as helper (co-pilot), emotional shift: burden β†’ calling + +#### Hero Body Copy +**OBJECT ID**: `wds-hero-body` +- **Component**: Body text paragraph +- **Content:** + - **EN:** "Free and open-source design methodology and AI agents for designers who mean business. Transform from overwhelmed task-doer into empowered strategic leader. Create specifications that become AI-ready super-prompts, preserving your design intent through to implementation. Built on 25 years of proven methodology. For designers everywhere." +- **Rationale**: Line 1 establishes category + audience, Line 2 shows transformation journey, Line 3 builds credibility (25 years) + accessibility + +#### Primary CTA Button +**OBJECT ID**: `wds-hero-cta` +- **Component**: Button +- **Content:** + - **EN:** "Get WDS Now - Free on GitHub" +- **Link**: `https://github.com/whiteport/wds` +- **Rationale**: Action-oriented ("Get" not "Learn More"), transparency ("Free on GitHub"), single CTA reduces decision paralysis + +#### Hero Illustration +**OBJECT ID**: `wds-hero-illustration` +- **Component**: Hero image +- **Content**: Designer working with specifications/tablet visual +- **Note**: Illustration shows designer as expert with specifications, matches existing Whiteport style + +--- + +### Benefits Section +**Purpose**: Quickly grasp the three key differentiators + +*[To be completed]* + +--- + +### WDS Capabilities Object (Right Column) +**Purpose**: Show designers what they can accomplish with WDS through actionable phases + +**Strategic Rationale:** See [Content Strategy - Capabilities Section](../../1-project-brief/02-content-strategy.md#capabilities-section-right-column) for messaging decisions and psychology. + +#### Section Headline +**OBJECT ID**: `wds-capabilities-headline` +- **Component**: H2 heading +- **Content:** + - **EN:** "What You Can Create with WDS" +- **Rationale**: Direct, action-oriented, focuses on designer capability + +#### Phase 1: Win Client Buy-In +**OBJECT ID**: `wds-capability-phase-1` +- **Component**: Capability card +- **Icon**: 🎯 (target/presentation) +- **Content:** + - **Title (EN):** "Win Client Buy-In" + - **Description (EN):** "Present your vision in business language that stakeholders understand. Get everyone aligned on goals, budget, and commitment before you start. Stop projects from dying in "maybe" meetings. Saga helps you articulate value and create professional agreements." + - **Output (EN):** "β†’ Pitch & Service Agreement" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/1-project-brief/alignment-signoff` + +#### Phase 2: Define Your Project +**OBJECT ID**: `wds-capability-phase-2` +- **Component**: Capability card +- **Icon**: πŸ“‹ (clipboard/document) +- **Content:** + - **Title (EN):** "Define Your Project" + - **Description (EN):** "Get crystal clear on what you're building, who it's for, and why it matters. Create a strategic foundation that guides every design decision. No more scope creep or confused teams. This brief becomes your north star when things get messy." + - **Output (EN):** "β†’ Product Brief" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/1-product-brief` + +#### Phase 3: Map Business Goals to User Needs +**OBJECT ID**: `wds-capability-phase-3` +- **Component**: Capability card +- **Icon**: πŸ—ΊοΈ (map/compass) +- **Content:** + - **Title (EN):** "Map Business Goals to User Needs" + - **Description (EN):** "Connect what the business wants to what users actually need. Identify the emotional triggers and pain points that make your design work. Stop guessing and start designing with psychological insight. Cascade helps you create personas grounded in real driving forces." + - **Output (EN):** "β†’ Trigger Map & Personas" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/2-trigger-mapping` + +#### Phase 4: Architect the Platform +**OBJECT ID**: `wds-capability-phase-4` +- **Component**: Capability card +- **Icon**: πŸ—οΈ (building/architecture) +- **Content:** + - **Title (EN):** "Architect the Platform" + - **Description (EN):** "Define the technical foundation, data structure, and system architecture. Make smart decisions about what to build and how it fits together. Bridge the gap between design vision and technical reality. Idunn helps you think through the platform without getting lost in code." + - **Output (EN):** "β†’ Platform PRD & Architecture" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/3-prd-platform` + +#### Phase 5: Design the Experience +**OBJECT ID**: `wds-capability-phase-5` +- **Component**: Capability card +- **Icon**: 🎨 (palette/design) +- **Content:** + - **Title (EN):** "Design the Experience" + - **Description (EN):** "Turn sketches into complete specifications with interactive prototypes. Capture not just WHAT it looks like, but WHY you designed it that way. Preserve your design intent from concept to code. Freyja helps you create specifications that developers actually understand and respect." + - **Output (EN):** "β†’ Page Specs & Prototypes" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/4-ux-design` + +#### Phase 6: Build Your Design System +**OBJECT ID**: `wds-capability-phase-6` +- **Component**: Capability card +- **Icon**: 🧩 (puzzle pieces/system) +- **Content:** + - **Title (EN):** "Build Your Design System" + - **Description (EN):** "Extract reusable components, patterns, and design tokens from your pages. Create consistency across your entire product without starting from scratch every time. Scale your design decisions efficiently. Stop reinventing buttons and start building systems." + - **Output (EN):** "β†’ Component Library & Tokens" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/5-design-system` + +#### Phase 7: Hand Off to Developers +**OBJECT ID**: `wds-capability-phase-7` +- **Component**: Capability card +- **Icon**: πŸ“¦ (package/delivery) +- **Content:** + - **Title (EN):** "Hand Off to Developers" + - **Description (EN):** "Package everything developers need in organized PRD documents with epics and stories. No more "what did you mean by this?" meetings. No more guesswork or lost design intent. Idunn creates implementation guides that turn your specs into buildable tasks." + - **Output (EN):** "β†’ PRD, Epics & Stories" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/6-design-deliveries` + +#### Phase 8: Validate the Build +**OBJECT ID**: `wds-capability-phase-8` +- **Component**: Capability card +- **Icon**: βœ… (checkmark/validation) +- **Content:** + - **Title (EN):** "Validate the Build" + - **Description (EN):** "Ensure what's built matches what you designed. Catch misinterpretations before they reach users. Create test plans that validate both function and design intent. Freyja helps you compare implementations to specifications systematically." + - **Output (EN):** "β†’ Test Plans & Reports" +- **Link**: `https://github.com/whiteport/wds/tree/main/src/modules/wds/workflows/7-testing` + +--- + +### Testimonials Section +**Purpose**: Build trust through social proof + +*[To be completed]* + +--- + +### CTA Section +**Purpose**: Remove barriers to action + +*[To be completed]* + +--- + +### Footer Section +**Purpose**: Additional information and contact + +*[To be completed]* + +--- + +## Object Registry + +| Object ID | Component Type | Parent Section | Status | +|-----------|---------------|----------------|---------| +| `wds-hero-headline` | H1 Heading | Hero Object | βœ… Specified | +| `wds-hero-tagline` | H2 Heading | Hero Object | βœ… Specified | +| `wds-hero-body` | Body Paragraph | Hero Object | βœ… Specified | +| `wds-hero-cta` | Button Primary Large | Hero Object | βœ… Specified | +| `wds-hero-illustration` | Hero Image | Hero Object | βœ… Specified | +| `wds-capabilities-headline` | H2 Heading | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-1` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-2` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-3` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-4` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-5` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-6` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-7` | Capability Card | WDS Capabilities Object | βœ… Specified | +| `wds-capability-phase-8` | Capability Card | WDS Capabilities Object | βœ… Specified | + +--- + +**Status:** In Progress (Hero & Capabilities Sections Restructured to WDS Standards) +**Designer:** Freyja WDS Designer Agent +**Created:** December 27, 2025 +**Last Updated:** December 28, 2025 +**Page Name:** 1.1 WDS Presentation diff --git a/src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/sketches/1-1-wds-presentation-desktop-concept.jpg b/src/modules/wds/examples/WDS-Presentation/docs/4-scenarios/1.1-wds-presentation/sketches/1-1-wds-presentation-desktop-concept.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23088f5c8f71b51e4fea22af48f090692ea8380e GIT binary patch literal 529358 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 z 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
    >W2LBX4CWf2Ja2$vxql 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

    +Un&uE)qRu0XBR;wn_N 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


    %|Qk740A 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ν;EPo8D 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 F{2!v%%H99~ literal 0 HcmV?d00001 diff --git a/src/modules/wds/examples/WDS-Presentation/wds-workflow-status.yaml b/src/modules/wds/examples/WDS-Presentation/wds-workflow-status.yaml new file mode 100644 index 00000000..76e8678a --- /dev/null +++ b/src/modules/wds/examples/WDS-Presentation/wds-workflow-status.yaml @@ -0,0 +1,111 @@ +# WDS Workflow Status +# Tracks progress through WDS design methodology + +# Project information +generated: "2025-12-28" +project: "WDS Presentation Page" +project_type: "simple_website" +workflow_path: "full-product" + +# Project structure (defines folder organization) +project_structure: + type: "simple_website" # Single-page marketing site with multiple sections + scenarios: "single" # Single user journey (landing page flow) + pages: "single" # One primary page with multiple sections (potential variants later) + notes: "Single scenario with potential for page variants or additional pages in future" + +# Delivery configuration (what gets handed off) +delivery: + format: "wordpress" # WordPress page editor markup + target_platform: "wordpress" # WordPress CMS on Whiteport.com + requires_prd: false # Direct implementation from specs + description: "Ready-to-paste WordPress page editor code with properly formatted blocks, content sections, and embedded media" + +# Configuration +config: + folder_prefix: "numbers" # Using numbered folders (1-, 2-, 3-, 4-) + folder_case: "lowercase" # Folder names use lowercase-with-hyphens + brief_level: "complete" # Complete product brief with full strategic context + include_design_system: false # No separate design system needed for single page + component_library: "none" # Using standard WordPress blocks + specification_language: "EN" # Specs written in English + product_languages: ["EN"] # Product supports English + +# Folder mapping +folders: + product_brief: "1-project-brief/" + trigger_map: "2-trigger-map/" + platform_requirements: "3-prd-platform/" # Skipped (not needed for WordPress) + scenarios: "4-scenarios/" + design_system: "5-design-system/" # Skipped + prd_finalization: "6-design-deliveries/" # Skipped + +# Workflow status tracking +workflow_status: + phase_1_project_brief: + status: "complete" + agent: "saga-analyst" + folder: "1-project-brief/" + brief_level: "complete" + artifacts: + - "01-product-brief.md" + - "02-content-strategy.md" + completed_date: "2025-12-24" + + phase_2_trigger_mapping: + status: "complete" + agent: "cascade-analyst" + folder: "2-trigger-map/" + artifacts: + - "00-trigger-map.md" + - "01-Business-Goals.md" + - "02-Stina-the-Strategist.md" + - "03-Lars-the-Leader.md" + - "04-Felix-the-Full-Stack.md" + - "05-Key-Insights.md" + - "06-Feature-Impact.md" + completed_date: "2025-12-27" + + phase_3_prd_platform: + status: "skipped" + reason: "WordPress delivery - no platform PRD needed" + + phase_4_ux_design: + status: "in-progress" + agent: "freyja-wds-designer" + folder: "4-scenarios/" + current_page: "1.1-start-page" + artifacts: + - "1.1-start-page/1.1-start-page.md" + - "1.1-start-page/sketches/1-1-start-page-desktop-concept.jpg" + notes: "Hero section complete, WDS Capabilities section specified, other sections TBD" + + phase_5_design_system: + status: "skipped" + reason: "Single page project - no design system needed" + + phase_6_design_deliveries: + status: "pending" + reason: "Awaiting UX design completion" + +# Current scenario tracking +current_scenario: + number: "1" + name: "Landing Page Journey" + status: "in-progress" + pages: + - number: "1.1" + name: "Start Page" + status: "in-progress" + device: "desktop" + completion: "60%" + sections_complete: + - "Hero Section" + - "WDS Capabilities (Right Column)" + sections_pending: + - "Benefits Section" + - "Main Content Section" + - "Testimonials Section" + - "CTA Section" + - "Footer Section" + diff --git a/src/modules/wds/workflows/00-system/wds-workflow-status-template.yaml b/src/modules/wds/workflows/00-system/wds-workflow-status-template.yaml index 4331c659..cae70e94 100644 --- a/src/modules/wds/workflows/00-system/wds-workflow-status-template.yaml +++ b/src/modules/wds/workflows/00-system/wds-workflow-status-template.yaml @@ -20,6 +20,24 @@ project: "{{project_name}}" project_type: "{{project_type}}" workflow_path: "{{workflow_path_file}}" +# Project structure (defines folder organization) +project_structure: + type: "{{structure_type}}" # landing_page | simple_website | web_application + scenarios: "{{structure_scenarios}}" # single | multiple + pages: "{{structure_pages}}" # single | multiple + # This determines how scenarios and pages are organized in 4-scenarios/ + +# Delivery configuration (what gets handed off) +delivery: + format: "{{delivery_format}}" # prd | wordpress | figma | prototype | direct-code | other + target_platform: "{{target_platform}}" # wordpress | react | vue | html | custom + requires_prd: {{requires_prd}} # true | false + description: "{{delivery_description}}" + # Examples: + # - "WordPress page editor code with markup and content sections" + # - "Complete PRD for development team" + # - "Interactive Figma prototype" + # Configuration config: folder_prefix: "{{folder_prefix}}" # letters or numbers diff --git a/src/modules/wds/workflows/4-ux-design/SKETCH-FIRST-IMPLEMENTATION-PLAN.md b/src/modules/wds/workflows/4-ux-design/SKETCH-FIRST-IMPLEMENTATION-PLAN.md new file mode 100644 index 00000000..a22bc1e5 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/SKETCH-FIRST-IMPLEMENTATION-PLAN.md @@ -0,0 +1,617 @@ +# Sketch-First Workflow - Implementation Plan + +**Feature**: Intelligent sketch-driven project initialization +**Agents**: Mimer (Detection), Freyja (UX), Saga (Brief), Cascade (Trigger Map) +**When**: User uploads sketch(es) to repository +**Purpose**: Enable designers to start with sketches, build foundation retroactively +**Vision**: From "15 wireframes in a folder" β†’ "Complete WDS project with specs & prototypes" + +--- + +## Overview + +This plan establishes a **sketch-first initialization flow** where users can: +1. Upload one or multiple sketches +2. Get intelligent analysis and grouping +3. Choose to build full WDS foundation or quick specs +4. End with complete documentation, navigation, and prototypes + +**Key Innovation**: Start with what's fun (sketching) β†’ Agent guides to proper process + +--- + +## Phase 1: Manual Trigger (Now - v1.0) + +### **Core Principle: Human-in-Loop** + +All processing requires manual trigger and human confirmation at every decision point. + +### **Detection (Passive Monitoring)** + +**What Agent Monitors:** +``` +Watch folders: +β”œβ”€β”€ /sketches/ +β”œβ”€β”€ /docs/*/sketches/ +β”œβ”€β”€ /4-scenarios/*/sketches/ +└── Any configured sketch directories + +Detects: +β”œβ”€β”€ New files added +β”œβ”€β”€ Files modified (date/size changed) +β”œβ”€β”€ Files renamed +└── Files moved +``` + +**Agent Behavior:** +``` +User: [drops 5 sketches in /sketches/] + +Mimer: "πŸ‘‹ Hey! I noticed some changes: + + **New Sketches** (5): + ✨ landing-page.jpg + ✨ signin.jpg + ✨ dashboard.jpg + ✨ profile.jpg + ✨ settings.jpg + + Would you like me to analyze them? + + [Yes, analyze now] [Remind me later]" +``` + +**User must trigger** - No automatic processing + +--- + +### **Single Sketch Analysis** + +**Workflow: workshop-a-sketch-to-page.md** + +``` +User: [uploads landing-page.jpg] + +Mimer: "I see a sketch! Activating Freyja..." + +Freyja: "Hi! Let me analyze this sketch... + + πŸ” Analysis: + - Landing page concept + - Hero, features, testimonials, CTA + - Looks like SaaS product + + πŸ“‹ Is this part of a larger project? + [A] Yes, let's set up full WDS project + [B] No, just specify this page + [C] Let me think about it" + +User: "A" + +Freyja: "Perfect! Since this is a new project, let's + build the foundation first. + + I'll hand you to Saga for Product Brief, + then we'll come back to spec this sketch + with full context. + + 🎯 Activating Saga..." + + β†’ Product Brief workflow + β†’ Trigger Mapping workflow (if needed) + β†’ Return to Freyja for page specification +``` + +**Human confirms:** +- βœ… Sketch interpretation (sections, objects) +- βœ… Project scope (full WDS vs. quick spec) +- βœ… Page naming and purpose +- βœ… Content and translations +- βœ… Final specification + +--- + +### **Batch Sketch Analysis** + +**Workflow: workshop-b-batch-sketch-analysis.md** + +``` +User: [uploads 15 wireframes] + +Mimer: "Whoa! I see 15 sketches! 🎨 + Let me analyze them all... + + [Analyzing patterns and relationships...] + + πŸ“Š **What I Found:** + + **Scenario 1: User Onboarding** (6 pages) + 1. landing-page.jpg β†’ Start/Hero + 2. signin.jpg β†’ Authentication + 3. profile-setup.jpg β†’ Profile creation + 4. family-setup.jpg β†’ Family info + 5. dog-profile.jpg β†’ Add dog + 6. dashboard.jpg β†’ Success/overview + + **Scenario 2: Daily Features** (7 pages) + 7. calendar-view.jpg β†’ Schedule + ... + + **Standalone** (2 pages) + 14. about.jpg + 15. contact.jpg + + πŸ€” **Questions:** + 1. Did I group these correctly? + 2. Ready to build full WDS project? + 3. Want to adjust grouping first?" + +User: "Grouping looks good. Let's build the project!" + +Mimer: "Perfect! Here's the plan: + + **Phase 1: Foundation** (10 min) + β†’ Saga: Product Brief (using sketch 1 as context) + β†’ Cascade: Trigger Map (validating against sketches) + + **Phase 2: Structure** (5 min) + β†’ Create scenario folders + β†’ Map sketches to pages + β†’ Establish navigation flow + + **Phase 3: Specification** (iterative) + β†’ Freyja analyzes each sketch + β†’ You review and refine + + **Phase 4: Prototypes** (automatic) + β†’ Generate interactive HTML prototypes + β†’ Link all pages together + β†’ Create clickable flows + + **Result:** + βœ… Complete WDS project + βœ… All 15 pages documented + βœ… All 15 pages prototyped + βœ… Navigation mapped + βœ… Interactive demo + βœ… Ready for development & testing + + Let's start! [Begin] [Adjust plan]" + +User: "Begin" + +β†’ Full workflow execution with human confirmation at key points +``` + +**Human confirms:** +- βœ… Scenario grouping (can adjust) +- βœ… Page naming and sequence +- βœ… Each sketch interpretation +- βœ… Phase completion before proceeding + +--- + +### **Iterative Page Updates** + +**Workflow: workshop-c-page-update.md** + +``` +User: [uploads landing-page-v2.jpg] + +Freyja: "I see we already have specs for Landing Page. + Let me compare this to version 1... + + πŸ” **Changes detected:** + βœ… Hero section - unchanged + βœ… Feature Cards - unchanged + βž• Feature Card 3 - NOW COMPLETE (was TBD) + ✏️ Header - NEW: Search bar with filters + βž• Footer - NOW COMPLETE (was blank) + + Should I: + [A] Update all changed sections + [B] Pick specific sections to update + [C] Show me detailed comparison first" + +User: "A" + +Freyja: "Great! I'll update: + 1. Add search bar specs to Header + 2. Complete Feature Card 3 + 3. Generate Footer specifications + + Preserving existing: + βœ… Hero (no changes) + βœ… Feature Cards 1-2 (no changes) + + Ready to proceed? [Yes/Adjust]" + +User: "Yes" + +β†’ Updates only changed sections, preserves rest +``` + +**Human confirms:** +- βœ… Change detection accuracy +- βœ… Which sections to update +- βœ… New specifications +- βœ… Preserved sections remain unchanged + +--- + +### **Configuration (v1.0)** + +```yaml +# wds-workflow-status.yaml + +sketch_monitoring: + enabled: true + watch_folders: + - "sketches/" + - "4-scenarios/**/sketches/" + detection_mode: "passive" # Detects but doesn't process + notification_mode: "proactive" # Alerts user immediately + auto_process: false # Requires manual trigger + human_confirmation: "all" # Every decision needs confirmation + batch_threshold: 5 # Group if 5+ sketches detected +``` + +--- + +## Phase 2: Semi-Auto (Future - v1.5-2.0) + +### **Enhanced Detection** + +**Smart Categorization:** +``` +Agent behavior: +β”œβ”€β”€ πŸ‘€ Monitor: Continuous detection +β”œβ”€β”€ 🧠 Analyze: Auto-categorize when idle +β”œβ”€β”€ πŸ“‹ Queue: Store results for review +β”œβ”€β”€ πŸ”” Notify: "Ready for your review" +└── 🀝 Review: Human approves/adjusts + +New sketch detected: payment-flow.jpg +β”œβ”€ Check: Matching page spec exists? +β”‚ β”œβ”€ YES β†’ "Updated sketch for existing page" +β”‚ └─ NO β†’ "New sketch, needs page creation" +β”‚ +β”œβ”€ Check: Name suggests scenario? +β”‚ β”œβ”€ "payment-flow" β†’ Could be new scenario +β”‚ └─ "landing-v2" β†’ Update to existing +β”‚ +β”œβ”€ Check: Where was it added? +β”‚ β”œβ”€ /4-scenarios/2-checkout/ β†’ Part of existing scenario +β”‚ └─ /sketches/ β†’ Needs placement +β”‚ +└─ Confidence Level: + β”œβ”€ High β†’ Can suggest auto-processing + └─ Low β†’ Requires manual review +``` + +**Smart Batching:** +``` +Agent groups by: +β”œβ”€β”€ Related scenarios +β”œβ”€β”€ Update vs. new +β”œβ”€β”€ Priority (core pages first) +└── Dependencies (flows must be sequential) + +Example: +Batch 1: "Core Flow Updates" (3 sketches - HIGH priority) + β†’ Existing pages, quick updates + β†’ Estimated: 10 minutes + β†’ [Auto-process] [Review first] [Skip] + +Batch 2: "New Booking Feature" (8 sketches - MEDIUM priority) + β†’ New scenario, full specification + β†’ Estimated: 30 minutes + β†’ [Auto-process] [Review first] [Later] +``` + +**Auto-Analysis During Idle:** +``` +Agent: "While you were away, I analyzed 5 sketches. + Here's what I found. Please review: + + Sketch 1: landing-page.jpg + β”œβ”€β”€ Sections: Hero, Features, CTA + β”œβ”€β”€ Status: Ready for spec + β”œβ”€β”€ Confidence: High βœ… + └── [Approve] [Adjust] [Reject] + + Sketch 2: dashboard.jpg + β”œβ”€β”€ Sections: Complex layout detected + β”œβ”€β”€ Status: Needs clarification + β”œβ”€β”€ Confidence: Medium ⚠️ + └── [Manual Review Required] + + [Approve All High-Confidence] [Review Each]" +``` + +**Why Later:** +- ⚠️ Requires mature AI with proven accuracy +- ⚠️ Risk of incorrect auto-interpretation +- βœ… Saves time on obvious cases +- βœ… Human still reviews all decisions + +--- + +### **Configuration (v1.5-2.0)** + +```yaml +sketch_monitoring: + enabled: true + detection_mode: "active" # Processes when idle + notification_mode: "batch_summary" # Summarizes results + auto_analysis: true # Analyzes during idle time + auto_process: false # Still requires approval + human_confirmation: "changes" # Only for modifications + confidence_threshold: 0.85 # High confidence threshold +``` + +--- + +## Phase 3: Full Auto (Far Future - v3.0+) + +### **Autonomous Processing** + +**Only when:** +- ⚠️ Extremely high AI accuracy (>95%) +- ⚠️ User explicitly opts in +- ⚠️ Well-established patterns in project +- βœ… Full audit trail available +- βœ… Easy rollback mechanism + +``` +Agent behavior: +β”œβ”€β”€ πŸ‘€ Monitor: Continuous +β”œβ”€β”€ πŸ€– Process: Fully automatic +β”œβ”€β”€ βœ… Execute: Generate specs & prototypes +β”œβ”€β”€ πŸ“§ Notify: "5 pages completed" +└── πŸ”„ Review: "Review when ready" + +Example: +Agent: "I processed 5 sketches automatically: + + βœ… 5 specifications generated + βœ… 5 prototypes created + βœ… Navigation updated + βœ… Tests passed + + πŸ“‹ Review PR #47 when ready. + + All changes are in a branch for your review." +``` + +**Why Far Future:** +- ⚠️ Requires extremely high accuracy +- ⚠️ Less learning for user +- ⚠️ Could miss important context +- ⚠️ Only for mature, well-established projects + +--- + +## Workflows to Create + +### **Immediate (v1.0)** + +1. **workshop-a-sketch-to-page.md** + - Single sketch β†’ page specification + - Context detection (new vs. existing project) + - Routes to Product Brief if needed + - Full human-in-loop + +2. **workshop-b-batch-sketch-analysis.md** + - Multiple sketches β†’ scenario grouping + - Pattern recognition & relationship detection + - Smart grouping with user confirmation + - Complete project initialization + +3. **workshop-c-page-update.md** + - Updated sketch β†’ incremental update + - Change detection & comparison + - Selective section updates + - Preserve unchanged specifications + +4. **page-init-lightweight.md** + - Quick page setup: name, purpose, navigation + - Create folder structure + - Generate placeholder with navigation + - Ready for sketch analysis + +### **Future (v1.5+)** + +5. **smart-batch-processor.md** + - Auto-categorization during idle + - Confidence-based suggestions + - Queue for review + +6. **change-detection-engine.md** + - Advanced visual comparison + - Semantic diff understanding + - Smart merge strategies + +--- + +## Success Metrics + +### **v1.0 (Manual Trigger)** +- βœ… Detection accuracy: 100% (all sketches found) +- βœ… User triggers: 100% required +- βœ… Confirmation points: All decisions +- βœ… Time saved: 50% vs. manual documentation + +### **v1.5 (Semi-Auto)** +- βœ… Analysis accuracy: 85%+ +- βœ… Auto-categorization: 80%+ +- βœ… Human review: All results +- βœ… Time saved: 70% vs. manual + +### **v2.0+ (Full Auto)** +- βœ… Processing accuracy: 95%+ +- βœ… Auto-approval: High confidence only +- βœ… Human review: Available +- βœ… Time saved: 90% vs. manual + +--- + +## Benefits + +### **For Designers** +- βœ… Start with fun part (sketching) +- βœ… Agent builds foundation retroactively +- βœ… Complete documentation from wireframes +- βœ… Interactive prototypes automatically + +### **For Teams** +- βœ… Consistent documentation +- βœ… Navigable specifications +- βœ… Development-ready handoffs +- βœ… Testable prototypes + +### **For Process** +- βœ… Lower barrier to entry +- βœ… Encourages proper documentation +- βœ… Validates designs against strategy +- βœ… Creates institutional knowledge + +--- + +## Implementation Priority + +### **Now (Week 1-2)** +1. Passive sketch detection (Mimer) +2. Single sketch analysis workflow (Freyja) +3. Page init lightweight (navigation setup) +4. Basic change detection + +### **Soon (Week 3-4)** +5. Batch sketch analysis +6. Smart scenario grouping +7. Complete project initialization +8. Prototype generation integration + +### **Later (Month 2-3)** +9. Auto-analysis during idle +10. Confidence-based suggestions +11. Smart batching +12. Advanced change detection + +--- + +## Technical Requirements + +### **Detection System** +- File system watcher +- Pattern matching (new/modified/moved) +- Folder configuration (watch list) +- Event throttling (batch rapid changes) + +### **Analysis Engine** +- Image analysis (if AI vision available) +- Pattern recognition (grouping similar pages) +- Relationship detection (flow connections) +- Confidence scoring + +### **Human-in-Loop Interface** +- Clear confirmation points +- Visual diffs (old vs. new) +- Batch approval options +- Undo/rollback capability + +### **Integration Points** +- Existing sketch analysis workflow (4b-sketch-analysis.md) +- Product Brief workflow (Saga) +- Trigger Map workflow (Cascade) +- Prototype generation + +--- + +## Configuration Example + +```yaml +# wds-workflow-status.yaml + +# Phase 1: Manual Trigger (v1.0) +sketch_workflow: + version: "1.0" + mode: "manual-trigger" + + monitoring: + enabled: true + watch_folders: + - "sketches/" + - "4-scenarios/**/sketches/" + detect_changes: true + notify_user: true + + processing: + auto_analyze: false # Requires manual trigger + auto_process: false # Requires approval + human_confirmation: "all" # Every decision point + + batching: + enabled: true + threshold: 5 # Group if 5+ sketches + suggest_grouping: true # Show suggested groups + require_approval: true # User must approve + + workflows: + single_sketch: "workshop-a-sketch-to-page.md" + batch_sketches: "workshop-b-batch-sketch-analysis.md" + page_update: "workshop-c-page-update.md" + page_init: "page-init-lightweight.md" +``` + +--- + +## Guardrails + +### **Always Required** +- βœ… User triggers all processing +- βœ… Human confirms all interpretations +- βœ… Clear undo/rollback mechanism +- βœ… Audit trail of all changes +- βœ… Preserve user's work + +### **Never Allowed** +- ❌ Auto-process without trigger +- ❌ Auto-approve without review +- ❌ Overwrite without confirmation +- ❌ Delete user's specifications +- ❌ Skip confirmation points + +--- + +**Created**: December 28, 2025 +**Feature Owner**: Freyja (UX), Mimer (Detection) +**Status**: Planning Complete β†’ Ready for Implementation +**Next Step**: Create v1.0 workflows (manual trigger, human-in-loop) + +--- + +## Summary: From Sketches to Specs + +``` +Before: +β”œβ”€β”€ 15 random wireframes in a folder +β”œβ”€β”€ No documentation +β”œβ”€β”€ No structure +└── "Now what?" + +After (v1.0): +β”œβ”€β”€ Complete WDS project +β”œβ”€β”€ All pages documented with specs +β”œβ”€β”€ Proper navigation between pages +β”œβ”€β”€ Interactive prototypes +β”œβ”€β”€ Strategic foundation (Brief + Trigger Map) +└── Ready for development & testing + +Time: 1-2 hours vs. 2-3 days manual +Quality: Consistent, complete, navigable +Experience: Start with fun, end with foundation +``` + +**The Magic**: Agent detects β†’ User triggers β†’ Human confirms β†’ Complete project! πŸŽ¨β†’πŸ“‹β†’πŸ’» + diff --git a/src/modules/wds/workflows/4-ux-design/modular-architecture/01-core-concepts/content-placement-rules.md b/src/modules/wds/workflows/4-ux-design/modular-architecture/01-core-concepts/content-placement-rules.md index 12abb7ad..d92da588 100644 --- a/src/modules/wds/workflows/4-ux-design/modular-architecture/01-core-concepts/content-placement-rules.md +++ b/src/modules/wds/workflows/4-ux-design/modular-architecture/01-core-concepts/content-placement-rules.md @@ -39,12 +39,12 @@ Does CONTENT vary by page context? ❌ Wrong: Features/hero-logic.feature.md **Content:** -- Heading: "Welcome to Dog Week" (Home page) -- Heading: "About Dog Week" (About page) +- Heading: "Welcome to TaskFlow" (Home page) +- Heading: "About TaskFlow" (About page) βœ… Right: Put in respective Page files -Pages/01-home-page.md β†’ "Welcome to Dog Week" -Pages/02-about-page.md β†’ "About Dog Week" +Pages/01-home-page.md β†’ "Welcome to TaskFlow" +Pages/02-about-page.md β†’ "About TaskFlow" ``` --- diff --git a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-what-are-storyboards.md b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-what-are-storyboards.md index 38701f78..92048070 100644 --- a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-what-are-storyboards.md +++ b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-what-are-storyboards.md @@ -23,7 +23,7 @@ A **storyboard** is a visual sequence showing: - Easy to iterate - Focus on functionality, not polish -**Example:** Dog Week `App-Main-Booking-States.jpg` +**Example:** TaskFlow `task-status-states.jpg` - 6 frames showing walk states - Numbered sequentially diff --git a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-when-to-use.md b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-when-to-use.md index 3ad10f4c..9b4d9029 100644 --- a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-when-to-use.md +++ b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/01-when-to-use.md @@ -8,23 +8,23 @@ βœ… **Components with 3+ states** -- Example (Dog Week): Walk slots (WHITE, GRAY, ORANGE, BLUE, GREEN, RED) +- Example (TaskFlow): Task status (TODO, IN_PROGRESS, BLOCKED, DONE, ARCHIVED) βœ… **Time-based transitions** -- Example (Dog Week): Countdown timers, auto-state changes +- Example (TaskFlow): Deadline reminders, auto-status updates βœ… **Multi-step user flows** -- Example (Dog Week): Booking β†’ Starting β†’ Completing a walk +- Example (TaskFlow): Creating β†’ Assigning β†’ Completing a task βœ… **Complex interactions between components** -- Example (Dog Week): Calendar updates leaderboard and week view +- Example (TaskFlow): Task completion updates dashboard and team notifications βœ… **State machines with branching paths** -- Example (Dog Week): Success path vs error path vs timeout path +- Example (TaskFlow): Happy path vs validation error vs timeout --- @@ -48,7 +48,7 @@ ### Need Storyboard: -- **Dog Week:** Calendar booking (6 states, time-based) +- **TaskFlow:** Task status board (5 states, time-based reminders) - **Future Project:** Search with autocomplete (5 states, real-time) - **Future Project:** Multi-step form (progress tracking) - **Future Project:** Payment flow (multiple steps, error handling) diff --git a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/page-specification-workflow.md b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/page-specification-workflow.md index 624157f5..ac466d60 100644 --- a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/page-specification-workflow.md +++ b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/page-specification-workflow.md @@ -147,7 +147,7 @@ C) Skip for now, mark as TODO --- -## Example: Dog Week Calendar Page +## Example: TaskFlow Calendar Page ### Full Workflow diff --git a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/storyboards-guide.md b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/storyboards-guide.md index 55311f64..5a53bc6e 100644 --- a/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/storyboards-guide.md +++ b/src/modules/wds/workflows/4-ux-design/modular-architecture/02-workflows/storyboards-guide.md @@ -58,7 +58,7 @@ Visual state references ## Examples -### [Dog Week Calendar States](examples/calendar-states.md) +### [TaskFlow Task States](examples/task-states.md) 6-state walk booking storyboard diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/README.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/README.md new file mode 100644 index 00000000..84ea6253 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/README.md @@ -0,0 +1,318 @@ +# Page Specification Quality Workflow + +**Purpose:** Ensure every WDS page specification meets quality standards with complete structure, Object IDs, and traceability. + +--- + +## When to Use This Workflow + +### During Page Creation ✨ +Use this workflow step-by-step to build specifications correctly from the start: +- Creating a new page specification from a sketch +- Converting rough notes into proper spec format +- Building specs incrementally as design evolves + +### After Page Updates πŸ”„ +Use this workflow to validate changes maintain standards: +- Updated sketch with new elements +- Content revisions +- Added sections or components +- Design iteration + +### Quality Audits πŸ” +Use this workflow to check existing specifications: +- Pre-handoff quality check +- Sprint review preparation +- Onboarding new team members +- Fixing legacy specs + +--- + +## Workflow Overview + +This workflow consists of 5 sequential steps: + +``` +Step 1: Navigation Structure + ↓ +Step 2: Page Overview + ↓ +Step 3: Page Sections & Objects + ↓ +Step 4: Object Registry + ↓ +Step 5: Final Validation +``` + +Each step focuses on one structural element to ensure nothing is missed. + +--- + +## Quick Start + +### For Freyja (AI Agent) + +Load and execute: instructions.md + +This will start the sequential workflow, automatically progressing through each step. + +### For Human Designers + +1. **Open your page specification** +2. **Start at Step 1** (Navigation Structure) +3. **Work through each step sequentially** +4. **Use the checklists** to validate each section +5. **Generate quality report** at Step 5 + +--- + +## What This Workflow Checks + +### βœ… Navigation Structure (Step 1) +- H3 and H1 headers with page numbers +- "Next Step" links before and after sketch +- Embedded sketch image +- Correct relative paths + +### βœ… Page Overview (Step 2) +- Page description (1-2 paragraphs) +- User Situation section +- Page Purpose section +- Emotional context and pain points + +### βœ… Page Sections (Step 3) +- "## Page Sections" header +- Section Objects (H3) with Purpose +- Component specs (H4) with Object IDs +- Design system links +- Content specifications +- Behavior specifications + +### βœ… Object Registry (Step 4) +- "## Object Registry" header +- Introduction paragraph +- Master Object List tables +- 100% coverage of all Object IDs +- Proper table formatting + +### βœ… Final Validation (Step 5) +- Cross-reference all sections +- Verify sketch coverage +- Check for broken links +- Validate naming conventions +- Generate quality report + +--- + +## Example: Standard WDS Pattern + +This workflow ensures all WDS page specifications follow a consistent, high-quality pattern. + +**Key Pattern Elements:** +- Clear navigation with scenario context +- Embedded sketch images +- Section Objects with Purpose statements +- Component specs with Object IDs +- Complete Object Registry table +- Design system component links + +--- + +## Output: Quality Report + +At the end of Step 5, you'll have: + +**Comprehensive Quality Report** including: +- Pass/Fail status for each section +- List of critical issues (must fix) +- List of warnings (should fix) +- List of recommendations (nice to have) +- Object ID audit (duplicates, missing, orphans) +- Sketch coverage analysis (missing elements) +- Broken links report +- Next actions for handoff + +**Report Status Levels:** +- βœ… **READY FOR HANDOFF** - Zero critical issues, ready for dev +- ⚠️ **NEEDS REVISION** - 1-3 critical issues, fixable quickly +- ❌ **INCOMPLETE** - 4+ critical issues, needs substantial work + +--- + +## Common Use Cases + +### Use Case 1: New Page from Sketch + +**Scenario:** Designer uploads a new sketch and needs to create specification. + +**Process:** +1. Run Step 1: Generate navigation structure +2. Run Step 2: Define page overview based on trigger map +3. Run Step 3: Analyze sketch, create sections and Object IDs +4. Run Step 4: Auto-generate Object Registry from sections +5. Run Step 5: Validate and generate report + +**Outcome:** Complete, validated specification ready for handoff. + +--- + +### Use Case 2: Updated Sketch + +**Scenario:** Designer updates existing sketch with new elements. + +**Process:** +1. Skip to Step 3: Check existing sections +2. Add new sections/objects from updated sketch +3. Run Step 4: Update Object Registry with new IDs +4. Run Step 5: Validate changes and generate report + +**Outcome:** Updated specification with change tracking. + +--- + +### Use Case 3: Quality Audit Before Handoff + +**Scenario:** Team lead wants to verify spec quality before developer handoff. + +**Process:** +1. Run entire workflow in "validation mode" +2. Step 1-4: Check each section against checklists +3. Step 5: Generate comprehensive quality report +4. Share report with team, fix critical issues +5. Re-run Step 5 after fixes + +**Outcome:** Confidence in specification completeness. + +--- + +### Use Case 4: Fixing Legacy Spec + +**Scenario:** Old specification doesn't follow WDS standards. + +**Process:** +1. Run Step 1-4 in "validation mode" to identify gaps +2. Fix missing navigation structure +3. Add missing Object IDs to all interactive elements +4. Create Object Registry if missing +5. Run Step 5 to verify all issues resolved + +**Outcome:** Legacy spec brought up to current standards. + +--- + +## Benefits + +### For Designers 🎨 +- Clear checklist to follow +- Confidence nothing is missed +- Professional, consistent output +- Easy communication with developers + +### For Developers πŸ’» +- Complete, trustworthy specifications +- All interactive elements have Object IDs +- Clear implementation order (top to bottom) +- Easy to test (Object IDs as test targets) + +### For Teams πŸ‘₯ +- Shared quality standards +- Consistent specification format +- Easy onboarding for new members +- Reduced back-and-forth during handoff + +### For Project Management πŸ“Š +- Clear completion criteria +- Quality metrics tracking +- Reduced rework +- Faster handoffs + +--- + +## Integration with WDS Workflows + +This quality workflow integrates with: + +**Before:** +- [Page Init Workflow](../steps/step-02-substeps/page-init/) - Creates initial page structure +- [Sketch Analysis](../substeps/4b-sketch-analysis.md) - Identifies page elements + +**After:** +- [Interactive Prototypes](../interactive-prototypes/) - Builds HTML demos from specs +- [Design Deliveries](../../../6-design-deliveries/) - Packages specs for handoff +- [PRD Generation](../../../3-prd-platform/) - Creates developer stories from specs + +--- + +## Tips for Success + +### Do: +- βœ… Run the workflow every time you create or update a page +- βœ… Use checklists systematically (don't skip items) +- βœ… Fix critical issues before proceeding to next step +- βœ… Save quality reports for project history +- βœ… Track metrics over time to improve process + +### Don't: +- ❌ Skip steps (each builds on the previous) +- ❌ Ignore warnings (they become critical issues later) +- ❌ Rush through validation (thoroughness matters) +- ❌ Mix validation with creation (separate concerns) +- ❌ Forget to re-validate after fixes + +--- + +## Customization + +### For Your Project + +You can customize this workflow by: + +**Adjusting Standards:** +- Modify Object ID naming conventions +- Add project-specific sections +- Extend validation checklists +- Add custom quality metrics + +**Adding Steps:** +- Step 3.5: Accessibility audit +- Step 4.5: Content strategy review +- Step 5.5: Stakeholder approval + +**Location:** +Customizations should be documented in: +`/examples/[PROJECT]/docs/quality-standards.md` + +--- + +## Support + +### Questions or Issues? + +**Documentation:** +- [WDS Specification Pattern](../WDS-SPECIFICATION-PATTERN.md) +- [Object Types](../object-types/) +- [Component File Structure](../COMPONENT-FILE-STRUCTURE.md) + +**Examples:** +- See fictional TaskFlow examples in workflow steps +- Check existing WDS project specifications for real-world patterns + +**Contact:** +- File issues in project repo +- Discuss in team channel +- Reference this workflow in PRs + +--- + +## Version History + +**v1.0.0** - 2025-12-28 +- Initial release +- Pattern extracted from successful WDS projects +- 6-step sequential workflow +- Quality report generation + +--- + +**Start the workflow:** [instructions.md](instructions.md) + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/instructions.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/instructions.md new file mode 100644 index 00000000..c650dce6 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/instructions.md @@ -0,0 +1,23 @@ +# Page Specification Quality Workflow + +**Purpose:** Ensure every page specification follows WDS standards with complete structure, Object IDs, and traceability. + +**Use Cases:** +1. **During Page Creation** - Build specs correctly from the start +2. **After Page Updates** - Validate changes maintain standards +3. **Quality Audit** - Check existing specs for missing elements + +--- + +## Process Overview + +This workflow guides you through creating or validating a page specification step by step. Each step focuses on one structural element to ensure nothing is missed. + +**Sequential Flow:** Each step must be completed before moving to the next. + +--- + +## Workflow Steps + +Load and execute: step-01-navigation.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-01-navigation.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-01-navigation.md new file mode 100644 index 00000000..f6dc7613 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-01-navigation.md @@ -0,0 +1,239 @@ +# Step 1: Navigation Structure + +**Purpose:** Establish clear page context and navigation paths at the top of the specification. + +--- + +## What Navigation Provides + +**For Designers:** +- Immediately understand where this page fits in the scenario +- See the path forward (next page) without reading entire spec +- Context for user journey and flow + +**For Developers:** +- Clear routing requirements +- Navigation implementation specs +- Page hierarchy understanding + +**For Project Management:** +- Scenario structure visibility +- Completion tracking +- Flow dependencies + +--- + +## Standard Format + +### Required Elements + +```markdown +### [Scenario Number].[Page Number] [Page Name] + +**Next Step**: β†’ [Next Page Name](relative/path/to/next-page.md) + +![Page Section Name](relative/path/to/sketch.jpg) + +**Next Step**: β†’ [Next Page Name](relative/path/to/next-page.md) + +# [Scenario Number].[Page Number] [Page Name] +``` + +--- + +## Format Example (Fictional Project) + +```markdown +### 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +![Home Page Hero Section](sketches/1-1-home-page-desktop.jpg) + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +# 1.1 Home Page +``` + +**Why Repeated Next Step?** +- First instance: Immediate context before visual +- Second instance: Natural progression after viewing sketch + +--- + +## Creation Instructions + + + +### Extract Context + +1. **Determine page numbering:** + - Single page project: Use `1.1-page-name` + - Single scenario: `1.1`, `1.2`, `1.3` (sequential pages) + - Multiple scenarios: `1.1`, `1.2` (scenario 1), `2.1`, `2.2` (scenario 2) + +2. **Identify next page:** + - Review scenario structure + - Find the logical next step in user flow + - **Cross-scenario navigation:** If last page of scenario connects naturally to next scenario, link to first page of next scenario + - **Journey end:** Only the final page of the final scenario has no "Next Step" + +3. **Locate sketch file:** + - Check `/sketches/` subfolder + - Use format: `sketches/[scenario]-[page]-[variant].jpg` + +### Generate Navigation Block + + +Generate the complete navigation block following the standard format. + +**Template Variables:** +- `{scenario}`: Scenario number +- `{page}`: Page number +- `{page_name}`: Human-readable page name +- `{next_page_name}`: Name of next page in flow +- `{next_page_path}`: Relative path to next page .md file +- `{sketch_filename}`: Sketch file name with extension +- `{sketch_description}`: Brief description of what sketch shows + +**Output Format:** +```markdown +### {scenario}.{page} {page_name} + +**Next Step**: β†’ [{next_page_name}]({next_page_path}) + +![{sketch_description}](sketches/{sketch_filename}) + +**Next Step**: β†’ [{next_page_name}]({next_page_path}) + +# {scenario}.{page} {page_name} +``` + + + + +--- + +## Quality Check Instructions + + + +### Navigation Checklist + +Run through each item. Report any failures. + +**Required Elements:** + +- [ ] **H3 header** with page number and name (`### X.X Page Name`) +- [ ] **First "Next Step"** link (before sketch) +- [ ] **Embedded sketch image** with descriptive alt text +- [ ] **Second "Next Step"** link (after sketch) +- [ ] **H1 header** with page number and name (same as H3) + +**Path Validation:** + +- [ ] Next Step path uses **relative path** format +- [ ] Next Step path points to existing `.md` file +- [ ] Sketch path uses **relative path** from current file +- [ ] Sketch file exists in specified location + +**Naming Consistency:** + +- [ ] H3 and H1 have **identical** page number +- [ ] H3 and H1 have **identical** page name +- [ ] Page number follows project structure (scenario.page) + +**Edge Cases:** + +- [ ] **Last page in scenario:** Include "Next Step" link to first page of next scenario if flow continues naturally +- [ ] **Last page in final scenario:** "Next Step" should be absent (journey ends here) +- [ ] **Single page project:** No "Next Step" link +- [ ] **Sketch alt text** is descriptive, not just filename + +### Report Format + + +**Navigation Quality Report** + +**Status:** βœ… PASS / ❌ FAIL + +**Missing Elements:** +- [List any missing required elements] + +**Path Issues:** +- [List any broken or incorrect paths] + +**Inconsistencies:** +- [List any naming or numbering mismatches] + +**Recommendations:** +- [Suggest fixes for any issues found] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Skip the H3 header (only using H1) +- Use absolute URLs for internal links +- Forget to embed the sketch image +- Duplicate "Next Step" without the sketch between them +- Mix numbering schemes (1.1 vs 1-1 vs 01.01) + +**βœ… Do:** +- Use consistent numbering format across entire project +- Keep sketch image between the two "Next Step" links +- Use descriptive alt text for sketch images +- Verify all paths before saving + +--- + +## Example Fixes + +### ❌ Incorrect: Missing H3 and sketch + +```markdown +# 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) +``` + +### βœ… Correct: Complete navigation structure (within scenario) + +```markdown +### 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +![Home Page Hero Section](sketches/1-1-home-page-desktop.jpg) + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +# 1.1 Home Page +``` + +### βœ… Correct: Cross-scenario navigation + +```markdown +### 1.3 Thank You Page + +**Next Step**: β†’ [2.1 Dashboard](../../02-user-dashboard/2.1-dashboard/2.1-dashboard.md) + +![Thank You Page](sketches/1-3-thank-you-desktop.jpg) + +**Next Step**: β†’ [2.1 Dashboard](../../02-user-dashboard/2.1-dashboard/2.1-dashboard.md) + +# 1.3 Thank You Page +``` + +**Rationale:** Scenario 1 (signup flow) naturally continues into Scenario 2 (main application), so the last page of Scenario 1 links to the first page of Scenario 2. + +--- + +## Next Step + +Load and execute: step-02-page-overview.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-02-page-overview.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-02-page-overview.md new file mode 100644 index 00000000..150923b6 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-02-page-overview.md @@ -0,0 +1,310 @@ +# Step 2: Page Visualization + +**Purpose:** Ensure the sketch/visualization is present, properly referenced, and analyzed for completeness. + +--- + +## What Page Visualization Provides + +**For Designers:** +- Visual reference for all specifications +- Clear picture of layout and composition +- Design intent and aesthetic direction + +**For Developers:** +- Visual target for implementation +- Layout and spacing reference +- Component placement understanding + +**For Team Communication:** +- Shared visual language +- Quick page understanding without reading full spec +- Design evolution documentation + +--- + +## Standard Format + +### Required Elements + +**Sketch Location:** +- Embedded in navigation section (Step 1) +- Located in `/sketches/` subfolder +- Named following convention: `[scenario]-[page]-[variant]-[device].jpg` + +**Sketch Reference:** +```markdown +![Descriptive Alt Text](sketches/sketch-filename.jpg) +``` + +**Additional Sketch Documentation (Optional):** +```markdown +## Sketch Information + +**Sketch File:** `sketches/[filename].jpg` +**Device:** Desktop / Mobile / Tablet +**Variant:** Concept / Iteration 1 / Final +**Date:** YYYY-MM-DD +**Designer:** [Name] + +**Sketch Notes:** +- [Any specific notes about the sketch] +- [Incomplete sections marked as TBD] +- [Design decisions or rationale] +``` + +--- + +## Format Example (Fictional Project) + +```markdown +### 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +![Home Page Desktop Concept](sketches/1-1-home-page-desktop-concept.jpg) + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +# 1.1 Home Page +``` + +**Note:** The sketch is embedded in the navigation section without additional documentation. This is the minimal acceptable format. + +--- + +## Creation Instructions + + + +### Ensure Sketch Exists + +1. **Check for sketch file:** + - Look in `/sketches/` subfolder of page directory + - Verify file exists and is accessible + - Check file format (JPG, PNG acceptable) + +2. **Verify sketch is embedded in navigation:** + - Already handled in Step 1 + - Sketch should be between the two "Next Step" links + +3. **Analyze sketch completeness:** + - Is entire page visible or only sections? + - Are all sections clearly defined? + - Is text readable or represented? + - Are states/variants shown (hover, active, etc.)? + +### Document Sketch Status (Optional) + + +If sketch is incomplete or requires notes, add a sketch documentation section after navigation: + +```markdown +## Sketch Information + +**Sketch File:** `sketches/{filename}.jpg` +**Device:** {Desktop/Mobile/Tablet} +**Variant:** {Concept/Iteration/Final} +**Date:** {YYYY-MM-DD} + +**Sketch Notes:** +- {Note about incomplete sections} +- {Note about design decisions} +- {Note about variants or states not shown} +``` + +**Most projects:** Skip this optional section unless sketch requires clarification. + + + + +--- + +## Quality Check Instructions + + + +### Visualization Checklist + +Run through each item. Report any failures. + +**Sketch File Validation:** + +- [ ] **Sketch file exists** in specified location +- [ ] **Sketch path is correct** in navigation section (from Step 1) +- [ ] **File format is appropriate** (JPG, PNG, WebP acceptable) +- [ ] **File size is reasonable** (<5MB for web viewing) +- [ ] **Sketch is embedded** between the two "Next Step" links (validated in Step 1) + +**Sketch Quality:** + +- [ ] **Image is viewable** (not corrupted) +- [ ] **Resolution is sufficient** (text readable, elements identifiable) +- [ ] **Full page visible** or clearly marked sections +- [ ] **Device/viewport clear** (desktop, mobile, tablet) + +**Sketch Completeness:** + +- [ ] All major **sections are visible** +- [ ] **Layout and spacing** are clear +- [ ] **Text content** is readable or clearly represented +- [ ] **Interactive elements** (buttons, inputs) are identifiable +- [ ] **Incomplete sections** are marked or noted + +**Documentation (Optional):** + +- [ ] If sketch incomplete: **Notes explain what's TBD** +- [ ] If multiple variants exist: **Which variant this represents** +- [ ] If design evolved: **Version or iteration number** + +### Sketch Analysis Output + + +**Sketch Analysis:** + +**Visible Sections:** +1. [List all sections visible in sketch] +2. [E.g., Header, Hero, Features, Footer] + +**Incomplete or Unclear Elements:** +- [List any elements that are unclear or missing] +- [E.g., "Right column content is blank"] +- [E.g., "Footer text not readable"] + +**Sketch Completeness:** {X}% (estimated coverage of full page) + +**Recommendation:** +- [Suggest if sketch is sufficient for specification] +- [Note if updated sketch is needed before proceeding] + + +### Report Format + + +**Page Visualization Quality Report** + +**Status:** βœ… PASS / ⚠️ INCOMPLETE SKETCH / ❌ FAIL + +**File Issues:** +- [Sketch file missing?] +- [Path incorrect?] +- [File corrupted?] + +**Quality Issues:** +- [Resolution too low?] +- [Elements not identifiable?] + +**Completeness Issues:** +- [Sections missing or blank?] +- [Text not readable?] +- [States/variants needed but not shown?] + +**Recommendations:** +- [Specific actions needed] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Proceed without a sketch (specifications need visual reference) +- Use sketches with unreadable text or unclear elements +- Forget to place sketch in `/sketches/` subfolder +- Use inconsistent naming (breaks path references) +- Include multiple pages in one sketch (confuses specifications) +- Use extremely large files (>5MB, slows down viewing) + +**βœ… Do:** +- Ensure sketch exists before creating specifications +- Use clear, readable sketches (sufficient resolution) +- Follow naming convention consistently +- Keep one page per sketch file +- Optimize file size for web viewing +- Mark incomplete sections clearly in sketch or notes + +--- + +## Example Scenarios + +### ❌ Incorrect: Missing sketch + +```markdown +### 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +# 1.1 Home Page + +The home page serves as... +``` + +**Issues:** +- No sketch embedded between "Next Step" links +- Specifications will be created without visual reference +- Team has no shared visual understanding + +### βœ… Correct: Sketch properly embedded + +```markdown +### 1.1 Home Page + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +![Home Page Desktop Concept](sketches/1-1-home-page-desktop-concept.jpg) + +**Next Step**: β†’ [1.2 Features](../1.2-features/1.2-features.md) + +# 1.1 Home Page +``` + +**Strengths:** +- Sketch properly embedded +- Descriptive alt text +- Follows naming convention +- Located in `/sketches/` subfolder + +--- + +### ⚠️ Acceptable: Incomplete sketch with documentation + +```markdown +### 2.1 Dashboard + +**Next Step**: β†’ [2.2 Analytics](../2.2-analytics/2.2-analytics.md) + +![Dashboard Page - Partial](sketches/2-1-dashboard-desktop-concept.jpg) + +**Next Step**: β†’ [2.2 Analytics](../2.2-analytics/2.2-analytics.md) + +# 2.1 Dashboard + +## Sketch Information + +**Sketch File:** `sketches/2-1-dashboard-desktop-concept.jpg` +**Device:** Desktop +**Variant:** Initial Concept +**Date:** 2025-12-28 + +**Sketch Notes:** +- Header and navigation fully defined +- Main widget area is placeholder - to be defined in next iteration +- Sidebar navigation complete +- Footer section not yet sketched - TBD + +**Completeness:** ~65% - Sufficient to begin header and navigation specifications +``` + +**When to use:** +- Sketch is incomplete but sufficient to start specs +- Clear documentation of what's TBD +- Team agreement to proceed incrementally + +--- + +## Next Step + +Load and execute: step-03-page-overview.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-03-page-overview.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-03-page-overview.md new file mode 100644 index 00000000..2c8a3f59 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-03-page-overview.md @@ -0,0 +1,221 @@ +# Step 3: Page Overview + +**Purpose:** Provide essential context about the page's purpose, user situation, and success criteria. + +--- + +## What Page Overview Provides + +**For Designers:** +- Understand the "why" behind the page +- User emotional state and needs +- Success criteria to measure effectiveness + +**For Developers:** +- Implementation priorities +- Business logic context +- Testing criteria + +**For Stakeholders:** +- Business value +- User impact +- Measurable outcomes + +--- + +## Standard Format + +### Required Elements + +```markdown +# [Page Number] [Page Name] + +[1-2 paragraph description of page purpose, addressing user pain points and desired outcomes] + +**User Situation**: [Description of user's context, emotional state, and needs when arriving at this page] + +**Page Purpose**: [Clear statement of what this page accomplishes for the user and business] +``` + +--- + +## Format Example (Fictional Project) + +```markdown +# 1.1 Home Page + +The home page serves as the primary entry point for users discovering TaskFlow for the first time. This page addresses the universal pain point of project management overwhelm while promising the emotional transformation from chaos to control. The page must convert curious visitors into engaged users by demonstrating immediate value and removing adoption barriers. + +**User Situation**: Small business owners and freelancers experiencing daily stress and confusion about task prioritization, seeking a solution that helps them focus on what matters most without complex setup. + +**Page Purpose**: Convert visitors into users by addressing the core emotional drivers - eliminating task chaos while building confidence that they can manage their workload effectively without requiring a project management degree. +``` + +--- + +## Creation Instructions + + + +### Extract Context + +1. **Review trigger map and personas** + - Identify primary persona for this page + - Note their fears, wants, and pain points + - Understand their emotional state at this point in journey + +2. **Define page goal** + - What action should user take? + - What problem does this page solve? + - How does this connect to business goals? + +3. **Capture user situation** + - Where is user coming from? (previous page, external link, search) + - What is their emotional state? (curious, frustrated, confident, overwhelmed) + - What do they need right now? + +### Generate Overview + + +Generate complete page overview following the standard format. + +**Template Variables:** +- `{page_number}`: Page number (e.g., "1.1") +- `{page_name}`: Page name +- `{page_description}`: 1-2 paragraphs explaining page purpose and transformation +- `{user_situation}`: User's context and emotional state +- `{page_purpose}`: Clear success criteria + +**Output Format:** +```markdown +# {page_number} {page_name} + +{page_description} + +**User Situation**: {user_situation} + +**Page Purpose**: {page_purpose} +``` + + + + +--- + +## Quality Check Instructions + + + +### Overview Checklist + +Run through each item. Report any failures. + +**Required Elements:** + +- [ ] **Page description** (1-2 paragraphs) present +- [ ] Description mentions **user pain points** +- [ ] Description mentions **desired outcome/transformation** +- [ ] **User Situation** section present and starts with "User Situation:" +- [ ] **Page Purpose** section present and starts with "Page Purpose:" + +**Content Quality:** + +- [ ] Description is **specific to this page** (not generic) +- [ ] User Situation includes **emotional state** or context +- [ ] Page Purpose clearly states **what success looks like** +- [ ] Language is **user-centric** (not feature-centric) +- [ ] Connects to **trigger map** or **persona needs** + +**Format Consistency:** + +- [ ] Page number matches navigation section +- [ ] H1 header uses correct format (`# X.X Page Name`) +- [ ] User Situation uses bold label format +- [ ] Page Purpose uses bold label format + +### Report Format + + +**Page Overview Quality Report** + +**Status:** βœ… PASS / ❌ FAIL + +**Missing Elements:** +- [List any missing required sections] + +**Content Issues:** +- [List vague or generic descriptions] +- [Note missing emotional context] +- [Identify unclear success criteria] + +**Recommendations:** +- [Suggest specific improvements] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Write generic descriptions that could apply to any page +- Focus only on features ("This page has a form and buttons") +- Skip emotional context ("User wants to sign up") +- Forget to connect to business goals +- Use technical jargon instead of user language + +**βœ… Do:** +- Reference specific personas by name +- Include emotional drivers (stress, confidence, fear, hope) +- Connect to trigger map pain points +- State clear, measurable outcomes +- Use empathetic, user-centric language + +--- + +## Example Fixes + +### ❌ Incorrect: Generic and feature-focused + +```markdown +# 1.1 Home Page + +This is the home page. It has a hero section, some text, and a button. + +**User Situation**: User arrives at the page. + +**Page Purpose**: Show information about the product. +``` + +**Issues:** +- No user pain points mentioned +- No emotional context +- Vague purpose +- Could describe any landing page + +### βœ… Correct: Specific and user-centric + +```markdown +# 1.1 Home Page + +The home page serves as the primary entry point for users discovering TaskFlow for the first time. This page addresses the universal pain point of project management overwhelm while promising the emotional transformation from chaos to control. The page must convert curious visitors into engaged users by demonstrating immediate value and removing adoption barriers. + +**User Situation**: Small business owners and freelancers experiencing daily stress and confusion about task prioritization, seeking a solution that helps them focus on what matters most without complex setup. + +**Page Purpose**: Convert visitors into users by addressing the core emotional drivers - eliminating task chaos while building confidence that they can manage their workload effectively without requiring a project management degree. +``` + +**Strengths:** +- Specific target users (small business owners, freelancers) +- Clear pain point (project management overwhelm) +- Emotional transformation (chaos β†’ control) +- Measurable outcome (convert visitors to users) +- User-centric language + +--- + +## Next Step + +Load and execute: step-04-page-sections.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-object-registry.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-object-registry.md new file mode 100644 index 00000000..e97ad892 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-object-registry.md @@ -0,0 +1,327 @@ +# Step 4: Object Registry + +**Purpose:** Create a master reference table of all page objects for quick lookup and traceability. + +--- + +## What Object Registry Provides + +**For Designers:** +- Quick reference of all page elements +- Easy communication ("update object start-hero-cta") +- Complete page inventory + +**For Developers:** +- Testing targets (selenium, playwright) +- Element reference for implementation +- Content management system mapping + +**For Content Teams:** +- Translation targets +- Content update references +- CMS field mapping + +**For QA/Testing:** +- Systematic test coverage +- Element identification +- Regression testing targets + +--- + +## Standard Format + +### Required Structure + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - [Section Name] + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `object-id` | Section | Type | Brief description | User actions | +``` + +--- + +## Format Example (Fictional Project) + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - Header & Hero + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `home-header-logo` | Header | Brand logo | TaskFlow logotype | onClick β†’ home | +| `home-header-signin` | Header | Navigation button | Sign in button | onClick β†’ sign-in | +| `home-hero-headline` | Hero | Primary headline | Value proposition | Static text | +| `home-hero-cta` | Hero | Primary CTA button | Main call-to-action | onClick β†’ registration | +``` + +--- + +## Creation Instructions + + + +### Extract All Objects + +1. **Review all Page Sections** created in Step 3 +2. **List every Object ID** found in the specifications +3. **Group objects by section** (Header, Hero, Features, Footer, etc.) +4. **Determine content type** for each object +5. **Summarize interaction** in one phrase + +### Content Type Classification + +**Common Content Types:** +- Brand logo +- Navigation button +- Primary headline +- Secondary headline +- Body paragraph +- CTA button +- Text input +- Image/Illustration +- Icon +- Link +- Trust indicator +- Feature card +- Testimonial card +- FAQ item + +### Interaction Classification + +**Common Interactions:** +- `onClick β†’ [destination]` +- `onChange β†’ [action]` +- `onSubmit β†’ [action]` +- `onHover β†’ [effect]` +- `Static display` +- `Static text, language-aware` + +### Generate Registry Tables + + +Generate complete Object Registry following the standard format. + +**Structure:** +1. Registry introduction paragraph (copy exactly as shown) +2. One table per logical section grouping +3. All objects from Page Sections included + +**Table Format:** +```markdown +### Master Object List - [Section Group Name] + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `object-id` | Section | Type | Brief description | User action | +``` + +**Grouping Guidelines:** +- Combine small related sections (Header & Hero) +- Keep large sections separate (Features, FAQ, Footer) +- Aim for 4-8 objects per table +- Maximum 12 objects per table + + + + + +--- + +## Quality Check Instructions + + + +### Registry Checklist + +**Structure Validation:** + +- [ ] **"## Object Registry"** heading present +- [ ] **Introduction paragraph** present (explaining Object ID system) +- [ ] At least one **Master Object List** table exists +- [ ] Tables use correct markdown format (pipes and hyphens) +- [ ] Column headers are: **Object ID | Object | Content Type | Description | Interactions** + +**Completeness:** + +- [ ] **All Object IDs** from Page Sections appear in registry +- [ ] **No duplicate Object IDs** in registry +- [ ] **No orphan Object IDs** (in registry but not in Page Sections) +- [ ] Objects are **grouped logically** by section + +**Content Quality:** + +- [ ] Object IDs use **backtick formatting** (`` `object-id` ``) +- [ ] Content Types are **descriptive and consistent** +- [ ] Descriptions are **brief** (3-8 words) +- [ ] Interactions use **standard format** (`onClick β†’`, `onChange β†’`, etc.) +- [ ] **No empty cells** in table + +**Cross-Reference Validation:** + +Run a comparison between Page Sections and Object Registry: + +1. **List all Object IDs from Page Sections** +2. **List all Object IDs from Object Registry** +3. **Compare lists:** + - Missing in Registry = ❌ Add to registry + - Missing in Sections = ❌ Remove from registry or add to sections + - Mismatched = ❌ Fix typo + +### Report Format + + +**Object Registry Quality Report** + +**Status:** βœ… PASS / ❌ FAIL + +**Structure Issues:** +- [Missing registry section?] +- [Missing introduction paragraph?] +- [Table formatting errors?] + +**Completeness:** +- **Total Object IDs in Sections:** X +- **Total Object IDs in Registry:** Y +- **Match:** βœ… / ❌ + +**Missing from Registry:** +- [List Object IDs in sections but not in registry] + +**Orphan Object IDs:** +- [List Object IDs in registry but not in sections] + +**Content Issues:** +- [Vague descriptions] +- [Inconsistent content types] +- [Missing interaction specifications] + +**Recommendations:** +- [Specific fixes needed] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Skip the registry ("it's just a duplicate") +- Use inconsistent content type names +- Leave cells empty (use "N/A" or "Static" if truly non-interactive) +- Forget backticks around Object IDs +- Create registry before Page Sections (order matters) +- Use vague descriptions ("button", "text") + +**βœ… Do:** +- Include every single Object ID from Page Sections +- Use consistent content type terminology +- Keep descriptions brief but specific +- Format Object IDs with backticks +- Group objects logically by section +- Cross-reference to ensure 100% match + +--- + +## Example Fixes + +### ❌ Incorrect: Incomplete and poorly formatted + +```markdown +## Objects + +| ID | Type | Description | +|----|------|-------------| +| start-logo | Logo | Logo | +| start-button | Button | Button to sign in | +``` + +**Issues:** +- Wrong section title ("Objects" not "Object Registry") +- Missing introduction paragraph +- Wrong table headers +- Object IDs not in backticks +- Missing "Object" and "Interactions" columns +- Vague descriptions +- Incomplete (missing objects) + +### βœ… Correct: Complete and properly formatted + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - Header & Hero + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `home-header-logo` | Header | Brand logo | TaskFlow logotype | onClick β†’ home | +| `home-header-signin` | Header | Navigation button | Sign in button | onClick β†’ sign-in | +| `home-hero-headline` | Hero | Primary headline | Value proposition | Static text | +| `home-hero-cta` | Hero | Primary CTA button | Main call-to-action | onClick β†’ registration | +``` + +**Strengths:** +- Correct section title +- Introduction paragraph present +- All five columns present +- Object IDs in backticks +- Descriptive content types +- Clear, brief descriptions +- Specific interaction specs +- Logical grouping + +--- + +## Implementation Notes Section + +### Optional Addition + +After the registry tables, you may include an "Implementation Notes" section: + +```markdown +### Implementation Notes + +**HTML Demo Integration:** +- Each object includes `id="object-id"` and `data-object-id="object-id"` attributes +- JavaScript uses Object IDs for content updates and event handling +- Translation system maps content directly to Object IDs + +**Production Code Mapping:** +- Object IDs become component props or data attributes +- Content management systems can reference Object IDs for updates +- Testing frameworks can target elements by Object ID for reliable automation + +**Designer-Developer Workflow:** +- Designer uses Object IDs as component names in Figma +- Specifications provide structure, designer modifies as needed +- Developer updates specs based on design iterations +- GitHub specifications remain single source of truth + +**Content Traceability:** +- Every interactive element has a unique Object ID +- Changes to specifications automatically propagate to HTML demos and production code +- Clear communication: "Update the CTA in start-hero-cta" +``` + +**Include this section if:** +- Project has interactive prototypes +- Project uses CMS or translation system +- Team wants implementation guidance + +--- + +## Next Step + +Load and execute: step-05-final-validation.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-page-sections.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-page-sections.md new file mode 100644 index 00000000..89b2aff7 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-04-page-sections.md @@ -0,0 +1,319 @@ +# Step 4: Page Sections Structure + +**Purpose:** Organize all page elements into logical sections with clear hierarchy and Object IDs. + +--- + +## What Page Sections Provide + +**For Designers:** +- Clear visual hierarchy +- Section-level organization +- Understanding of page flow + +**For Developers:** +- Component boundaries +- Implementation order +- Semantic HTML structure + +**For Everyone:** +- Shared vocabulary +- Clear references ("update the hero section") +- Traceability + +--- + +## Standard Format + +### Required Structure + +```markdown +## Page Sections + +### [Section Name] Object +**Purpose**: [One sentence explaining section's role] + +#### [Component Name] +**OBJECT ID**: `page-section-component` +- **Component**: [Link to design system component if exists] +- **Content**: [What text/media this contains] +- **Behavior**: [What happens on interaction] +- **Position**: [Where it's located] +- **[Other relevant specs]**: [Values] +``` + +--- + +## Format Example (Fictional Project) + +```markdown +## Page Sections + +### Header Object +**Purpose**: Navigation and user access + +#### Company Logo +**OBJECT ID**: `home-header-logo` +- **Component**: [Logo Component](/docs/design-system/components/Logo.md) +- **Content**: "TaskFlow" logotype +- **Behavior**: Links to home page +- **Position**: Left-aligned + +#### Sign In Button +**OBJECT ID**: `home-header-signin` +- **Component**: [Button Secondary](/docs/design-system/components/Buttons/Button-Secondary.md) +- **Content**: "Sign in" +- **Behavior**: Navigate to sign-in page +- **Color**: `var(--primary-600)` +- **Position**: Right side +``` + +--- + +## Hierarchy Rules + +### Section Types + +**H3 Level (###): Section Objects** +- Major visual sections (Header, Hero, Footer, etc.) +- Each section has a **Purpose** statement +- Sections contain multiple components + +**H4 Level (####): Components** +- Individual interactive or visual elements +- Each has an **OBJECT ID** +- Components can reference design system + +**Object ID Naming Convention:** +``` +{page-prefix}-{section}-{component} +``` + +Examples: +- `start-header-logo` +- `start-hero-cta` +- `start-footer-newsletter-button` + +--- + +## Creation Instructions + + + +### Analyze Sketch + +1. **Identify visual sections from top to bottom:** + - Header/Navigation + - Hero/Main message + - Content sections (Features, Benefits, etc.) + - Footer + +2. **For each section, list all components:** + - Text elements (headlines, paragraphs) + - Interactive elements (buttons, inputs, links) + - Visual elements (images, icons, illustrations) + - Containers (cards, panels, modals) + +3. **Determine section purpose:** + - Why does this section exist? + - What user need does it serve? + +### Generate Section Specifications + + +For each section, generate: + +**Section Header:** +```markdown +### [Section Name] Object +**Purpose**: [Clear, one-sentence purpose] +``` + +**For each component in section:** +```markdown +#### [Component Name] +**OBJECT ID**: `{page}-{section}-{component}` +- **Component**: [Link if design system exists, or "TBD"] +- **Content**: [Actual text or description] +- **Behavior**: [User interaction or static] +- **Position**: [Location within section] +- **[Relevant specs]**: [Values specific to this component] +``` + +**Spec Fields by Component Type:** + +**Buttons:** +- Component, Content (with translations), Behavior, Colors, Position + +**Text Elements:** +- Component (H1, H2, body, etc.), Content (with translations), Behavior (if clickable), Style + +**Images:** +- Component, Content (description), Behavior, Layout, Image Source, Dimensions + +**Inputs:** +- Component, API Data Field, Placeholder (with translations), Validation + +**Links:** +- Component, Content (with translations), Behavior (destination) + + + + + +--- + +## Quality Check Instructions + + + +### Sections Checklist + +**Structure Validation:** + +- [ ] **"## Page Sections"** heading present +- [ ] Each section uses **H3** (`###`) with "Object" suffix +- [ ] Each section has **Purpose** statement +- [ ] Each component uses **H4** (`####`) +- [ ] Every component has **OBJECT ID** + +**Object ID Validation:** + +- [ ] Object IDs follow naming convention: `{page}-{section}-{component}` +- [ ] Object IDs are **unique** across entire page +- [ ] Object IDs use **lowercase** with hyphens +- [ ] Object IDs are **descriptive** (not generic like `button-1`) + +**Component Specification:** + +- [ ] Each component has **minimum required fields**: + - OBJECT ID (always) + - Content or description + - Behavior (if interactive) + +- [ ] **Multilingual content** marked with language codes (EN:, SE:, etc.) +- [ ] **Design system links** present where components exist +- [ ] **Position** information provided +- [ ] **Color variables** used (not hex codes directly) + +**Completeness:** + +- [ ] **All visible elements** in sketch have specs +- [ ] **All interactive elements** have behavior defined +- [ ] **All text content** is specified (not "lorem ipsum") +- [ ] **All images** have source paths or descriptions + +### Report Format + + +**Page Sections Quality Report** + +**Status:** βœ… PASS / ❌ FAIL + +**Structure Issues:** +- [Missing "Page Sections" header?] +- [Wrong heading levels?] +- [Missing Purpose statements?] + +**Object ID Issues:** +- [List any components without Object IDs] +- [List duplicate Object IDs] +- [List incorrectly formatted Object IDs] + +**Specification Gaps:** +- [Components missing behavior specs] +- [Missing multilingual content] +- [Missing position information] + +**Sketch Coverage:** +- [List visible elements in sketch not specified] + +**Recommendations:** +- [Specific fixes needed] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Skip Object IDs ("we'll add them later") +- Use generic Object IDs (`button-1`, `text-2`) +- Mix heading levels incorrectly +- Forget the "Object" suffix on section headers +- Leave content as placeholders ("TBD", "Lorem ipsum") +- Use absolute URLs for design system links + +**βœ… Do:** +- Give every interactive element an Object ID +- Use descriptive, semantic Object IDs +- Maintain consistent hierarchy (H3 β†’ H4) +- Write clear, one-sentence Purpose statements +- Specify actual content (even if it might change) +- Use relative paths for all internal links + +--- + +## Example Fixes + +### ❌ Incorrect: Missing Object IDs, wrong hierarchy + +```markdown +## Header + +### Logo +- Component: Logo +- Content: TaskFlow + +### Button +- Content: Sign in +- Behavior: Go to sign-in page +``` + +**Issues:** +- No "Page Sections" header +- "Header" should be H3, components H4 +- Missing "Object" suffix +- No Purpose statement +- No Object IDs +- Vague component names + +### βœ… Correct: Proper hierarchy and Object IDs + +```markdown +## Page Sections + +### Header Object +**Purpose**: Navigation and user access + +#### Company Logo +**OBJECT ID**: `home-header-logo` +- **Component**: [Logo Component](/docs/design-system/components/Logo.md) +- **Content**: "TaskFlow" logotype +- **Behavior**: Links to home page +- **Position**: Left-aligned + +#### Sign In Button +**OBJECT ID**: `home-header-signin` +- **Component**: [Button Secondary](/docs/design-system/components/Buttons/Button-Secondary.md) +- **Content**: "Sign in" +- **Behavior**: Navigate to sign-in page +- **Position**: Right side +``` + +**Strengths:** +- Clear hierarchy (H2 β†’ H3 β†’ H4) +- Purpose statement at section level +- Unique, descriptive Object IDs +- Design system links +- Multilingual content +- Position information + +--- + +## Next Step + +Load and execute: step-05-object-registry.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-05-object-registry.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-05-object-registry.md new file mode 100644 index 00000000..00a4f25b --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-05-object-registry.md @@ -0,0 +1,327 @@ +# Step 5: Object Registry + +**Purpose:** Create a master reference table of all page objects for quick lookup and traceability. + +--- + +## What Object Registry Provides + +**For Designers:** +- Quick reference of all page elements +- Easy communication ("update object start-hero-cta") +- Complete page inventory + +**For Developers:** +- Testing targets (selenium, playwright) +- Element reference for implementation +- Content management system mapping + +**For Content Teams:** +- Translation targets +- Content update references +- CMS field mapping + +**For QA/Testing:** +- Systematic test coverage +- Element identification +- Regression testing targets + +--- + +## Standard Format + +### Required Structure + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - [Section Name] + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `object-id` | Section | Type | Brief description | User actions | +``` + +--- + +## Format Example (Fictional Project) + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - Header & Hero + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `home-header-logo` | Header | Brand logo | TaskFlow logotype | onClick β†’ home | +| `home-header-signin` | Header | Navigation button | Sign in button | onClick β†’ sign-in | +| `home-hero-headline` | Hero | Primary headline | Value proposition | Static text | +| `home-hero-cta` | Hero | Primary CTA button | Main call-to-action | onClick β†’ registration | +``` + +--- + +## Creation Instructions + + + +### Extract All Objects + +1. **Review all Page Sections** created in Step 3 +2. **List every Object ID** found in the specifications +3. **Group objects by section** (Header, Hero, Features, Footer, etc.) +4. **Determine content type** for each object +5. **Summarize interaction** in one phrase + +### Content Type Classification + +**Common Content Types:** +- Brand logo +- Navigation button +- Primary headline +- Secondary headline +- Body paragraph +- CTA button +- Text input +- Image/Illustration +- Icon +- Link +- Trust indicator +- Feature card +- Testimonial card +- FAQ item + +### Interaction Classification + +**Common Interactions:** +- `onClick β†’ [destination]` +- `onChange β†’ [action]` +- `onSubmit β†’ [action]` +- `onHover β†’ [effect]` +- `Static display` +- `Static text, language-aware` + +### Generate Registry Tables + + +Generate complete Object Registry following the standard format. + +**Structure:** +1. Registry introduction paragraph (copy exactly as shown) +2. One table per logical section grouping +3. All objects from Page Sections included + +**Table Format:** +```markdown +### Master Object List - [Section Group Name] + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `object-id` | Section | Type | Brief description | User action | +``` + +**Grouping Guidelines:** +- Combine small related sections (Header & Hero) +- Keep large sections separate (Features, FAQ, Footer) +- Aim for 4-8 objects per table +- Maximum 12 objects per table + + + + + +--- + +## Quality Check Instructions + + + +### Registry Checklist + +**Structure Validation:** + +- [ ] **"## Object Registry"** heading present +- [ ] **Introduction paragraph** present (explaining Object ID system) +- [ ] At least one **Master Object List** table exists +- [ ] Tables use correct markdown format (pipes and hyphens) +- [ ] Column headers are: **Object ID | Object | Content Type | Description | Interactions** + +**Completeness:** + +- [ ] **All Object IDs** from Page Sections appear in registry +- [ ] **No duplicate Object IDs** in registry +- [ ] **No orphan Object IDs** (in registry but not in Page Sections) +- [ ] Objects are **grouped logically** by section + +**Content Quality:** + +- [ ] Object IDs use **backtick formatting** (`` `object-id` ``) +- [ ] Content Types are **descriptive and consistent** +- [ ] Descriptions are **brief** (3-8 words) +- [ ] Interactions use **standard format** (`onClick β†’`, `onChange β†’`, etc.) +- [ ] **No empty cells** in table + +**Cross-Reference Validation:** + +Run a comparison between Page Sections and Object Registry: + +1. **List all Object IDs from Page Sections** +2. **List all Object IDs from Object Registry** +3. **Compare lists:** + - Missing in Registry = ❌ Add to registry + - Missing in Sections = ❌ Remove from registry or add to sections + - Mismatched = ❌ Fix typo + +### Report Format + + +**Object Registry Quality Report** + +**Status:** βœ… PASS / ❌ FAIL + +**Structure Issues:** +- [Missing registry section?] +- [Missing introduction paragraph?] +- [Table formatting errors?] + +**Completeness:** +- **Total Object IDs in Sections:** X +- **Total Object IDs in Registry:** Y +- **Match:** βœ… / ❌ + +**Missing from Registry:** +- [List Object IDs in sections but not in registry] + +**Orphan Object IDs:** +- [List Object IDs in registry but not in sections] + +**Content Issues:** +- [Vague descriptions] +- [Inconsistent content types] +- [Missing interaction specifications] + +**Recommendations:** +- [Specific fixes needed] + + + + +--- + +## Common Errors to Avoid + +**❌ Don't:** +- Skip the registry ("it's just a duplicate") +- Use inconsistent content type names +- Leave cells empty (use "N/A" or "Static" if truly non-interactive) +- Forget backticks around Object IDs +- Create registry before Page Sections (order matters) +- Use vague descriptions ("button", "text") + +**βœ… Do:** +- Include every single Object ID from Page Sections +- Use consistent content type terminology +- Keep descriptions brief but specific +- Format Object IDs with backticks +- Group objects logically by section +- Cross-reference to ensure 100% match + +--- + +## Example Fixes + +### ❌ Incorrect: Incomplete and poorly formatted + +```markdown +## Objects + +| ID | Type | Description | +|----|------|-------------| +| start-logo | Logo | Logo | +| start-button | Button | Button to sign in | +``` + +**Issues:** +- Wrong section title ("Objects" not "Object Registry") +- Missing introduction paragraph +- Wrong table headers +- Object IDs not in backticks +- Missing "Object" and "Interactions" columns +- Vague descriptions +- Incomplete (missing objects) + +### βœ… Correct: Complete and properly formatted + +```markdown +## Object Registry + +This page uses a systematic Object ID system for precise element identification across specifications, HTML demos, and production code. + +### Master Object List - Header & Hero + +| Object ID | Object | Content Type | Description | Interactions | +|-----------|--------|--------------|-------------|--------------| +| `home-header-logo` | Header | Brand logo | TaskFlow logotype | onClick β†’ home | +| `home-header-signin` | Header | Navigation button | Sign in button | onClick β†’ sign-in | +| `home-hero-headline` | Hero | Primary headline | Value proposition | Static text | +| `home-hero-cta` | Hero | Primary CTA button | Main call-to-action | onClick β†’ registration | +``` + +**Strengths:** +- Correct section title +- Introduction paragraph present +- All five columns present +- Object IDs in backticks +- Descriptive content types +- Clear, brief descriptions +- Specific interaction specs +- Logical grouping + +--- + +## Implementation Notes Section + +### Optional Addition + +After the registry tables, you may include an "Implementation Notes" section: + +```markdown +### Implementation Notes + +**HTML Demo Integration:** +- Each object includes `id="object-id"` and `data-object-id="object-id"` attributes +- JavaScript uses Object IDs for content updates and event handling +- Translation system maps content directly to Object IDs + +**Production Code Mapping:** +- Object IDs become component props or data attributes +- Content management systems can reference Object IDs for updates +- Testing frameworks can target elements by Object ID for reliable automation + +**Designer-Developer Workflow:** +- Designer uses Object IDs as component names in Figma +- Specifications provide structure, designer modifies as needed +- Developer updates specs based on design iterations +- GitHub specifications remain single source of truth + +**Content Traceability:** +- Every interactive element has a unique Object ID +- Changes to specifications automatically propagate to HTML demos and production code +- Clear communication: "Update the CTA in start-hero-cta" +``` + +**Include this section if:** +- Project has interactive prototypes +- Project uses CMS or translation system +- Team wants implementation guidance + +--- + +## Next Step + +Load and execute: step-06-final-validation.md + diff --git a/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-06-final-validation.md b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-06-final-validation.md new file mode 100644 index 00000000..57d5ed19 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/page-specification-quality/step-06-final-validation.md @@ -0,0 +1,420 @@ +# Step 6: Final Validation + +**Purpose:** Run comprehensive quality checks and generate final report. + +--- + +## What Final Validation Provides + +**Quality Assurance:** +- Catches missing elements before handoff +- Ensures consistency across specification +- Validates against WDS standards + +**Confidence:** +- Designer knows spec is complete +- Developer can trust the specification +- Team has single source of truth + +**Traceability:** +- All elements accounted for +- Clear audit trail +- Easy to identify gaps + +--- + +## Validation Checklist + +Run through all items systematically. + +### 1. Navigation Validation + +- [ ] H3 header with page number present +- [ ] First "Next Step" link present and correct +- [ ] Sketch image embedded with correct path +- [ ] Second "Next Step" link present and correct +- [ ] H1 header matches H3 header exactly + +### 2. Page Overview Validation + +- [ ] Page description (1-2 paragraphs) present +- [ ] User Situation section present +- [ ] Page Purpose section present +- [ ] Content is specific, not generic +- [ ] Emotional context included + +### 3. Page Sections Validation + +- [ ] "## Page Sections" header present +- [ ] All sections use H3 with "Object" suffix +- [ ] Every section has Purpose statement +- [ ] All components use H4 +- [ ] Every interactive element has Object ID +- [ ] Object IDs follow naming convention +- [ ] All Object IDs are unique +- [ ] Content specified (not placeholder) +- [ ] Multilingual content marked + +### 4. Object Registry Validation + +- [ ] "## Object Registry" header present +- [ ] Introduction paragraph present +- [ ] At least one Master Object List table +- [ ] All Page Section Object IDs in registry +- [ ] No orphan Object IDs in registry +- [ ] Table formatting correct +- [ ] Object IDs use backticks +- [ ] All table cells populated + +### 5. Sketch Coverage Validation + +**Process:** +1. Open the sketch image +2. Identify all visible elements top to bottom +3. Check each element has specification in Page Sections +4. Mark missing elements + +**Common Missing Elements:** +- Background patterns or decorations +- Icons within buttons or cards +- Subtle UI elements (dividers, borders) +- Error states or empty states +- Loading indicators +- Hover states + +- [ ] All visible elements in sketch are specified +- [ ] All interactive states documented +- [ ] All content elements captured + +### 6. Design System Linking + +- [ ] Component links present where system exists +- [ ] Component links use relative paths +- [ ] Component links point to correct locations +- [ ] Missing components marked as "TBD" with creation task + +### 7. Cross-Reference Validation + +**Object ID Audit:** + +Create two lists: +1. All Object IDs from Page Sections +2. All Object IDs from Object Registry + +**Compare:** +- [ ] Lists are identical (no missing, no extra) +- [ ] No duplicates within either list +- [ ] All follow naming convention + +**Path Audit:** + +- [ ] Navigation "Next Step" paths exist +- [ ] Sketch image path exists +- [ ] Design system component paths exist (where applicable) +- [ ] All paths use relative format + +--- + +## Generate Quality Report + + +# Page Specification Quality Report + +**Page:** {page_number} {page_name} +**Date:** {current_date} +**Status:** βœ… READY FOR HANDOFF / ⚠️ NEEDS REVISION / ❌ INCOMPLETE + +--- + +## Executive Summary + +**Total Object IDs:** {count} +**Sections:** {count} +**Components:** {count} + +**Critical Issues:** {count} +**Warnings:** {count} +**Recommendations:** {count} + +--- + +## Section-by-Section Results + +### βœ… Navigation Structure +- Status: PASS / FAIL +- Issues: [List if any] + +### βœ… Page Overview +- Status: PASS / FAIL +- Issues: [List if any] + +### βœ… Page Sections +- Status: PASS / FAIL +- Missing Object IDs: [Count] +- Duplicate Object IDs: [Count] +- Issues: [List if any] + +### βœ… Object Registry +- Status: PASS / FAIL +- Objects in Sections: {count} +- Objects in Registry: {count} +- Match: YES / NO +- Issues: [List if any] + +### βœ… Sketch Coverage +- Status: PASS / FAIL +- Unspecified elements: [List] + +### βœ… Design System Links +- Status: PASS / FAIL +- Broken links: [Count] +- Missing links: [Count] + +--- + +## Detailed Findings + +### πŸ”΄ Critical Issues (Must Fix) + +1. [Issue description] + - **Location:** [Where in spec] + - **Impact:** [Why this matters] + - **Fix:** [Specific action needed] + +### ⚠️ Warnings (Should Fix) + +1. [Issue description] + - **Location:** [Where in spec] + - **Impact:** [Why this matters] + - **Fix:** [Specific action needed] + +### πŸ’‘ Recommendations (Nice to Have) + +1. [Suggestion] + - **Rationale:** [Why this would help] + +--- + +## Object ID Audit + +**Total Object IDs:** {count} + +**In Page Sections but not in Registry:** +- [List Object IDs] + +**In Registry but not in Page Sections:** +- [List Object IDs] + +**Duplicate Object IDs:** +- [List duplicates] + +**Naming Convention Violations:** +- [List Object IDs not following pattern] + +--- + +## Missing Elements from Sketch + +Elements visible in sketch but not specified: + +1. [Element description] + - **Location in sketch:** [Where] + - **Suggested Object ID:** [Proposed ID] + +--- + +## Broken Links Audit + +**Navigation Links:** +- [List any broken "Next Step" links] + +**Sketch Image:** +- [Report if sketch image path broken] + +**Design System Links:** +- [List any broken component links] + +--- + +## Next Actions + +**Before Handoff:** +1. [Required action] +2. [Required action] + +**For Future Iteration:** +1. [Optional improvement] +2. [Optional improvement] + +--- + +## Approval + +**Status:** βœ… APPROVED / ⚠️ CONDITIONAL / ❌ REJECTED + +**Approved by:** [Role - Designer/Lead/PM] +**Date:** [Approval date] +**Notes:** [Any comments] + + + +--- + +## Pass/Fail Criteria + +### βœ… READY FOR HANDOFF + +**All of these must be true:** +- [ ] Zero critical issues +- [ ] Navigation complete and correct +- [ ] Page overview complete +- [ ] All Object IDs present and unique +- [ ] Object Registry matches Page Sections 100% +- [ ] All sketch elements specified +- [ ] All paths valid + +**Warnings and recommendations are acceptable** for handoff but should be tracked. + +### ⚠️ NEEDS REVISION + +**If any of these are true:** +- 1-3 critical issues present +- Object Registry incomplete (<90% match) +- Some sketch elements missing (<5) +- Some broken links present + +**Action:** Fix critical issues before handoff. + +### ❌ INCOMPLETE + +**If any of these are true:** +- 4+ critical issues +- Major sections missing +- Object Registry severely incomplete (<70% match) +- Many sketch elements unspecified (5+) +- Multiple broken links + +**Action:** Complete specification before validation. + +--- + +## Common Critical Issues + +**These always block handoff:** + +1. **Missing Object IDs on interactive elements** + - Developer cannot implement without IDs + - Testing impossible without target IDs + +2. **Duplicate Object IDs** + - Creates implementation conflicts + - Breaks element targeting + +3. **Missing navigation structure** + - Developer doesn't know flow + - Routing cannot be implemented + +4. **Placeholder content in interactive elements** + - Cannot implement button with "TBD" text + - Cannot create form with undefined fields + +5. **Object Registry mismatch >10%** + - Indicates specification chaos + - High risk of missed elements + +--- + +## Automated Checks (Future) + +**These checks can be automated:** + +- Object ID uniqueness +- Object ID naming convention +- Object Registry vs Page Sections matching +- Markdown formatting +- Path validation +- Required section presence + +**Manual checks still needed:** + +- Sketch coverage +- Content quality +- Purpose statement clarity +- Design system appropriateness + +--- + +## After Validation + + + +### Next Steps + +1. **Save quality report** to spec folder +2. **Update scenario tracking** (mark page as complete) +3. **Notify team** spec is ready for review +4. **Proceed to prototype generation** (if applicable) +5. **Hand off to developer** with confidence + + + + + +### Next Steps + +1. **Share quality report** with page owner +2. **Prioritize critical issues** from report +3. **Fix issues** and re-run validation +4. **Track progress** in scenario tracking file +5. **Re-validate** when fixes complete + + + +--- + +## Quality Metrics Tracking + +**Track these over time to improve process:** + +- Average Object IDs per page +- Common missing elements +- Most frequent critical issues +- Time to fix issues +- Pass rate on first validation + +--- + +## Completion + + +**Page Specification Quality Validation Complete** + +**Final Status:** [βœ… READY / ⚠️ NEEDS REVISION / ❌ INCOMPLETE] + +**Summary:** +- Validated: {date} +- Critical Issues: {count} +- Warnings: {count} +- Object IDs: {count} + +{if READY} +βœ… This specification is ready for handoff to development or prototype generation. +{endif} + +{if NEEDS REVISION} +⚠️ Please address {count} critical issues before proceeding. +{endif} + +{if INCOMPLETE} +❌ This specification requires substantial work before validation. +{endif} + +**Quality Report saved to:** `{path}/quality-report-{date}.md` + + +--- + +**Workflow Complete** βœ… + +Return to: [Page Specification Quality Workflow](instructions.md) + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-01-init.md b/src/modules/wds/workflows/4-ux-design/steps/step-01-init.md index afba0403..8ef2b02d 100644 --- a/src/modules/wds/workflows/4-ux-design/steps/step-01-init.md +++ b/src/modules/wds/workflows/4-ux-design/steps/step-01-init.md @@ -4,7 +4,44 @@ ## YOUR TASK -Initialize the UX Design workflow by welcoming the user and understanding what they want to design. +Initialize the UX Design workflow by: +1. Loading project structure metadata from project config +2. Understanding folder organization requirements +3. Welcoming the user and determining what to design + +--- + +## CRITICAL: LOAD PROJECT STRUCTURE + +**Before greeting the user**, read the project config to understand project structure: + + +Read `{project_root}/config.yaml` (or `{project_root}/wds-workflow-status.yaml`) and extract: + +- `project.structure.type` (landing_page | simple_website | web_application) +- `project.structure.scenarios` (single | multiple) +- `project.structure.pages` (single | multiple) + +Store this in memory for the entire session. + + +**Folder Structure Rules Based on Project Type:** + +- **Landing Page** (`scenarios: single`, `pages: single`): + - Place pages directly in `4-scenarios/` + - Use page variants if needed: `1.1-start-page/`, `1.1-variant-a/`, `1.1-variant-b/` + +- **Simple Website** (`scenarios: single`, `pages: multiple`): + - Place pages directly in `4-scenarios/` + - Number pages sequentially: `1.1-home/`, `1.2-about/`, `1.3-contact/` + +- **Web Application** (`scenarios: multiple`, `pages: multiple`): + - Create scenario subfolders: `4-scenarios/1-onboarding/`, `4-scenarios/2-dashboard/` + - Number pages within each scenario: `1.1-signup/`, `1.2-verify-email/`, `2.1-dashboard/` + + +This structure was defined during workflow-init. Follow it exactly. Do not create unnecessary subfolders. + --- @@ -51,8 +88,8 @@ Choice [1/2/3]: ### Choice 1: New Scenario -- Proceed to Step 2 (Scenario Definition) -- Load `steps/step-02-define-scenario.md` +- Proceed to Step 2 (Scenario Structure Setup) +- Load `steps/step-02-setup-scenario-structure.md` ### Choice 2: Continue Existing @@ -72,7 +109,7 @@ Choice [1/2/3]: ## NEXT STEP -After user selects [1] for new scenario, load `steps/step-02-define-scenario.md` to begin scenario definition. +After user selects [1] for new scenario, load `steps/step-02-setup-scenario-structure.md` to begin scenario structure setup. If user selects [2], determine current state and load appropriate step. diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-define-scenario.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-define-scenario.md deleted file mode 100644 index b82f18fb..00000000 --- a/src/modules/wds/workflows/4-ux-design/steps/step-02-define-scenario.md +++ /dev/null @@ -1,93 +0,0 @@ -# Step 2: Define Scenario and Pages - -**Progress: Step 2 of 5** - Next: Page Design - -## YOUR TASK - -Work with the user to define the scenario (user journey) and identify all pages within it. - ---- - -## GOAL - -Create clear scenario structure with numbered pages ready for design. - ---- - -## EXECUTION - -**Let's define your scenario.** - -A scenario is a cohesive user journey containing multiple related pages. - -**What scenario are we designing?** - -Examples: - -- "User Onboarding" (sign up through profile setup) -- "Booking Flow" (search through confirmation) -- "Dashboard Experience" (home screen with navigation) - -Scenario name: - -Store scenario_name -Determine scenario number (count existing scenarios, add 1) -Generate scenario folder: {output_folder}/C-Scenarios/{nn}-{scenario-name}/ - -**What pages are in this scenario?** - -List the main screens/pages in order. - -Example: - -1. Start Page -2. Sign Up -3. Profile Setup -4. Welcome Dashboard - -Store pages list -Create folder structure for each page: - -- {nn}.1-{page-name}/ -- {nn}.2-{page-name}/ -- etc. - - -βœ… **Scenario structure created:** - -`C-Scenarios/{nn}-{scenario-name}/` -{{#each page}} - -- `{nn}.{n}-{page-name}/` - {{/each}} - -We'll design each page using the 4A-4E process: - -- **4A: Exploration** (optional - think through concept) -- **4B: Sketch Analysis** (analyze your sketches) -- **4C: Specification** (document everything systematically) -- **4D: Prototype** (create interactive HTML) -- **4E: PRD Update** (extract functional requirements) - -Ready to design the first page? 🎨 - ---- - -## MENU - -[C] Continue to Step 3 (Page Design) - ---- - -## STATE MANAGEMENT - -Before proceeding: - -- Save scenario structure to `C-Scenarios/{nn}-{scenario-name}/scenario-info.yaml` -- Include: scenario_name, scenario_number, pages_list, current_page_index (0) - ---- - -## NEXT STEP - -When user selects [C], load `steps/step-03-design-page.md` to begin designing the first page. diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-setup-scenario-structure.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-setup-scenario-structure.md new file mode 100644 index 00000000..8e30801f --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-setup-scenario-structure.md @@ -0,0 +1,67 @@ +# Step 2: Set Up Scenario Structure + +**Progress: Step 2 of 5** - Next: Page Design + +## YOUR TASK + +Route to the appropriate initialization workshop based on project structure. + +--- + +## CRITICAL: READ PROJECT STRUCTURE + + +Read `wds-workflow-status.yaml` and extract: +- `project_structure.scenarios` (single | multiple) +- `project_structure.pages` (single | multiple) + +Determine project structure type: +- pages == "single" β†’ SEPARATE_PAGES (individual pages/variants) +- scenarios == "single" AND pages == "multiple" β†’ SINGLE_FLOW (one scenario, multiple pages) +- scenarios == "multiple" β†’ MULTIPLE_FLOWS (multiple scenarios) + +Store structure_type in memory for this session. + + +--- + +## ROUTING LOGIC + +### Separate Pages (No Scenarios) + + **Project Structure:** Separate pages or variants + +You're creating individual pages (like landing pages, dashboards, or page variants). Let's define the first page. + + Skip scenario-init (no scenarios needed) + Load and execute: `step-02-substeps/page-init/step-01-page-context.md` + + +### Single User Flow (One Scenario) + + **Project Structure:** Single user flow (multiple pages) + +You're creating one continuous user journey across multiple pages. Let's first define the scenario, then the first page. + + Load and execute: `step-02-substeps/scenario-init/step-01-core-feature.md` + (After scenario-init completes, it will automatically route to page-init) + + +### Multiple User Flows (Multiple Scenarios) + + **Project Structure:** Multiple user flows (scenarios) + +You're creating multiple distinct user journeys, each with their own pages. Let's define the first scenario, then its first page. + + Load and execute: `step-02-substeps/scenario-init/step-01-core-feature.md` + (After scenario-init completes, it will automatically route to page-init) + + +--- + +## CRITICAL RULES + +- πŸ›‘ **NEVER** skip the routing logic +- πŸ“– **ALWAYS** read the full substep file before executing +- 🚫 **NEVER** execute multiple flows +- ⚠️ **ONLY ONE FLOW** executes based on project structure type diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/README.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/README.md new file mode 100644 index 00000000..0592a1f4 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/README.md @@ -0,0 +1,110 @@ +# Step 02 Substeps: Reusable Workshops + +This folder contains reusable workshop micro-instructions for scenario and page initialization. + +--- + +## Structure + +### scenario-init/ +**Reusable scenario definition workshop** (7 micro-steps) + +Used to define a scenario (user flow context): +- Core feature/experience +- User entry point +- Mental state at entry +- Mutual success goals (business + user) +- Shortest path (page sequence) +- Scenario name +- Create scenario folder structure + +**Usage:** +- **Single page projects:** NOT USED (no scenarios) +- **Single scenario projects:** Used ONCE (defines the one scenario) +- **Multiple scenarios projects:** Used MULTIPLE TIMES (scenario 1, 2, 3...) + +After completion, automatically routes to `page-init/`. + +--- + +### page-init/ +**Reusable page definition workshop** (8 micro-steps) + +Used to define an individual page: +- Page context (determine scenario, page number) +- Page name +- Page purpose/goal +- Entry point(s) +- User mental state at entry +- Desired outcome (business + user goals) +- Page variants (if any) +- Create page folder and initial specification document + +**Usage:** +- **Single page projects:** Used MULTIPLE TIMES (separate pages or variants) +- **Single scenario projects:** Used MULTIPLE TIMES (page 1.1, 1.2, 1.3...) +- **Multiple scenarios projects:** Used MULTIPLE TIMES (page 1.1, 1.2, 2.1, 2.2...) + +The page-init workshop is the fundamental reusable building block for ALL page definitions. + +--- + +## Flow + +### Single Page Projects +``` +step-02-setup-scenario-structure.md + ↓ +page-init/ (page 1) + ↓ +[User can add more pages] + ↓ +page-init/ (page 2) +``` + +### Single Scenario Projects +``` +step-02-setup-scenario-structure.md + ↓ +scenario-init/ (define scenario) + ↓ +page-init/ (page 1.1) + ↓ +[User can add more pages] + ↓ +page-init/ (page 1.2) +``` + +### Multiple Scenarios Projects +``` +step-02-setup-scenario-structure.md + ↓ +scenario-init/ (scenario 1) + ↓ +page-init/ (page 1.1) + ↓ +[User can add more pages to scenario 1] + ↓ +page-init/ (page 1.2) + ↓ +[User can add more scenarios] + ↓ +scenario-init/ (scenario 2) + ↓ +page-init/ (page 2.1) +``` + +--- + +## Key Design Principles + +1. **One question per file** - Prevents agent from skipping steps +2. **Strict sequential flow** - Each step explicitly loads the next +3. **Reusable workshops** - Can be called multiple times as project grows +4. **Clear separation** - Scenario definition vs. page definition +5. **Context-aware** - Workshops adapt based on project structure + +--- + +**Last Updated:** 2025-12-27 + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/page-init-lightweight.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/page-init-lightweight.md new file mode 100644 index 00000000..883701dc --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/page-init-lightweight.md @@ -0,0 +1,327 @@ +# Page Init (Lightweight) + +**Purpose:** Quick page setup - establish context, create structure, ready for iteration + +--- + +## CONTEXT + +**This workflow activates when:** User wants quick page setup without full specification yet. + +**Creates:** Minimal structure (name, purpose, navigation, folders) ready for iteration. + +**Critical:** Navigation links must be established for page comprehension. + +--- + +## STEP 1: PAGE BASICS + +**What's the name of this page?** + +Examples: +- "Start Page" +- "Sign In" +- "Dashboard" +- "User Profile" + +Page name: + + +Store page_name +Generate page_slug from page_name (lowercase, hyphenated) + + +--- + +## STEP 2: PURPOSE & SITUATION + +**What's the PURPOSE of this page?** + +What should this page accomplish? + +Purpose: + +Store page_purpose + +**What's the USER'S SITUATION when they arrive?** + +What just happened? What are they trying to do? + +User situation: + +Store user_situation + +--- + +## STEP 3: SCENARIO CONTEXT + + +**Determine scenario context:** +- Read project structure from wds-workflow-status.yaml +- Check existing scenarios +- Determine page placement + + + + **Which scenario does this page belong to?** + + Existing scenarios: + {{#each scenario in existing_scenarios}} + - {{scenario.number}}: {{scenario.name}} + {{/each}} + + Choose scenario [number] or "new" for a new scenario: + + Store scenario_number + + + + This page will be in your main user flow. + Set scenario_number = 1 + + +--- + +## STEP 4: NAVIGATION FLOW (CRITICAL!) + +**Now let's establish navigation - this is crucial for comprehension!** + + +**Determine page number:** +- Count existing pages in scenario +- Calculate next page number +- Store page_number (e.g., "1.1", "1.2", "2.1") + + +**What page comes BEFORE this one?** + +{{#if existing_pages_in_scenario.length > 0}} +Existing pages: +{{#each page in existing_pages_in_scenario}} +- {{page.number}}: {{page.name}} +{{/each}} + +Type page number, or "none" if this is the first page: +{{else}} +This is the first page in the scenario. Type "none": +{{/if}} + +Previous page: + +Store previous_page + +**What page comes AFTER this one?** + +- If you know: Type the page name (we'll create it next) +- If unsure: Type "TBD" +- If last page: Type "none" + +Next page: + +Store next_page + +--- + +## STEP 5: CREATE STRUCTURE + +**Creating page structure...** + + +**Create folder structure:** + +Path: `4-scenarios/{{scenario_path}}/{{page_number}}-{{page_slug}}/` + +Create: +1. Page folder: `{{page_number}}-{{page_slug}}/` +2. Sketches folder: `{{page_number}}-{{page_slug}}/sketches/` +3. Placeholder document: `{{page_number}}-{{page_slug}}.md` + + + +**Generate placeholder document:** + +File: `4-scenarios/{{scenario_path}}/{{page_number}}-{{page_slug}}/{{page_number}}-{{page_slug}}.md` + +Content: +```markdown +{{#if previous_page != "none"}} +← [{{previous_page}}](../{{previous_page_slug}}/{{previous_page_slug}}.md) +{{/if}} +{{#if next_page != "none" and next_page != "TBD"}} + | [{{next_page}}](../{{next_page_slug}}/{{next_page_slug}}.md) β†’ +{{/if}} +{{#if next_page == "TBD"}} + | Next: TBD +{{/if}} + +![{{page_name}}](sketches/{{page_slug}}-concept.jpg) + +{{#if previous_page != "none"}} +← [{{previous_page}}](../{{previous_page_slug}}/{{previous_page_slug}}.md) +{{/if}} +{{#if next_page != "none" and next_page != "TBD"}} + | [{{next_page}}](../{{next_page_slug}}/{{next_page_slug}}.md) β†’ +{{/if}} + +# {{page_number}} {{page_name}} + +**User Situation:** {{user_situation}} + +**Page Purpose:** {{page_purpose}} + +--- + +## Status + +⚠️ **PLACEHOLDER** - This page needs: +- [ ] Sketch or screenshot +- [ ] Section breakdown +- [ ] Object specifications +- [ ] Component links +- [ ] Interaction definitions +- [ ] States and variants + +--- + +## Navigation Context + +{{#if previous_page != "none"}} +**Previous:** {{previous_page}} +{{else}} +**This is the first page in the scenario** +{{/if}} + +{{#if next_page == "TBD"}} +**Next:** TBD (to be defined) +{{else if next_page != "none"}} +**Next:** {{next_page}} +{{else}} +**This is the last page in the scenario** +{{/if}} + +--- + +## Next Steps + +To complete this page specification: + +1. **Add a sketch**: Place your sketch in `sketches/` folder +2. **Run Page Process Workshop**: Analyze your sketch +3. **Specify sections**: Define all page sections +4. **Specify objects**: Define all interactive elements with Object IDs +5. **Link components**: Connect to design system components +6. **Document states**: Define loading, error, success, empty states +7. **Generate prototype**: Create interactive HTML preview + +--- + +{{#if previous_page != "none"}} +**Previous Step**: ← [{{previous_page}}](../{{previous_page_slug}}/{{previous_page_slug}}.md) +{{/if}} +{{#if next_page != "none" and next_page != "TBD"}} +**Next Step**: β†’ [{{next_page}}](../{{next_page_slug}}/{{next_page_slug}}.md) +{{/if}} + +--- + +_Placeholder created using Whiteport Design Studio (WDS) methodology_ +``` + + +--- + +## STEP 6: UPDATE NAVIGATION + + + + **Update previous page document:** + - Open previous page .md file + - Update "Next" link to point to this page + - Save + + + +--- + +## STEP 7: COMPLETION + +βœ… **Page initialized!** + +**Created:** +- Folder: `{{page_number}}-{{page_slug}}/` +- Document: `{{page_number}}-{{page_slug}}.md` +- Sketches folder: `sketches/` + +**Page details:** +- **Number:** {{page_number}} +- **Name:** {{page_name}} +- **Purpose:** {{page_purpose}} + +**Navigation:** +{{#if previous_page != "none"}} +- Previous: {{previous_page}} βœ… linked +{{else}} +- First page in scenario +{{/if}} +{{#if next_page != "none" and next_page != "TBD"}} +- Next: {{next_page}} βœ… linked +{{else if next_page == "TBD"}} +- Next: TBD +{{else}} +- Last page in scenario +{{/if}} + +--- + +**Next steps:** + +1. **Add your sketch** to `sketches/` folder +2. **Run Page Process Workshop** to analyze it + +Or: + +[A] Add sketch now and analyze +[B] Create another page first +[C] Back to scenario overview + +Choice: + +--- + +## ROUTING + + +Based on user choice: +- [A] β†’ workshop-page-process.md (with this page context) +- [B] β†’ Repeat page-init for next page +- [C] β†’ Return to scenario overview / main menu + + +--- + +## KEY PRINCIPLES + +### βœ… **Navigation is Critical** +- Appears twice (top & after sketch) +- Links to previous/next pages +- Creates navigable flow +- Essential for comprehension + +### βœ… **Lightweight Setup** +- Quick to create +- No detailed specs yet +- Just enough to get started +- Ready for iteration + +### βœ… **Context Captured** +- Name, purpose, situation +- Scenario placement +- Page number assigned +- Flow established + +--- + +**Created:** December 28, 2025 +**Purpose:** Quick page initialization with navigation +**Status:** Ready for WDS Presentation page + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-01-page-context.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-01-page-context.md new file mode 100644 index 00000000..bd6e38eb --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-01-page-context.md @@ -0,0 +1,61 @@ +# Page Init - Entry Point + +**Purpose:** Route user to appropriate page creation workflow + +--- + +## ROUTING + + +**Understand from conversation context:** + +Check what user has said: +- Did they mention having a sketch/wireframe/visualization? +- Did they upload an image file? +- Are they describing a page concept without visual? +- Are they asking about creating/defining a page? + +**Route based on understanding:** + +IF user has sketch/visualization ready: + β†’ Load and execute: `step-02-substeps/page-init/workshop-page-process.md` + └─> Intelligent context detection + └─> New page: Full analysis + └─> Updated page: Change detection & incremental update + +IF user is describing concept without visualization: + β†’ Load and execute: `step-02-substeps/page-init/workshop-page-creation.md` + └─> Define page purpose and concept + └─> Choose visualization method naturally + └─> Create conceptual specification + +IF unclear what user wants: + β†’ Ask natural clarifying question based on context + Example: "Do you have a sketch or wireframe I should look at, or should we define the page concept together?" + + +--- + +## PHILOSOPHY + +**The page is the conceptual entity.** + +It has: +- A purpose (what it accomplishes) +- A user (who it serves) +- Sections (what areas exist) +- Objects (what interactions happen) +- A place in the flow (navigation) + +**Visualization is how we represent the page.** + +Methods include: +- Sketch (hand-drawn or digital) +- Wireframe (tool-based) +- ASCII layout (text-based) +- Verbal description (discussion) +- Reference (based on existing page) + +**Page first. Visualization second.** + +--- diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-02-page-name.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-02-page-name.md new file mode 100644 index 00000000..363295b2 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-02-page-name.md @@ -0,0 +1,26 @@ +# Step 2: Page Name + +--- + +**What's the name of this page?** + +Examples: +- Start Page / Home +- About +- Contact +- Dashboard +- User Profile +- Checkout +- Confirmation + +Page name: + +Store page_name +Generate page_slug from page_name (lowercase, hyphenated) +page_name, page_slug + +--- + +Load and execute: `step-02-substeps/page-init/step-03-page-purpose.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-03-page-purpose.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-03-page-purpose.md new file mode 100644 index 00000000..4889489f --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-03-page-purpose.md @@ -0,0 +1,25 @@ +# Step 3: Page Purpose + +--- + +**What's the purpose of this page?** + +What should this page accomplish? + +Examples: +- Capture user's attention and explain core value +- Collect contact information for lead generation +- Guide user through account setup +- Display personalized dashboard with key metrics +- Allow user to update their profile settings + +Purpose: + +Store page_purpose +page_purpose + +--- + +Load and execute: `step-02-substeps/page-init/step-04-entry-point.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-04-entry-point.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-04-entry-point.md new file mode 100644 index 00000000..5f5524a3 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-04-entry-point.md @@ -0,0 +1,27 @@ +# Step 4: Entry Point + +--- + +**Where do users arrive from?** + +How do users get to this page? + +Examples: +- Google search (external) +- Social media ad (external) +- Email link (external) +- QR code (external) +- Navigation menu (internal) +- Previous page in flow (internal) +- Direct URL (bookmark) + +Entry point(s): + +Store entry_point +entry_point + +--- + +Load and execute: `step-02-substeps/page-init/step-05-mental-state.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-05-mental-state.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-05-mental-state.md new file mode 100644 index 00000000..4f26f74d --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-05-mental-state.md @@ -0,0 +1,22 @@ +# Step 5: Mental State + +--- + +**What's the user's mental state when arriving?** + +Consider: +- What just happened? (trigger) +- What are they hoping for? +- What are they worried about? +- What questions do they have? + +Mental state: + +Store mental_state +mental_state + +--- + +Load and execute: `step-02-substeps/page-init/step-06-desired-outcome.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-06-desired-outcome.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-06-desired-outcome.md new file mode 100644 index 00000000..c490f5f7 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-06-desired-outcome.md @@ -0,0 +1,22 @@ +# Step 6: Desired Outcome + +--- + +**What's the desired outcome?** + +What should happen on this page? + +**Business Goal:** +(What does the business want to achieve?) + +**User Goal:** +(What does the user want to accomplish?) + +Store business_goal and user_goal +business_goal, user_goal + +--- + +Load and execute: `step-02-substeps/page-init/step-07-variants.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-07-variants.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-07-variants.md new file mode 100644 index 00000000..88dd0f1b --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-07-variants.md @@ -0,0 +1,29 @@ +# Step 7: Page Variants + +--- + +**Will you have page variants?** + +For A/B testing, different audiences, or localization? (y/n) + +Store has_variants + + +**How many variants?** + +Number of variants: + +Store variant_count +has_variants, variant_count + + + +Store variant_count = 1 +has_variants, variant_count + + +--- + +Load and execute: `step-02-substeps/page-init/step-08-create-page-structure.md` + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-08-create-page-structure.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-08-create-page-structure.md new file mode 100644 index 00000000..b19a88a3 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/step-08-create-page-structure.md @@ -0,0 +1,141 @@ +# Step 8: Create Page Structure + +--- + + +**Determine page folder path:** + +**For single page projects (no scenarios):** +- Page path: `4-scenarios/{{page_slug}}/` + +**For scenario-based projects:** +- Read scenario_number from context +- Read current_page_index from `scenario-tracking.yaml` +- Calculate page_number: `{{scenario_number}}.{{current_page_index + 1}}` +- Page path: `4-scenarios/{{scenario_number}}-{{scenario-slug}}/{{page_number}}-{{page_slug}}/` + +Store page_path and page_number + + + +**Create physical folder structure:** + +1. Create page directory: `{{page_path}}` +2. Create sketches subdirectory: `{{page_path}}sketches/` +3. If has_variants and variant_count > 1: + - Create variant subdirectories: + - `{{page_path}}variant-a/sketches/` + - `{{page_path}}variant-b/sketches/` + - (etc. for each variant) + +**Generate page specification document:** + +File: `{{page_path}}{{page_number}}-{{page_slug}}.md` + +Content: +```markdown +# {{page_number}} {{page_name}} + +{{#if scenario_name}} +**Scenario:** {{scenario_name}} +{{/if}} +**Page Number:** {{page_number}} +**Created:** {{date}} +**Method:** Whiteport Design Studio (WDS) + +--- + +## Overview + +**Page Purpose:** {{page_purpose}} + +**Entry Points:** +- {{entry_point}} + +**User Mental State:** +{{mental_state}} + +**Main User Goal:** {{user_goal}} + +**Business Goal:** {{business_goal}} + +**URL/Route:** [To be determined] + +--- + +{{#if scenario_name}} +## Journey Context + +{{#if total_pages}} +This is **page {{current_page_index + 1}} of {{total_pages}}** in the "{{scenario_name}}" scenario. +{{/if}} + +{{#if next_page}} +**Next Page:** {{next_page}} +{{/if}} + +{{#if scenario_goal}} +**Scenario Goal:** {{scenario_goal}} +{{/if}} + +--- +{{/if}} + +## Design Sections + +[To be filled during sketch analysis and specification] + +--- + +## Next Steps + +1. Add sketches to `sketches/` folder +2. Run substep 4B (Sketch Analysis) to analyze sketches +3. Continue with substep 4C (Specification) to complete full details +4. Generate prototype (substep 4D) +5. Extract requirements (substep 4E) + +--- + +_This starter document was generated from the page initialization workshop. Complete the full specification using the 4A-4E design process._ +``` + +**Update scenario-tracking.yaml (if applicable):** + +If this is a scenario-based project: +- Update current_page_index: increment by 1 +- Update page status in pages_list + + +βœ… **Page structure created:** + +**Page:** {{page_number}} {{page_name}} + +**Folder:** +- `{{page_path}}` + +**Purpose:** {{page_purpose}} + +{{#if has_variants}} +**Variants:** {{variant_count}} +{{/if}} + +**Next Steps:** +- Add sketches to the sketches folder +- Continue with page design (Step 3) + +Ready to design! 🎨 + +--- + +[C] Continue to Step 3 (Page Design) +[A] Add Another Page +[S] Add Another Scenario (if multi-scenario project) + + +- If user selects [C], load `steps/step-03-design-page.md` +- If user selects [A], reload `step-02-substeps/page-init/step-01-page-context.md` +- If user selects [S], load `step-02-substeps/scenario-init/step-01-core-feature.md` + + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-c-placeholder-pages.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-c-placeholder-pages.md new file mode 100644 index 00000000..98d77526 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-c-placeholder-pages.md @@ -0,0 +1,406 @@ +# Workshop C: Placeholder Pages + +**Trigger:** User wants to quickly map out a scenario structure without full specifications + +--- + +## WORKSHOP GOAL + +Rapidly create placeholder page documents with: +- Navigation structure +- Page names +- Page purposes +- Scenario context + +This gives clarity to the overall flow before diving into detailed specifications. + +--- + +## PHASE 1: TRIGGER DETECTION + +**Let's map out your scenario structure!** + +Sometimes it helps to create placeholder pages first - just the names, purposes, and navigation - before diving into detailed specifications. This gives you a clear roadmap. + +Would you like to: +- Create placeholders for a whole scenario flow +- Add individual placeholder pages as you plan + +Let's start! πŸ“‹ + +--- + +## PHASE 2: SCENARIO CONTEXT + + +**Determine scenario context:** +- Read project structure from wds-workflow-status.yaml +- Check existing scenarios +- Determine if working with existing or new scenario + + +**Which scenario are we mapping out?** + +{{#if existing_scenarios}} +Existing scenarios: +{{#each scenario in existing_scenarios}} +- {{scenario.number}}: {{scenario.name}} +{{/each}} + +Type scenario number or "new" for a new scenario: +{{else}} +This will be your first scenario. What should we call it? + +Scenario name: +{{/if}} + + +Store scenario_number and scenario_name + + +--- + +## PHASE 3: FLOW MAPPING + +**Great! Let's map out the pages in this flow.** + +Think about the user journey through "{{scenario_name}}" + +**How many pages will be in this scenario?** + +Think about the steps a user goes through: +- Entry point / first page +- Middle steps (actions, decisions, inputs) +- Completion / exit page + +Number of pages: + +Store pages_count + +--- + +## PHASE 4: PAGE ENUMERATION + +**Perfect! Let's name and define each page.** + +I'll guide you through {{pages_count}} pages... + +For page_index from 1 to pages_count, run this loop: + +--- + +### Page {{page_index}} of {{pages_count}} + + + +**What should we call this page?** + +Examples: +- "Start Page" / "Home" +- "Sign In" +- "User Profile" +- "Checkout" +- "Confirmation" + +Page name: + + +Store page_name +Generate page_slug +Calculate page_number (scenario.page_index) + + +**What's the PURPOSE of "{{page_name}}"?** + +In 1-2 sentences: +- What does the user accomplish here? +- What happens on this page? + +Purpose: + +Store page_purpose + +**What's the USER'S SITUATION when they arrive?** + +What just happened? What are they trying to do? + +User situation: + +Store user_situation + +βœ“ **Page {{page_index}} defined:** + +{{page_number}}-{{page_slug}}: {{page_name}} +- Purpose: {{page_purpose}} +- Situation: {{user_situation}} + +Continue to next page + +--- + +## PHASE 5: FLOW REVIEW + +**Here's your complete scenario flow:** + +**Scenario {{scenario_number}}: {{scenario_name}}** + +{{#each page in pages_list}} +{{@index + 1}}. **{{page.number}}-{{page.slug}}** - {{page.name}} + Purpose: {{page.purpose}} + User: {{page.situation}} + +{{/each}} + +Does this flow make sense? Any pages missing or in wrong order? + +**Review the flow:** + +- Type "good" to proceed +- Type "add" to insert a page +- Type "remove N" to remove page N +- Type "move N to M" to reorder + +Action: + + +Process user adjustments: +- Add pages if needed +- Remove pages if requested +- Renumber pages after changes + + +--- + +## PHASE 6: GENERATE PLACEHOLDER DOCUMENTS + +**Perfect! Creating your placeholder pages now...** + +Generating {{pages_list.length}} page documents... + + +For each page in pages_list: + +**Create folder structure:** +`4-scenarios/{{scenario_path}}/{{page.number}}-{{page.slug}}/` +`4-scenarios/{{scenario_path}}/{{page.number}}-{{page.slug}}/sketches/` + +**Generate placeholder document:** + +File: `4-scenarios/{{scenario_path}}/{{page.number}}-{{page.slug}}/{{page.number}}-{{page.slug}}.md` + +Content: +```markdown +{{#if @index > 0}} +← [{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}](../{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}/{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}.md) +{{/if}} +{{#if @index < pages_list.length - 1}} +| [{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}](../{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}/{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}.md) β†’ +{{/if}} + +# {{page.number}} {{page.name}} + +**User Situation:** {{page.situation}} + +**Page Purpose:** {{page.purpose}} + +--- + +## Status + +⚠️ **PLACEHOLDER** - This page needs: +- [ ] Sketch or screenshot +- [ ] Section breakdown +- [ ] Object specifications +- [ ] Component links +- [ ] Interaction definitions +- [ ] States and variants + +--- + +## Next Steps + +To complete this page specification: + +1. **Add a sketch**: Place sketch in `sketches/` folder +2. **Run Workshop A**: Sketch Analysis Workshop to break down the visual +3. **Specify objects**: Define all interactive elements with Object IDs +4. **Link components**: Connect to design system components +5. **Document states**: Define loading, error, success, empty states + +--- + +{{#if @index > 0}} +**Previous Step**: ← [{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}](../{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}/{{pages_list[@index - 1].number}}-{{pages_list[@index - 1].slug}}.md) +{{/if}} +{{#if @index < pages_list.length - 1}} +**Next Step**: β†’ [{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}](../{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}/{{pages_list[@index + 1].number}}-{{pages_list[@index + 1].slug}}.md) +{{/if}} + +--- + +_Placeholder created using Whiteport Design Studio (WDS) methodology_ +``` + + + +**Create scenario overview document:** + +File: `4-scenarios/{{scenario_path}}/00-{{scenario_slug}}-scenario.md` + +Content: +```markdown +# {{scenario_number}} {{scenario_name}} - Scenario Overview + +**Project**: {{project_name}} +**Date Created**: {{date}} +**Last Updated**: {{date}} + +## Scenario Overview + +[Brief description of this scenario - to be filled in] + +## Scenario Steps + +{{#each page in pages_list}} +### **{{page.number}} {{page.name}}** +**Purpose**: {{page.purpose}} +**Status**: ⚠️ Placeholder +**Files**: [{{page.number}}-{{page.slug}}.md]({{page.number}}-{{page.slug}}/{{page.number}}-{{page.slug}}.md) + +{{/each}} + +## User Journey Flow + +``` +{{#each page in pages_list}} +{{page.number}}-{{page.slug}}{{#unless @last}} β†’ {{/unless}} +{{/each}} +``` + +## Status + +{{pages_list.length}} placeholder pages created. Each page needs: +- Sketch or visual concept +- Detailed specifications +- Object definitions +- Component links + +--- + +_Created using Whiteport Design Studio (WDS) methodology_ +``` + + + +**Create scenario tracking file:** + +File: `4-scenarios/{{scenario_path}}/scenario-tracking.yaml` + +Content: +```yaml +scenario_number: {{scenario_number}} +scenario_name: "{{scenario_name}}" +pages_list: +{{#each page in pages_list}} + - name: "{{page.name}}" + slug: "{{page.slug}}" + page_number: "{{page.number}}" + purpose: "{{page.purpose}}" + status: "placeholder" +{{/each}} +current_page_index: 0 +total_pages: {{pages_list.length}} +created_date: "{{date}}" +``` + + +--- + +## PHASE 7: COMPLETION SUMMARY + +βœ… **Placeholder pages created!** + +**Scenario:** {{scenario_number}} - {{scenario_name}} + +**Created:** +- {{pages_list.length}} page folders with navigation +- {{pages_list.length}} placeholder documents +- 1 scenario overview document +- 1 scenario tracking file + +**File structure:** +``` +4-scenarios/ + {{scenario_path}}/ + 00-{{scenario_slug}}-scenario.md + scenario-tracking.yaml +{{#each page in pages_list}} + {{page.number}}-{{page.slug}}/ + {{page.number}}-{{page.slug}}.md ⚠️ PLACEHOLDER + sketches/ +{{/each}} +``` + +**Your scenario flow:** +``` +{{#each page in pages_list}} +{{page.number}}-{{page.slug}}: {{page.name}} +{{/each}} +``` + +--- + +## Next Steps + +You can now: + +1. **Add sketches** - Upload visuals for each page +2. **Complete specifications** - Run Workshop A (Sketch Analysis) for each page +3. **Add more pages** - Come back and add pages to this scenario +4. **Create another scenario** - Start a new user journey + +**Ready to work on a specific page?** + +Pick a page to work on: +{{#each page in pages_list}} +[{{@index + 1}}] {{page.name}} +{{/each}} +[N] Add another scenario +[D] Done for now + +Choice: + +--- + +## ROUTING + + +**Based on user choice:** +- If user picks a page number β†’ Route to Workshop B (Sketch Creation) for that page +- If user selects [N] β†’ Route to scenario-init workshop +- If user selects [D] β†’ Return to main UX design menu + + +--- + +## NOTES FOR IMPLEMENTATION + +**Advantages of placeholders:** +- Quick mapping of entire flow +- Clear navigation before details +- Easy to see gaps or redundancies +- Can be reviewed by stakeholders early +- Team can work on different pages in parallel + +**When to use:** +- New projects starting from scratch +- Complex multi-page scenarios +- When need for early stakeholder review +- Before diving into visual design + +**When NOT to use:** +- Single page projects +- When sketch already exists (use Workshop A) +- Small modifications to existing flow + + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-creation.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-creation.md new file mode 100644 index 00000000..76d9faa6 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-creation.md @@ -0,0 +1,578 @@ +# Workshop: Page Creation (Discussion-Based) + +**Purpose:** Define a page concept through conversation, create visualization method based on need + +--- + +## CONTEXT + +**This workflow activates when:** User needs to define a page concept but doesn't have a visualization yet. + +**Goal:** Define what the page IS, then choose how to visualize it. + +**Philosophy:** The page (concept) comes first. Visualization (method) follows. + +--- + +## STEP 1: PAGE CONCEPT + +**What is this page about?** + +Tell me in your own words: +- What is this page called? +- What should it accomplish? +- Who uses it and why? + +Describe the page concept: + +Store page_concept + +--- + +## STEP 2: VISUALIZATION PREFERENCE + +**How would you like to visualize this page?** + +[A] I'll draw a sketch (physical/digital) and upload it +[B] Let's describe it verbally - I'll specify sections through discussion +[C] Create a simple ASCII layout together +[D] It's similar to another page I can reference +[E] Generate HTML prototype - I'll screenshot it for documentation + +Choice: + +Store visualization_method + +--- + +## NOTE ON OPTION E (HTML Prototype) + +**This is the bridge method:** +``` +Concept β†’ HTML Code β†’ Render β†’ Screenshot β†’ Documentation +``` + +**Benefits:** +- βœ… Professional, pixel-perfect visualization +- βœ… Tests actual layout behavior +- βœ… Responsive/mobile preview available +- βœ… Can iterate quickly +- βœ… Screenshot becomes the "sketch" +- βœ… Prototype is already built! + +**Perfect for:** +- Users who can describe but can't draw +- Testing responsive layouts +- Quick professional mockups +- When prototype comes before final design + +--- + +## FLOW A: SKETCH PATH + + + +**Perfect! Let's set up for your sketch.** + +I'll create: +1. Page placeholder with navigation +2. Sketches folder ready for upload +3. Basic page structure + +When you're ready, upload your sketch and we'll analyze it together using the Page Process Workshop. + + +1. Run page-init-lightweight.md to create structure +2. User uploads sketch when ready +3. Return to workshop-page-process.md for analysis + + + + +--- + +## FLOW B: VERBAL SPECIFICATION + + + +**Great! Let's build the page concept through conversation.** + +We'll define: +- Page sections (what areas exist?) +- Section purposes (why does each section exist?) +- Key objects (what interactive elements?) +- User flow (how do they move through the page?) + +This creates a conceptual specification - the page where concept meets description. + +### SUBSTEP B1: IDENTIFY SECTIONS + +**What are the main SECTIONS of this page?** + +Think about areas/blocks, like: +- Header/Navigation +- Hero/Banner +- Content areas +- Forms +- Footer + +List the sections from top to bottom: + +Store sections_list + +### SUBSTEP B2: SECTION PURPOSES + +**Now let's define each section's purpose:** + + +For each section in sections_list: + + **{{section.name}}** + + What is the PURPOSE of this section? + - What should the user understand/do here? + - Why does this section exist? + + Purpose: + + + Store section.purpose +End + + +### SUBSTEP B3: KEY OBJECTS + +**What are the KEY INTERACTIVE OBJECTS on this page?** + +Think about: +- Buttons (CTAs, actions) +- Forms (inputs, selectors) +- Links (navigation, external) +- Media (images, videos) + +List the most important interactive elements: + +Store key_objects + +### SUBSTEP B4: USER FLOW + +**How does the user move through this page?** + +- Where do they enter? +- What's their first action? +- What's the desired outcome? +- Where do they go next? + +Describe the flow: + +Store user_flow + +### SUBSTEP B5: GENERATE SPECIFICATION + +**Creating conceptual specification...** + + +Generate page specification document: +- Page name and purpose +- Navigation (prev/next) +- For each section: + - Section name + - Section purpose + - Status: "CONCEPTUAL - Needs visualization" +- For each key object: + - Object name + - Object type + - Object purpose + - Status: "CONCEPTUAL - Needs specification" +- User flow description +- Next steps: "Create visualization (sketch/wireframe)" + +Save to: 4-scenarios/{{scenario_path}}/{{page_number}}-{{page_slug}}/{{page_number}}-{{page_slug}}.md + + +βœ… **Conceptual page specification created!** + +**What we defined:** +- {{sections_list.length}} sections with purposes +- {{key_objects.length}} key interactive objects +- Complete user flow + +**Status:** CONCEPTUAL - Ready for visualization + +**Next steps:** +1. Create sketch/wireframe based on this concept +2. Upload visualization +3. Run Page Process Workshop to enhance specification + +Or: + +[A] Create ASCII layout now (quick visual) +[B] Done - I'll create sketch later +[C] Actually, let's refine the concept more + +Choice: + + + +--- + +## FLOW E: GENERATE HTML PROTOTYPE + + + +**Perfect! Let's generate an HTML prototype based on your concept.** + +This creates a working page that you can: +- View in browser +- Screenshot for documentation +- Test responsive behavior +- Use as starting point for development + +The screenshot becomes your "sketch" for the specification. + +### SUBSTEP E1: DEFINE BASIC STRUCTURE + +**Based on your page concept:** + +**Page:** {{page_name}} +**Sections:** {{sections_list}} +**Key Objects:** {{key_objects}} + +I'll generate a clean HTML prototype with: +- Semantic HTML structure +- Basic Tailwind CSS styling (or vanilla CSS) +- Placeholder content based on your descriptions +- Responsive layout +- Interactive elements (buttons, forms, etc.) + +**Any specific styling preferences?** + +[A] Clean, minimal (default) +[B] Modern SaaS style +[C] Professional/corporate +[D] Creative/bold +[E] Match an existing site (describe) + +Styling: + +Store styling_preference + +### SUBSTEP E2: GENERATE HTML + + +**Generate HTML prototype:** + +1. Create semantic HTML structure for each section +2. Add Tailwind CSS classes (or vanilla CSS) +3. Include placeholder content from user's descriptions +4. Add interactive elements with proper attributes +5. Make responsive (mobile-first) +6. Include basic states (hover, focus, etc.) + +File: `prototypes/{{page_slug}}-prototype.html` + +Template structure: +```html + + + + + + {{page_name}} - Prototype + + + + + {{#each section in sections_list}} +
    + +
    + {{/each}} + + +``` + +Save to: `4-scenarios/{{scenario_path}}/{{page_number}}-{{page_slug}}/prototypes/` +
    + +### SUBSTEP E3: VIEW AND CAPTURE + +**Prototype generated!** πŸŽ‰ + +**File location:** +`4-scenarios/{{scenario_path}}/{{page_number}}-{{page_slug}}/prototypes/{{page_slug}}-prototype.html` + +**Next steps:** + +1. **Open in browser** - Double-click the HTML file +2. **Review the layout** - Does it match your vision? +3. **Test responsive** - Resize browser window +4. **Take screenshots:** + - Desktop view (full page) + - Mobile view (if needed) + - Key sections (close-ups) +5. **Save screenshots** to `sketches/` folder + +**Screenshot naming:** +- `{{page_slug}}-desktop.jpg` - Full desktop view +- `{{page_slug}}-mobile.jpg` - Mobile view +- `{{page_slug}}-section-name.jpg` - Section close-ups + +**Ready to capture screenshots?** + +Once you've saved the screenshots, type "done" and I'll analyze them: + +Status: + +Wait for user confirmation + +### SUBSTEP E4: ITERATE IF NEEDED + +**How does the prototype look?** + +[A] Perfect - I've captured screenshots +[B] Need adjustments - let me describe changes +[C] Completely different direction - let's revise + +Choice: + + + + User should have screenshots in sketches/ folder + Route to: workshop-page-process.md for analysis + + + + + What changes are needed? + + Update HTML prototype based on feedback + Regenerate sections as needed + Return to SUBSTEP E3 (view and capture) + + + + + Return to STEP 1: PAGE CONCEPT to redefine + + +
    + +--- + + + +**Let's create a simple ASCII layout together.** + +⚠️ **Note:** ASCII is a last resort - sketches are much better for capturing design intent! + +We'll create a basic box-and-text layout to show structure. + +**What are the main sections from top to bottom?** + +Example: +- Header +- Hero +- Features (3 columns) +- CTA +- Footer + +List sections: + +Store sections_for_ascii + + +Generate ASCII layout: + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ [HEADER] β”‚ +β”‚ Logo | Nav | Contact β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ β”‚ +β”‚ [HERO SECTION] β”‚ +β”‚ β”‚ +β”‚ Headline Goes Here β”‚ +β”‚ Subheadline text here β”‚ +β”‚ β”‚ +β”‚ [CTA Button] β”‚ +β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ β”‚ β”‚ β”‚ +β”‚ [Feature] β”‚ [Feature] β”‚ [Feature] β”‚ +β”‚ 1 β”‚ 2 β”‚ 3 β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ Icon β”‚ Icon β”‚ Icon β”‚ +β”‚ Text β”‚ Text β”‚ Text β”‚ +β”‚ β”‚ β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + +... (for each section) +``` + +Save as conceptual specification with ASCII visualization + + +βœ… **ASCII layout created!** + +⚠️ **Remember:** This is a rough structural guide. + +**Recommended next steps:** +1. Use this ASCII as a reference +2. Create a proper sketch/wireframe +3. Upload and run Page Process Workshop + +**ASCII is helpful for structure, but lacks:** +- Visual hierarchy +- Spacing and proportions +- Typography details +- Color and visual design +- Actual content flow + +Ready to move forward? + + + +--- + +## FLOW D: REFERENCE PAGE + + + +**Which page is this similar to?** + +Provide: +- Page name or URL +- What file path (if internal project) +- Or description of reference page + +Reference: + +Store reference_page + +**What are the KEY DIFFERENCES from the reference?** + +What changes from the reference page? + +Differences: + +Store differences + +**Creating page based on reference...** + + +If internal reference exists: + 1. Copy reference specification structure + 2. Update with differences + 3. Mark sections that need updates + 4. Preserve navigation pattern + +If external reference: + 1. Describe reference structure + 2. Note differences + 3. Create conceptual specification + 4. Recommend creating sketch showing changes + +Generate specification document + + +βœ… **Reference-based page specification created!** + +**Based on:** {{reference_page}} + +**Key differences noted:** {{differences}} + +**Next steps:** +- Review generated specification +- Create sketch showing unique elements +- Run Page Process Workshop to refine + +Ready? + + + +--- + +## COMPLETION + +**Page concept defined!** 🎯 + +**Page:** {{page_name}} +**Method:** {{visualization_method_description}} +**Status:** +{{#if has_visualization}} +- βœ… Conceptual specification complete +- ⏳ Visualization pending +{{else}} +- βœ… Conceptual specification complete +- βœ… Visualization method defined +{{/if}} + +**The page is the place where visualization meets specification.** + +**What would you like to do next?** + +[A] Create/upload sketch for this page +[B] Create another page +[C] Review what we've created +[D] Back to scenario overview + +Choice: + +--- + +## KEY PHILOSOPHY + +### βœ… **Page-Centric Thinking** + +The **page** is the conceptual entity: +- Has a purpose +- Serves users +- Contains sections +- Has interactive objects +- Exists in a flow + +The **visualization** is one representation: +- Sketch (preferred) +- Wireframe +- ASCII (last resort) +- Verbal description +- Reference to similar page + +**The page comes first. Visualization follows.** + +### βœ… **Flexible Methods** + +Different projects need different approaches: +- Early concept β†’ Verbal/ASCII β†’ Sketch later +- Clear vision β†’ Sketch directly +- Existing patterns β†’ Reference + differences +- Iterative β†’ Mix of methods + +**The workshop adapts to YOUR process.** + +--- + +## INTEGRATION + +This workshop creates: +1. **Conceptual page specification** (always) +2. **Placeholder for visualization** (always) +3. **Guidance for next steps** (always) + +Next workshops use: +- **workshop-page-process.md** - When sketch is ready +- **page-init-lightweight.md** - For quick structure +- **4b-sketch-analysis.md** - For detailed analysis + +--- + +**Created:** December 28, 2025 +**Purpose:** Define page concept, choose visualization method +**Philosophy:** Page first, visualization second +**Status:** Ready for use + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-process.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-process.md new file mode 100644 index 00000000..617fc56a --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/page-init/workshop-page-process.md @@ -0,0 +1,333 @@ +# Page Process Workshop + +**Purpose:** Intelligent sketch analysis with context detection - handles both new and updated sketches + +--- + +## CONTEXT + +**This workflow activates when:** User has a sketch/visualization ready to analyze. + +**Intelligence:** Detects if this is a new page or update to existing specification. + +**Behavior:** +- New page β†’ Full analysis +- Updated page β†’ Change detection, incremental update +- Partial completion β†’ Specify ready sections, mark TBD + +--- + +## STEP 1: CONTEXT DETECTION + + +**Determine page context:** + +1. Read current page specification (if exists) +2. Check for existing sketch versions +3. Identify project structure (scenarios, pages) +4. Store context information + + + + **This is the first sketch for this page!** + + Let me analyze what you've drawn and create the initial specification. + + Route to: `substeps/4b-sketch-analysis.md` (existing workflow) + + + + **I see we already have specifications for this page.** + + Let me compare this sketch to what we have... + + Proceed to STEP 2: Change Detection + + +--- + +## STEP 2: CHANGE DETECTION (For Existing Pages) + + +**Compare new sketch to existing specifications:** + +1. Load existing specification document +2. Identify which sections are already specified +3. Analyze new sketch for: + - Unchanged sections + - Modified sections + - New sections added + - Removed sections + - TBD sections now complete + - Complete sections now TBD + +4. Calculate confidence for each comparison + + +**Comparison Results:** + +{{#if has_changes}} +πŸ” **Changes detected:** + +{{#if unchanged_sections.length > 0}} +βœ… **Unchanged sections** ({{unchanged_sections.length}}): +{{#each section in unchanged_sections}} +- {{section.name}} +{{/each}} +{{/if}} + +{{#if modified_sections.length > 0}} +✏️ **Modified sections** ({{modified_sections.length}}): +{{#each section in modified_sections}} +- {{section.name}}: {{section.change_description}} +{{/each}} +{{/if}} + +{{#if new_sections.length > 0}} +βž• **New sections added** ({{new_sections.length}}): +{{#each section in new_sections}} +- {{section.name}}: {{section.description}} +{{/each}} +{{/if}} + +{{#if completed_sections.length > 0}} +✨ **TBD sections now complete** ({{completed_sections.length}}): +{{#each section in completed_sections}} +- {{section.name}}: Ready to specify +{{/each}} +{{/if}} + +{{#if removed_sections.length > 0}} +⚠️ **Sections removed** ({{removed_sections.length}}): +{{#each section in removed_sections}} +- {{section.name}} +{{/each}} +{{/if}} + +{{else}} +βœ… **No changes detected** + +This sketch appears identical to the existing specification. Are you sure you wanted to upload a new version? +{{/if}} + + + +--- + +## STEP 3: UPDATE STRATEGY + + + +**How would you like to proceed?** + +{{#if modified_sections.length > 0 or new_sections.length > 0 or completed_sections.length > 0}} +[A] Update all changed/new/completed sections +[B] Pick specific sections to update +[C] Show me detailed comparison first +[D] Actually, this is the same - cancel +{{else if removed_sections.length > 0}} +[A] Remove deleted sections from spec +[B] Keep them marked as "removed from design" +[C] Cancel - I'll fix the sketch +{{/if}} + +Choice: + +Store user_choice + + + +--- + +## STEP 4A: UPDATE ALL (If user chose A) + + + +**Updating all changed sections:** + +I'll process: +{{#if modified_sections.length > 0}} +- {{modified_sections.length}} modified sections +{{/if}} +{{#if new_sections.length > 0}} +- {{new_sections.length}} new sections +{{/if}} +{{#if completed_sections.length > 0}} +- {{completed_sections.length}} completed sections +{{/if}} +{{#if removed_sections.length > 0}} +- {{removed_sections.length}} removed sections +{{/if}} + +**Preserving:** +{{#each section in unchanged_sections}} +- {{section.name}} +{{/each}} + +Ready to analyze sections? + + +For each section in (modified_sections + new_sections + completed_sections): + Run 4b-sketch-analysis.md workflow for that section only + Update specification document + Preserve unchanged sections +End + + + + +--- + +## STEP 4B: SELECTIVE UPDATE (If user chose B) + + + +**Which sections should I update?** + +{{#each section in (modified_sections + new_sections + completed_sections)}} +[{{@index + 1}}] {{section.name}} - {{section.change_type}} +{{/each}} + +Enter numbers separated by commas (e.g., 1,3,5): + + +Parse selected_sections +For each selected section: + Run 4b-sketch-analysis.md workflow for that section + Update specification document +End + + + + +--- + +## STEP 4C: DETAILED COMPARISON (If user chose C) + + + +**Detailed Section-by-Section Comparison:** + +{{#each section in modified_sections}} + +--- + +### {{section.name}} + +**Current specification:** +{{section.current_spec_summary}} + +**New sketch shows:** +{{section.new_sketch_summary}} + +**Detected changes:** +{{#each change in section.changes}} +- {{change.description}} +{{/each}} + +**Confidence:** {{section.confidence}}% + +--- +{{/each}} + +After reviewing, what would you like to do? + +[A] Update all +[B] Pick specific sections +[C] Cancel + +Return to STEP 3 with user's choice + + + +--- + +## STEP 5: COMPLETION + +βœ… **Page specification updated!** + +**Summary:** +{{#if updated_count > 0}} +- {{updated_count}} sections updated +{{/if}} +{{#if added_count > 0}} +- {{added_count}} sections added +{{/if}} +{{#if preserved_count > 0}} +- {{preserved_count}} sections preserved (unchanged) +{{/if}} +{{#if removed_count > 0}} +- {{removed_count}} sections removed +{{/if}} + +**Updated file:** `{{page_spec_path}}` + +**Sketch saved to:** `{{sketch_path}}` + +**Next steps:** +- Review the updated specification +- Generate updated prototype (if needed) +- Continue to next page or scenario + +Would you like to: +[A] Generate HTML prototype +[B] Add another page +[C] Update another section +[D] Done with this page + +Choice: + +--- + +## ROUTING + + +Based on user choice: +- [A] β†’ Load prototype generation workflow +- [B] β†’ Return to page-init/step-01-page-context.md +- [C] β†’ Return to STEP 3 (pick sections) +- [D] β†’ Return to main UX design menu + + +--- + +## KEY FEATURES + +### βœ… **Intelligent Context Detection** +- Automatically knows if new or update +- Compares sketches to existing specs +- Identifies unchanged sections + +### βœ… **Incremental Updates** +- Only updates what changed +- Preserves existing work +- No data loss + +### βœ… **Change Confidence** +- Shows confidence level per change +- Lets user verify before processing +- Reduces errors + +### βœ… **Flexible Control** +- Update all or select specific +- See detailed comparison +- Cancel anytime + +--- + +## INTEGRATION WITH EXISTING SYSTEM + +This workshop uses: +- **4b-sketch-analysis.md** - For actual section analysis +- **SKETCH-TEXT-ANALYSIS-GUIDE.md** - For reading text markers +- **page-specification.template.md** - For document structure +- **object-types/*.md** - For component specifications + +**It's a smart router that preserves your existing workflows!** + +--- + +**Created:** December 28, 2025 +**For:** Iterative page specification workflow +**Status:** Ready to test with WDS Presentation page + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-01-core-feature.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-01-core-feature.md new file mode 100644 index 00000000..989cb0a8 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-01-core-feature.md @@ -0,0 +1,26 @@ +# Step 1: Core Feature + +**Scenario Discovery - Question 1 of 5** + +--- + +**Let's find the natural starting point for this scenario.** + +Looking at your Trigger Map and project goals, we need to identify what to design. + +**What feature or experience should this scenario cover?** + +Think about: +- Which feature delivers the most value to your primary target group? +- What's the core experience that serves your business goals? +- What's the "happy path" users need? + +Feature/Experience: + +Store core_feature +core_feature + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-02-entry-point.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-02-entry-point.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-02-entry-point.md new file mode 100644 index 00000000..e5c4fdbc --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-02-entry-point.md @@ -0,0 +1,26 @@ +# Step 2: Entry Point + +**Scenario Discovery - Question 2 of 5** + +--- + +**Where does the user first encounter this?** + +What's their entry point? +- Google search? +- Friend recommendation? +- App store? +- Direct navigation (logged in)? +- Internal link from another feature? +- Email/push notification? +- External integration? + +Entry point: + +Store entry_point +entry_point + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-03-mental-state.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-03-mental-state.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-03-mental-state.md new file mode 100644 index 00000000..3f13a3c8 --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-03-mental-state.md @@ -0,0 +1,24 @@ +# Step 3: Mental State + +**Scenario Discovery - Question 3 of 5** + +--- + +**What's their mental state at this moment?** + +When they arrive, how are they feeling? + +Consider: +- **What just happened?** (trigger moment that brings them here) +- **What are they hoping for?** (desired outcome) +- **What are they worried about?** (fears, concerns, obstacles) + +Mental state: + +Store mental_state +mental_state + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-04-mutual-success.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-04-mutual-success.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-04-mutual-success.md new file mode 100644 index 00000000..3f7f0bbe --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-04-mutual-success.md @@ -0,0 +1,27 @@ +# Step 4: Mutual Success + +**Scenario Discovery - Question 4 of 5** + +--- + +**What does mutual success look like?** + +Define success for both sides: + +**For the business:** [what outcome/action/metric] +Examples: subscription purchased, task completed, data submitted + +**For the user:** [what state/feeling/outcome they achieve] +Examples: problem solved, goal achieved, confidence gained + +Success definition: + +Store business_success +Store user_success +business_success +user_success + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-05-shortest-path.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-05-shortest-path.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-05-shortest-path.md new file mode 100644 index 00000000..b0447a0c --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-05-shortest-path.md @@ -0,0 +1,39 @@ +# Step 5: Shortest Path + +**Scenario Discovery - Question 5 of 5** + +--- + +**Now let's map the shortest possible journey** from: + +**START:** {{entry_point}} ({{mental_state}}) +**END:** {{business_success}} + {{user_success}} + +What's the absolute minimum path? No extra steps, just the essentials that move the user toward mutual success. + +**List the critical pages/steps in order:** + +Example for SaaS onboarding: +1. Landing page - understand solution +2. Sign up - commit to trying +3. Welcome setup - quick configuration +4. First success moment - proof it works +5. Dashboard - ongoing use + +Example for mobile app: +1. App store page - decide to install +2. Welcome screen - understand purpose +3. Permission requests - enable features +4. Quick tutorial - learn basics +5. First action - achieve something + +Your path: + +Parse pages from user input +Store pages_list +pages_list + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-06-scenario-name.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-06-scenario-name.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-06-scenario-name.md new file mode 100644 index 00000000..1b1ee47a --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-06-scenario-name.md @@ -0,0 +1,24 @@ +# Step 6: Scenario Name + +--- + +**What should we call this scenario?** + +Make it descriptive and outcome-focused: + +Examples: +- "User Onboarding to First Success" +- "Purchase Journey" +- "Problem Resolution Flow" +- "Content Creation Workflow" +- "Admin Setup Process" + +Scenario name: + +Store scenario_name +scenario_name + +--- + +Load and execute: `step-02-substeps/flow-c-multiple-scenarios/step-07-create-structure.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-07-create-scenario-folder.md b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-07-create-scenario-folder.md new file mode 100644 index 00000000..8ff31ffa --- /dev/null +++ b/src/modules/wds/workflows/4-ux-design/steps/step-02-substeps/scenario-init/step-07-create-scenario-folder.md @@ -0,0 +1,145 @@ +# Step 7: Create Structure + +--- + + +**Determine scenario number:** +- Count existing scenario folders in `4-scenarios/` +- If none exist, scenario_num = 1 +- Otherwise, scenario_num = (highest number + 1) +- Store scenario_num + + + +**Create physical folder structure:** + +1. Create `4-scenarios/{{scenario_num}}-{{scenario-slug}}/` directory + +**Generate 00-scenario-overview.md:** + +File: `4-scenarios/{{scenario_num}}-{{scenario-slug}}/00-scenario-overview.md` + +Content: +```markdown +# Scenario {{scenario_num}}: {{scenario_name}} + +**Project Structure:** Multiple scenarios + +--- + +## Core Feature + +{{core_feature}} + +--- + +## User Journey + +### Entry Point + +{{entry_point}} + +### Mental State + +{{mental_state}} + +When users arrive, they are feeling: +- **Trigger:** [what just happened] +- **Hope:** [what they're hoping for] +- **Worry:** [what they're worried about] + +--- + +## Success Goals + +### Business Success + +{{business_success}} + +### User Success + +{{user_success}} + +--- + +## Shortest Path + +{{#each page in pages_list}} +{{@index + 1}}. **{{page.name}}** - {{page.description}} +{{/each}} + +--- + +## Pages in This Scenario + +{{#each page in pages_list}} +- `{{scenario_num}}.{{@index + 1}}-{{page.slug}}/` +{{/each}} + +--- + +## Trigger Map Connections + +[Link to relevant personas and driving forces from Trigger Map] + +--- + +**Created:** {{date}} +**Status:** Ready for design +``` + +**Generate scenario-tracking.yaml:** + +File: `4-scenarios/{{scenario_num}}-{{scenario-slug}}/scenario-tracking.yaml` + +Content: +```yaml +scenario_number: {{scenario_num}} +scenario_name: "{{scenario_name}}" +core_feature: "{{core_feature}}" +entry_point: "{{entry_point}}" +mental_state: "{{mental_state}}" +business_success: "{{business_success}}" +user_success: "{{user_success}}" +pages_list: +{{#each page in pages_list}} + - name: "{{page.name}}" + slug: "{{page.slug}}" + page_number: "{{scenario_num}}.{{@index + 1}}" + description: "{{page.description}}" + status: "not_started" +{{/each}} +current_page_index: 0 +total_pages: {{pages_list.length}} +``` + +**Note:** Individual page folders and documents will be created when you run the page-init workshop for each page. + + +βœ… **Scenario structure created:** + +**Scenario {{scenario_num}}:** {{scenario_name}} + +**Folder:** +- `4-scenarios/{{scenario_num}}-{{scenario-slug}}/` + +**Documents:** +- `00-scenario-overview.md` (detailed scenario metadata) +- `scenario-tracking.yaml` (progress tracking) + +**Journey Overview:** +- **Start:** {{entry_point}} ({{mental_state}}) +- **End:** {{business_success}} + {{user_success}} +- **Pages planned:** {{pages_list.length}} + +**Next Step:** +- Run the page-init workshop to define and create the first page in this scenario + +The scenario container is ready! 🎨 + +--- + +[C] Continue to Page Initialization Workshop + +When user selects [C], load `step-02-substeps/page-init/step-01-page-context.md` + diff --git a/src/modules/wds/workflows/4-ux-design/steps/step-05-next-steps.md b/src/modules/wds/workflows/4-ux-design/steps/step-05-next-steps.md index ded00df7..f01bb7ac 100644 --- a/src/modules/wds/workflows/4-ux-design/steps/step-05-next-steps.md +++ b/src/modules/wds/workflows/4-ux-design/steps/step-05-next-steps.md @@ -41,7 +41,7 @@ Choice [1/2/3/4/5]: ### Choice 1: Design Another Scenario Return to Step 2 (Define Scenario) -Load `steps/step-02-define-scenario.md` +Load `steps/step-02-setup-scenario-structure.md` ### Choice 2: Phase 5 (Design System) diff --git a/src/modules/wds/workflows/PROJECT-STRUCTURE-SYSTEM.md b/src/modules/wds/workflows/PROJECT-STRUCTURE-SYSTEM.md new file mode 100644 index 00000000..fe680172 --- /dev/null +++ b/src/modules/wds/workflows/PROJECT-STRUCTURE-SYSTEM.md @@ -0,0 +1,226 @@ +# Project Structure System + +## Overview + +WDS includes a centralized project initialization system that collects project structure metadata and makes it available to all agents throughout the workflow. This ensures proper folder organization from the start and eliminates confusion. + +## The Central Project Details File + +All project configuration is stored in **one central file**: + +πŸ“„ **`wds-workflow-status.yaml`** (in project docs root) + +This file contains: +- Project metadata (name, type, creation date) +- **Project structure** (landing page, website, or application) +- **Delivery configuration** (format, target platform, PRD requirements) +- Language configuration +- Folder naming preferences +- Design system settings +- Workflow progress tracking + +**All WDS agents read this file** to understand project context and structure. + +--- + +## How It Works + +### Step 1: Workflow Init (Collection) + +During **initial project setup** (`workflow-init`), the system asks: + +**"What are you designing?"** + +1. **Separate pages** - Individual pages or page variants +2. **Single user flow** - Multiple pages, single user journey +3. **Multiple user flows** - Multiple scenarios/journeys, interactive features + +### Step 2: Storage (Central Config) + +This information is written to `wds-workflow-status.yaml`: + +```yaml +# Project information +project: "WDS Presentation Page" +project_type: "landing-page" + +# Project structure (defines folder organization) +project_structure: + type: "separate_pages" + scenarios: "single" + pages: "single" + +# Delivery configuration (what gets handed off) +delivery: + format: "wordpress" + target_platform: "wordpress" + requires_prd: false + description: "WordPress page editor code with markup and content sections" +``` + +**Key benefit:** Since `requires_prd: false`, the system knows **not to include PRD phases** (Phase 3 Platform Requirements, Phase 6 PRD Finalization). The workflow focuses only on design specifications that translate directly to WordPress implementation. + +### Step 3: Application (All Agents) + +When any agent starts work, they: +1. **Read** `wds-workflow-status.yaml` +2. **Extract** `project_structure` section +3. **Apply** appropriate folder organization rules + +**Example - Freyja (UX Designer):** +- Reads config file before greeting user +- Understands this is "separate pages" +- Places pages directly in `4-scenarios/` (no scenario subfolders) +- Numbers pages with individual identifiers + +--- + +## Information Flow + +``` +User Input β†’ Workflow Init β†’ wds-workflow-status.yaml β†’ All Agents β†’ Correct Structure + (Step 2b) (Central Storage) (Read Config) (Applied) +``` + +**Key Principle:** Define once, use everywhere. + +--- + +### Separate Pages +- **Structure:** `4-scenarios/start-page/` or variants +- **Pattern:** Pages directly in `4-scenarios/` +- **Variants:** `start-page-variant-a/`, `start-page-variant-b/` (if A/B testing) +- **Use case:** Landing pages, standalone pages, page variants + +``` +4-scenarios/ + start-page/ + start-page.md + sketches/ + prototypes/ + start-page-variant-a/ (optional) + start-page-variant-a.md + sketches/ +``` + +### Single User Flow +- **Structure:** `4-scenarios/1.1-home/`, `4-scenarios/1.2-about/` +- **Pattern:** Pages directly in `4-scenarios/` +- **Numbering:** Sequential pages `1.1`, `1.2`, `1.3`, etc. +- **No Scenario Subfolders:** All pages at the same level +- **Use case:** Simple websites, wizard flows, single-screen apps + +``` +4-scenarios/ + 1.1-home/ + 1.1-home.md + sketches/ + prototypes/ + 1.2-about/ + 1.2-about.md + sketches/ + 1.3-contact/ + 1.3-contact.md + sketches/ +``` + +### Multiple User Flows +- **Structure:** `4-scenarios/1-onboarding/`, `4-scenarios/2-dashboard/` +- **Pattern:** Scenario subfolders, pages within scenarios +- **Numbering:** + - Scenarios: `1-scenario-name`, `2-scenario-name` + - Pages within: `1.1-page`, `1.2-page`, `2.1-page`, `2.2-page` +- **Use case:** Web applications, mobile apps, admin systems + +``` +4-scenarios/ + 1-onboarding/ + 00-scenario.md + 1.1-signup/ + 1.1-signup.md + sketches/ + 1.2-verify-email/ + 1.2-verify-email.md + sketches/ + 2-dashboard/ + 00-scenario.md + 2.1-overview/ + 2.1-overview.md + sketches/ + 2.2-settings/ + 2.2-settings.md + sketches/ +``` + +## Benefits + +### For Users +- **No confusion** about folder structure +- **Consistent organization** across projects +- **Correct setup from the start** - no reorganization needed + +### For Agents +- **Clear instructions** based on project type +- **No guesswork** about where to place files +- **Proper structure** enables smooth handoffs between phases + +## Implementation Files + +### 1. Collection Phase +- **File:** `workflows/workflow-init/instructions.md` +- **Step:** Step 2 - "Project Structure" +- **When:** During initial project setup +- **Action:** Asks user to classify project structure + +### 2. Central Storage +- **File:** `wds-workflow-status.yaml` (project root) +- **Template:** `workflows/00-system/wds-workflow-status-template.yaml` +- **Section:** `project_structure:` +- **Fields:** + - `type` - separate_pages | single_flow | multiple_flows + - `scenarios` - single | multiple + - `pages` - single | multiple + +### 3. Application - All Phases +Every agent that needs structure information reads from `wds-workflow-status.yaml`: + +**Freyja (UX Designer):** +- **File:** `workflows/4-ux-design/steps/step-01-init.md` +- **When:** Before greeting user (initialization) +- **Action:** Reads config, applies folder rules + +**Future agents can access the same information** by reading the central config file. + +## Migration for Existing Projects + +If a project was created before this system: + +1. **Add structure section to config** (`config.yaml` or `wds-workflow-status.yaml`) +2. **Identify the project type** based on actual content +3. **Reorganize folders** if needed to match the standard +4. **Update all internal references** to reflect new structure + +Example addition to config: + +```yaml +project: + structure: + type: "single_flow" + scenarios: "single" + pages: "multiple" +``` + +## Future Enhancements + +Potential additions to this system: + +- **Multi-language variants** (e.g., `/en/`, `/sv/` folders) +- **Platform variants** (e.g., `/web/`, `/mobile/` folders) +- **Custom structure templates** for specific industries +- **Validation tools** to ensure structure compliance + +--- + +**Created:** December 27, 2025 +**Status:** Implemented in WDS v6 + diff --git a/src/modules/wds/workflows/project-analysis/agent-domains/freyja-domain.md b/src/modules/wds/workflows/project-analysis/agent-domains/freyja-domain.md index 13c8d8d7..f24fd4d7 100644 --- a/src/modules/wds/workflows/project-analysis/agent-domains/freyja-domain.md +++ b/src/modules/wds/workflows/project-analysis/agent-domains/freyja-domain.md @@ -9,6 +9,36 @@ --- +## Receiving Handoffs from Other Agents + +**I am activated when:** +- User shares interface design (sketch, wireframe, screenshot) +- User describes page/screen/component design needs +- Another agent recognizes UX design task and refers to me + +**How I receive handoffs:** + +``` +Other Agent: "@freyja User has [context about interface/design need]" + +Me: "Thanks [Agent Name]! I can see [what user shared]. + [Natural question to continue conversation]" + + β†’ Route to appropriate workflow based on context +``` + +**Context I need from referring agent:** +- What did user share? (sketch, description, goal) +- What project is this for? (if known) +- Any relevant background (from Product Brief, Trigger Map, etc.) + +**I respond naturally:** +- Acknowledge the referring agent briefly +- Pick up the conversation seamlessly +- Focus on helping user, not the handoff mechanics + +--- + ## Phase 4: UX Design (Scenarios) **What I do**: diff --git a/src/modules/wds/workflows/project-analysis/agent-domains/idunn-domain.md b/src/modules/wds/workflows/project-analysis/agent-domains/idunn-domain.md index 84162b41..948d1d93 100644 --- a/src/modules/wds/workflows/project-analysis/agent-domains/idunn-domain.md +++ b/src/modules/wds/workflows/project-analysis/agent-domains/idunn-domain.md @@ -9,6 +9,19 @@ --- +## Interface Recognition & Freyja Handoff + +**When user shares interface design with me:** +- Recognize: "I see you've shared an interface design/sketch" +- Explain: "Freyja handles UX design and page specifications" +- Offer: "Should I activate Freyja to help with this?" +- Handoff: Provide context to Freyja and step back + +**I focus on:** Technical architecture, infrastructure (HOW it's built) +**Freyja focuses on:** User interface, page design (WHAT users see) + +--- + ## Phase 3: PRD Platform (Technical Foundation) **What I do**: diff --git a/src/modules/wds/workflows/project-analysis/agent-domains/saga-domain.md b/src/modules/wds/workflows/project-analysis/agent-domains/saga-domain.md index 8839cbd2..a0fcfa2f 100644 --- a/src/modules/wds/workflows/project-analysis/agent-domains/saga-domain.md +++ b/src/modules/wds/workflows/project-analysis/agent-domains/saga-domain.md @@ -9,6 +9,19 @@ --- +## Interface Recognition & Freyja Handoff + +**When user shares interface design with me:** +- Recognize: "I see you've shared an interface design/sketch/wireframe" +- Explain: "Freyja is our UX Designer who handles page specifications" +- Offer: "Should I activate Freyja to help with this?" +- Handoff: Provide context to Freyja and step back + +**I focus on:** Strategy, vision, positioning (WHY) +**Freyja focuses on:** Interface, pages, specifications (WHAT/HOW) + +--- + ## Pre-Phase 1: Alignment & Signoff **What I do**: diff --git a/src/modules/wds/workflows/workflow-init/instructions.md b/src/modules/wds/workflows/workflow-init/instructions.md index b1210cac..b9364cb0 100644 --- a/src/modules/wds/workflows/workflow-init/instructions.md +++ b/src/modules/wds/workflows/workflow-init/instructions.md @@ -6,352 +6,17 @@ - + Welcome to Whiteport Design Studio, {user_name}! 🎨 -I'm here to help you set up your design project. WDS provides a structured approach to design - from strategic vision through detailed specifications. +I'll help you set up your design project with the right structure and phases. -Let's figure out which phases you need. +What's your project called? -Tell me about your project in a few sentences. What are you designing? -Store user_description -Analyze description for project indicators: +Store project_name +project_name -- "landing page", "single page", "simple" β†’ landing-page path -- "product", "platform", "app", "system", "full" β†’ full-product path -- "strategy", "research", "discovery", "planning" β†’ digital-strategy path -- "design system", "components", "library" β†’ design-system path -- "feature", "enhancement", "addition" β†’ feature-enhancement path -- "quick", "prototype", "poc", "test" β†’ quick-prototype path - - user_description - - - -Based on what you shared, this sounds like a **{{detected_project_type}}** project. - -Does that sound right? - -1. Yes, that's correct -2. No, let me explain more -3. Show me all the options - -Choice [1/2/3]: - - - Tell me more - what's the scope and complexity? - Re-analyze and update detected_project_type - Return to step 2 - - - - WDS supports these project types: - -**1. Full Product** πŸš€ -All 6 phases - complete design journey from vision to handoff -Best for: New products, platforms, complex applications - -**2. Landing Page** πŸ“„ -Phases 1 (Brief), 4 (Design), optional 5 (Design System) -Best for: Marketing sites, single-page apps, simple projects - -**3. Feature Enhancement** ✨ -Phases 2 (Trigger Map), 4 (Design), 6 (PRD Finalization) -Best for: Adding features to existing products - -**4. Digital Strategy** 🧭 -Phases 1 (Brief), 2 (Trigger Map) only -Best for: Discovery, research, product strategy - -**5. Design System Only** 🎨 -Phases 4 (Design), 5 (Design System) -Best for: Building component libraries - -**6. Quick Prototype** ⚑ -Phase 4 only -Best for: Rapid prototyping, proof of concepts - -Which fits your project? - -1. Full Product -2. Landing Page -3. Feature Enhancement -4. Digital Strategy -5. Design System Only -6. Quick Prototype - -Choice [1-6]: -Map choice to project_type - - -project_type - - - -Every WDS project starts with a Project Brief - so agents understand what you're building and why. - - - For **{{project_type}}** projects, a **Complete Project Brief** is included. - -This covers: - -- Vision & positioning -- Target users (ICP) -- Success criteria -- Competitive landscape -- Strategic constraints - Set brief_level = "complete" - - - - For **{{project_type}}** projects, a **Simplified Project Brief** keeps things fast. - -This covers: - -- Scope & challenge -- Opportunity -- Design goals - Set brief_level = "simplified" - - - - Project Brief depth: - -1. **Simplified** (5-10 min) - - Scope & challenge - - Opportunity - - Design goals - Best for: Quick features, time-pressured work -2. **Complete** (30-60 min) - - Vision & positioning - - Target users (ICP) - - Success criteria - - Competitive landscape - Best for: When you want strategic clarity - -Choice [1/2]: - - - Set brief_level = "simplified" - - - - Set brief_level = "complete" - - - -brief_level - - - -WDS needs to know what language to write specifications in and what languages your product will support. - -**Specification Language** - What language should WDS write the design specifications in? - -Common choices: - -1. **English** (EN) - Default, widely used -2. **Swedish** (SE) -3. **Norwegian** (NO) -4. **Danish** (DK) -5. **Other** - I'll specify - -Choice [1-5]: -Store specification_language -specification_language - -**Product Languages** - What languages will the final product support? - -List them separated by commas (e.g., "EN, SE" or "EN, SE, NO, DK"): - -Common language codes: - -- EN = English -- SE = Swedish -- NO = Norwegian -- DK = Danish -- FI = Finnish -- DE = German -- FR = French -- ES = Spanish - -Product languages: -Store product_languages (parse as array) -Validate language codes -product_languages - -βœ… **Language Configuration:** - -- **Specifications written in:** {{specification_language}} -- **Product supports:** {{product_languages_list}} - -All text specifications will include translations for: {{product_languages_list}} - - - -WDS creates folders in your project's `docs/` directory. Let's configure how they're named. - -Folder prefix style: - -1. **Letters** (A-Product-Brief, B-Trigger-Map, C-...) - - Distinctive WDS branding - - Easy visual grouping -2. **Numbers** (01-Product-Brief, 02-Trigger-Map, 03-...) - - Traditional sequential numbering - - Familiar format - -Choice [1/2]: -Set folder_prefix based on choice (letters/numbers) -folder_prefix - -Folder capitalization: - -1. **Title-Case** (A-Product-Brief, B-Trigger-Map) - - Easier to read for non-technical stakeholders -2. **lowercase** (a-product-brief, b-trigger-map) - - Developer-friendly convention - -Choice [1/2]: -Set folder_case based on choice (title/lowercase) -folder_case - - - - - The **Design System** phase is optional but valuable for building reusable components. - - Include Design System phase? - -1. **Yes** - Build a component library alongside design work -2. **No** - Keep it simple, focus on page designs only -3. **Help me decide** - -Choice [1/2/3]: - - - Include Design System if: -- You have multiple pages with shared patterns -- You want consistent components across the product -- You're building for a team that needs a component library -- You plan to hand off to developers who need component docs - -Skip Design System if: - -- It's a simple, one-off project -- You're using an existing design system (Material, Chakra, etc.) -- You need to move fast without component documentation - Based on this, include Design System? (y/n) - Set include_design_system based on answer - - - - Set include_design_system = true - - - - Set include_design_system = false - - - - - Set include_design_system = true - - -include_design_system - - - - - For the Design System, you can build custom components or use an existing library. - - Component library approach: - -1. **Custom** - Build your own from scratch -2. **Shadcn/ui** - Copy-paste React components (recommended for flexibility) -3. **Chakra UI** - Comprehensive React library -4. **Radix UI** - Headless accessible primitives -5. **Material UI** - Material Design components -6. **Tailwind CSS** - Utility-first styling (combine with headless) -7. **Other** - I'll specify later -8. **Undecided** - I'll choose during the project - -Choice [1-8]: -Set component_library based on choice -component_library - - - - -Load path file: {path_files}/{{project_type}}.yaml -Build workflow_items from path file -Apply brief_level setting (simplified or complete) -Apply include_design_system setting -Generate folder names based on folder_prefix and folder_case -Set generated date - -generated -workflow_path_file -workflow_items -folder_names -brief_level -specification_language -product_languages - - - -Your WDS project setup: - -**Project:** {{project_name}} -**Type:** {{project_type}} -**Project Brief:** {{#if brief_level == 'complete'}}Complete{{else}}Simplified{{/if}} -**Specification Language:** {{specification_language}} -**Product Languages:** {{product_languages_list}} -**Design System:** {{include_design_system}} -{{#if component_library}}**Component Library:** {{component_library}}{{/if}} - -**Phases enabled:** -{{#each enabled_phases}} - -- Phase {{this.number}}: {{this.name}} β†’ `{{this.folder}}/` - {{/each}} - -**Folder naming:** {{folder_prefix}} + {{folder_case}} -Example: `{{example_folder_name}}` - - -Create WDS workflow tracking file? (y/n) - - - Generate YAML from template with all variables - Save to {output_folder}/wds-workflow-status.yaml - Identify first workflow and agent - -βœ… **Created:** {output_folder}/wds-workflow-status.yaml - -**Your WDS journey begins!** - -**First Phase:** {{first_phase_name}} -**Agent:** {{first_agent}} -**Folder:** {{first_folder}} - -To start, activate **{{first_agent}}** and begin {{first_phase_name}}. - -To check progress anytime: `/bmad:wds:workflows:workflow-status` - -Happy designing! 🎨 - - - - No problem! Run this workflow again when you're ready. - -You can also manually create your project structure: -{{#each enabled_phases}} - -- Create `docs/{{this.folder}}/` for {{this.name}} - {{/each}} - -Happy designing! 🎨 - +Load and execute: `workflow-init/steps/step-02-project-structure.md` diff --git a/src/modules/wds/workflows/workflow-init/project-config.template.yaml b/src/modules/wds/workflows/workflow-init/project-config.template.yaml index df7ada43..b556bcfa 100644 --- a/src/modules/wds/workflows/workflow-init/project-config.template.yaml +++ b/src/modules/wds/workflows/workflow-init/project-config.template.yaml @@ -6,6 +6,17 @@ project: description: "{{PROJECT_DESCRIPTION}}" wds_version: "6.0" created: "{{DATE}}" + + # Project Structure - defines folder organization + structure: + type: "{{STRUCTURE_TYPE}}" # "landing_page" | "simple_website" | "web_application" + scenarios: "{{STRUCTURE_SCENARIOS}}" # "single" | "multiple" + pages: "{{STRUCTURE_PAGES}}" # "single" | "multiple" + + # Folder organization pattern + # landing_page: 4-scenarios/1.1-page-name/ + # simple_website: 4-scenarios/1.1-page/, 4-scenarios/1.2-page/ + # web_application: 4-scenarios/1-scenario-name/1.1-page/, 4-scenarios/2-scenario-name/2.1-page/ # Design System Configuration design_system: diff --git a/src/modules/wds/workflows/workflow-init/steps/step-02-project-structure.md b/src/modules/wds/workflows/workflow-init/steps/step-02-project-structure.md new file mode 100644 index 00000000..235bace3 --- /dev/null +++ b/src/modules/wds/workflows/workflow-init/steps/step-02-project-structure.md @@ -0,0 +1,54 @@ +# Step 2: Project Structure + +**Goal:** Determine the project structure to set up the correct folder organization. + +--- + +## YOUR TASK + +Ask the user about their project structure. + +--- + +## EXECUTION + +**Let's determine your project structure.** + +This defines how we'll organize your scenarios and pages. + +**What are you designing?** + +1. **Separate pages** - Individual pages, landing pages, or page variants +2. **Single user flow** - Multiple pages in one continuous journey (website, wizard, single app flow) +3. **Multiple user flows** - Application with different user journeys (web app, mobile app, admin system) + +Choice [1/2/3]: + +Map choice to structure: +- 1 β†’ structure_type: "separate_pages", scenarios: "single", pages: "single" +- 2 β†’ structure_type: "single_flow", scenarios: "single", pages: "multiple" +- 3 β†’ structure_type: "multiple_flows", scenarios: "multiple", pages: "multiple" + + +βœ… **Project Structure Set** + +{{#if choice == 1}} +**Separate pages** - We'll create individual page folders (with optional variants). +{{else if choice == 2}} +**Single user flow** - We'll create numbered pages in one flow (1.1, 1.2, 1.3...). +{{else if choice == 3}} +**Multiple user flows** - We'll create scenario folders with pages inside each (1-scenario/1.1, 1.2...). +{{/if}} + +This structure will be used when you start designing in Phase 4 (UX Design). + +structure_type +structure_scenarios +structure_pages + +--- + +## NEXT STEP + +Load and execute: `workflow-init/steps/step-03-delivery-config.md` + diff --git a/src/modules/wds/workflows/workflow-init/steps/step-03-delivery-config.md b/src/modules/wds/workflows/workflow-init/steps/step-03-delivery-config.md new file mode 100644 index 00000000..782f8ff1 --- /dev/null +++ b/src/modules/wds/workflows/workflow-init/steps/step-03-delivery-config.md @@ -0,0 +1,76 @@ +# Step 3: Delivery Configuration + +**Goal:** Define what format you'll be delivering at the end of the design process. + +--- + +## YOUR TASK + +Determine the delivery format and whether PRD phases are needed. + +--- + +## EXECUTION + +**What will you deliver at the end of the design process?** + +**Delivery format:** + +1. **WordPress Markup** - Ready-to-paste WordPress editor code +2. **Complete PRD** - Product Requirements Document for development team +3. **Interactive Prototype** - HTML/Figma prototype for testing +4. **Direct to Code** - Specifications ready for AI code generation +5. **Figma Designs** - Visual designs in Figma with handoff +6. **Custom/Other** - I'll specify + +Choice [1-6]: + +Map choice to delivery configuration: +- 1 β†’ format: "wordpress", target_platform: "wordpress", requires_prd: false +- 2 β†’ format: "prd", target_platform: "custom", requires_prd: true +- 3 β†’ format: "prototype", target_platform: "html", requires_prd: false +- 4 β†’ format: "direct-code", target_platform: "custom", requires_prd: false +- 5 β†’ format: "figma", target_platform: "figma", requires_prd: false +- 6 β†’ format: "other", ask for details + + + + Please describe your delivery format and target platform: + Store custom delivery_description + Will this project need PRD phases (Platform Requirements + PRD Finalization)? (y/n) + Set requires_prd based on answer + + +βœ… **Delivery Configuration Set** + +{{#if delivery_format == wordpress}} +**WordPress Markup** - Design specifications will be WordPress-ready. +PRD phases will be skipped (direct implementation). +{{else if delivery_format == prd}} +**Complete PRD** - You'll create a full Product Requirements Document. +PRD phases are required (Phase 3 + Phase 6). +{{else if delivery_format == prototype}} +**Interactive Prototype** - Focus on testable prototypes. +PRD phases are optional. +{{else if delivery_format == direct-code}} +**Direct to Code** - Specifications for AI code generation. +PRD phases are optional. +{{else if delivery_format == figma}} +**Figma Designs** - Visual designs with developer handoff. +PRD phases are optional. +{{else}} +**Custom Format** - {{delivery_description}} +PRD phases: {{#if requires_prd}}Required{{else}}Not needed{{/if}} +{{/if}} + +delivery_format +target_platform +requires_prd +delivery_description + +--- + +## NEXT STEP + +Load and execute: `workflow-init/steps/step-04-phases-selection.md` + diff --git a/src/modules/wds/workflows/workflow-init/steps/step-04-phases-selection.md b/src/modules/wds/workflows/workflow-init/steps/step-04-phases-selection.md new file mode 100644 index 00000000..87b853e1 --- /dev/null +++ b/src/modules/wds/workflows/workflow-init/steps/step-04-phases-selection.md @@ -0,0 +1,180 @@ +# Step 4: Project Phases Selection + +**Goal:** Select which WDS phases you need for this project. + +--- + +## YOUR TASK + +Guide the user through selecting appropriate project phases. + +--- + +## EXECUTION + +**Which WDS phases do you need?** + +WDS offers 6 design phases. Let's figure out which ones serve your project. + +**Project phase approach:** + +1. **Guided Selection** - I'll recommend phases based on your answers +2. **Express Selection** - I know exactly which phases I need +3. **Show All Phases** - Let me see what's available + +Choice [1/2/3]: + + + **WDS Phases Overview:** + +**Phase 1: Product Brief** πŸ“‹ +- Define vision, positioning, target users +- SMART success criteria +- When: New projects, strategic clarity needed + +**Phase 2: Trigger Mapping** 🎯 +- Connect business goals to user psychology +- Prioritize features +- Define personas +- When: Understanding user needs deeply + +**Phase 3: Platform Requirements** πŸ—οΈ +- Technical architecture +- Data models +- Platform decisions +- When: Building applications (requires_prd: true) + +**Phase 4: UX Design** 🎨 +- Scenario-driven page design +- Conceptual specifications +- Interactive prototypes +- When: Always (core design phase) + +**Phase 5: Design System** 🧩 +- Component library +- Design tokens +- Reusable patterns +- When: Multiple pages, consistency needed + +**Phase 6: PRD Finalization** πŸ“¦ +- Complete PRD compilation +- Development roadmap +- Implementation handoff +- When: Formal development handoff (requires_prd: true) + + Now, which approach? +1. Guided Selection +2. Express Selection + +Choice [1/2]: + + + + **Guided Phase Selection** + +Based on your project, I'll recommend the right phases. + + **What's your starting point?** + +1. **Brand new idea** - Starting from scratch +2. **Clear vision** - I know what I want to build +3. **Existing product** - Adding features or redesigning + +Choice [1/2/3]: + + + **Recommendation: Full Discovery** + +For brand new ideas: +- Phase 1: Product Brief (define the vision) +- Phase 2: Trigger Mapping (understand users) +- Phase 4: UX Design (design the experience) +- Phase 5: Design System (optional, if multiple pages) +{{#if requires_prd}} +- Phase 3: Platform Requirements +- Phase 6: PRD Finalization +{{/if}} + Set recommended_phases: [1, 2, 4] + (requires_prd ? [3, 6] : []) + + + + **Recommendation: Design-Focused** + +For clear visions: +- Phase 2: Trigger Mapping (optional, validate assumptions) +- Phase 4: UX Design (design the experience) +- Phase 5: Design System (optional, if multiple pages) +{{#if requires_prd}} +- Phase 3: Platform Requirements +- Phase 6: PRD Finalization +{{/if}} + Set recommended_phases: [4] + (requires_prd ? [3, 6] : []) + + + + **Recommendation: Enhancement Flow** + +For existing products: +- Phase 2: Trigger Mapping (optional, understand impact) +- Phase 4: UX Design (design the changes) +{{#if requires_prd}} +- Phase 6: PRD Finalization (document changes) +{{/if}} + Set recommended_phases: [4] + (requires_prd ? [6] : []) + + + Include these phases? {{recommended_phases_list}} + +1. Yes, these are perfect +2. Let me customize + +Choice [1/2]: + + + Continue to express selection + + + + + **Express Phase Selection** + + Select the phases you need (comma-separated): + +1. Product Brief +2. Trigger Mapping +3. Platform Requirements +4. UX Design +5. Design System +6. PRD Finalization + +Example: "1,2,4,5" or "4" or "2,4,6" + +Your phases: + + Parse selected phases + Store selected_phases array + + +βœ… **Project Phases Configured** + +**Phases Included:** +{{#each selected_phase}} +- Phase {{this.number}}: {{this.name}} +{{/each}} + +{{#if not_selected_phases}} +**Phases Skipped:** +{{#each not_selected_phase}} +- Phase {{this.number}}: {{this.name}} +{{/each}} +{{/if}} + +selected_phases +workflow_path + +--- + +## NEXT STEP + +Load and execute: `workflow-init/steps/step-05-languages.md` +