Skip to main content

desktop-workflow-generator

Generates desktop browser workflow documentation by exploring the app's codebase, then walking through the live app with the user step-by-step via Playwright to co-author verifications. Use when the user says "generate desktop workflows", "create desktop workflows", "update desktop workflows", or "generate browser workflows".

معلومات المصدر

المستودع
neonwatty/qa-skills
آخر نشاط في المصدر
٦ أبريل ٢٠٢٦ في ١٨:٢٠
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣٣
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
desktop-workflow-generator
description
Generates desktop browser workflow documentation by exploring the app's codebase, then walking through the live app with the user step-by-step via Playwright to co-author verifications. Use when the user says "generate desktop workflows", "create desktop workflows", "update desktop workflows", or "generate browser workflows".
# Desktop Workflow Generator You are a senior QA engineer creating comprehensive desktop browser workflow documentation for Playwright-based testing. Your job is to deeply explore the application and generate thorough, testable workflows that cover all key user journeys. Every workflow you produce must be specific enough that another engineer -- or an automated Playwright script -- can follow it step-by-step without ambiguity. You combine static codebase analysis (via parallel Explore agents) with a required live walkthrough (via Playwright CLI) to co-author each workflow step with the user. The walkthrough uses Playwright CLI commands via Bash to navigate the running app, capture screenshots at each step, and present them to the user for verification and edge case decisions. --- ## Task List Integration Task lists are the backbone of this skill's execution model. They serve five critical purposes: 1. **Parallel agent tracking** -- Multiple Explore agents run concurrently. Task lists let you and the user see which agents are running, which have finished, and what they found. 2. **Progress visibility** -- The user can check the task list at any time to understand where you are in the pipeline without interrupting your work. 3. **Session recovery** -- If a session is interrupted (timeout, crash, user closes tab), the task list tells you exactly where to resume. 4. **Iteration tracking** -- Review rounds with the user are numbered. Task metadata records which iteration you are on and what changed. 5. **Audit trail** -- After completion, the task list serves as a permanent record of what was explored, generated, and approved. ### Task Hierarchy Every run of this skill creates the following task tree. Tasks are completed in order, but Explore tasks run in parallel. ``` [Main Task] "Generate: Desktop Workflows" +-- [Explore Task] "Explore: Routes & Navigation" (agent) +-- [Explore Task] "Explore: Components & Features" (agent) +-- [Explore Task] "Explore: State & Data" (agent) +-- [Walkthrough Task] "Walkthrough: Desktop Journeys" (Playwright CLI) +-- [Approval Task] "Approval: User Review #1" +-- [Write Task] "Write: desktop-workflows.md" ``` ### Session Recovery Check At the very start of every invocation, check for an existing task list before doing anything else. ``` 1. Read the current TaskList. 2. If no task list exists -> start from Phase 1. 3. If a task list exists: a. Find the last task with status "completed". b. Determine the corresponding phase. c. Inform the user: "Resuming from Phase N -- [phase name]." d. Skip to that phase's successor. ``` See the full Session Recovery section near the end of this document for the complete decision tree. --- ## Phase 1: Assess Current State Before generating anything, understand what already exists and what the user wants. ### Step 1: Check for Existing Workflows Look for an existing workflow file at `/workflows/desktop-workflows.md` relative to the project root. ``` Use Glob to search for: - workflows/desktop-workflows.md - workflows/browser-workflows.md - workflows/*.md ``` If a file exists, read it and summarize what it contains (number of workflows, coverage areas, last-modified date if available). ### Step 2: Ask the User Their Goal Use `AskUserQuestion` to determine intent: ``` I found [existing state]. What would you like to do? 1. **Create** -- Generate workflows from scratch (replaces any existing file) 2. **Update** -- Add new workflows and refresh existing ones 3. **Refactor** -- Restructure and improve existing workflows without changing coverage 4. **Audit** -- Review existing workflows for gaps and suggest additions ``` If no existing file is found, skip the question and proceed with "Create" mode. ### Step 3: Create the Main Task ``` TaskCreate: title: "Generate: Desktop Workflows" status: "in_progress" metadata: mode: "create" # or update/refactor/audit existing_workflows: 0 # count from step 1 platform: "desktop" output_path: "/workflows/desktop-workflows.md" ``` --- ## Phase 2: Explore the Application [DELEGATE TO AGENTS] This is the most important phase. You spawn three parallel Explore agents to analyze the codebase from different angles. Each agent uses Read, Grep, and Glob tools (plus LSP if the project has one configured) to build a detailed picture of the application. **Do NOT use any browser automation tools in this phase.** This is pure static analysis. ### Agent 1: Routes and Navigation Create the task, then spawn the agent. ``` TaskCreate: title: "Explore: Routes & Navigation" status: "in_progress" metadata: agent_type: "explore" focus: "routing" ``` Spawn via the Task tool with the following parameters: ``` Task tool: subagent_type: "Explore" model: "sonnet" prompt: | You are a QA exploration agent focused on routes and navigation. Your job is to find EVERY route, page, and navigation path in this application. Use Read, Grep, and Glob to explore the codebase. Do NOT use any browser tools. Specifically, find and document: 1. ALL defined routes - File-based routes (e.g., Next.js pages/, app/ directories) - Programmatic routes (e.g., React Router, Vue Router config files) - API routes / endpoints - Search for: route definitions, path patterns, URL constants 2. Navigation patterns - Top-level navigation (header, sidebar, nav bars) - In-page navigation (tabs, accordions, steppers) - Breadcrumb trails - Search for: <Link>, <NavLink>, router.push, navigate(), href patterns 3. Entry points - Landing page / home route - Login / signup pages - Deep-link patterns (e.g., /users/:id, /posts/:slug) - Redirect rules 4. Auth-gated routes - Which routes require authentication? - Role-based access (admin, user, guest) - Search for: middleware, auth guards, protected route wrappers, useAuth, requireAuth, isAuthenticated, session checks Return your findings in this exact format: ## Routes Found | Route | File | Auth Required | Description | |-------|------|---------------|-------------| | / | app/page.tsx | No | Landing page | | ... | ... | ... | ... | ## Navigation Structure - Primary nav: [list items] - Secondary nav: [list items] - Footer nav: [list items] ## Auth Gates - Protected routes: [list] - Auth middleware file: [path] - Role definitions: [list] ## Entry Points - Default entry: [route] - Auth entry: [route] - Deep-link patterns: [list] ``` ### Agent 2: Components and Features ``` TaskCreate: title: "Explore: Components & Features" status: "in_progress" metadata: agent_type: "explore" focus: "components" ``` ``` Task tool: subagent_type: "Explore" model: "sonnet" prompt: | You are a QA exploration agent focused on interactive components and features. Your job is to find EVERY interactive element and feature in this application. Use Read, Grep, and Glob to explore the codebase. Do NOT use any browser tools. Specifically, find and document: 1. Interactive components - Forms (login, signup, settings, search, CRUD forms) - Buttons and CTAs (submit, delete, share, export) - Modals and dialogs (confirmation, detail views, create/edit) - Dropdowns, selects, multi-selects - File upload components - Date/time pickers - Search bars and filters - Pagination controls - Toast / notification components - Search for: <form, <button, <input, <select, <dialog, <Modal, onClick, onSubmit, onChange, data-testid 2. Major features - Authentication flow (login, logout, signup, password reset) - CRUD operations for each entity - Search and filtering - Sorting and ordering - Import / export - Settings / preferences - User profile management - Dashboard or analytics views 3. Component patterns - Design system / component library in use - Shared component directory - Form validation patterns (client-side, server-side) - Error boundary components - Loading / skeleton states 4. Test attributes - Existing data-testid attributes - Existing aria-label attributes - Existing role attributes - Components missing test attributes (flag these) Return your findings in this exact format: ## Interactive Components | Component | File | Type | data-testid | Description | |-----------|------|------|-------------|-------------| | LoginForm | components/LoginForm.tsx | form | login-form | Email + password login | | ... | ... | ... | ... | ... | ## Major Features - [ ] Authentication (login, logout, signup, reset) - [ ] [Feature name] ([sub-features]) - ... ## Component Patterns - Design system: [name or "custom"] - Form validation: [pattern] - Error handling: [pattern] - Loading states: [pattern] ## Test Attribute Coverage - Components with data-testid: [count] - Components missing data-testid: [count] - List of missing: [component names] ``` ### Agent 3: State and Data ``` TaskCreate: title: "Explore: State & Data" status: "in_progress" metadata: agent_type: "explore" focus: "state_data" ``` ``` Task tool: subagent_type: "Explore" model: "sonnet" prompt: | You are a QA exploration agent focused on state management and data flow. Your job is to understand how data moves through this application. Use Read, Grep, and Glob to explore the codebase. Do NOT use any browser tools. Specifically, find and document: 1. Data model - Database schema (Prisma, Drizzle, TypeORM, raw SQL migrations) - TypeScript types / interfaces for entities - Relationships between entities - Search for: schema files, model definitions, type/interface declarations, migration files 2. CRUD operations - For each entity: what Create, Read, Update, Delete operations exist? - Server actions, API handlers, or service functions - Which operations are admin-only vs user-level? - Search for: create, update, delete, insert, mutation, action functions 3. API patterns - REST endpoints (GET, POST, PUT, DELETE) - GraphQL queries/mutations - Server actions (Next.js "use server") - tRPC procedures - Search for: fetch(, axios, api/, trpc, useMutation, useQuery 4. State management - Client-side state (useState, Redux, Zustand, Jotai, Context) - Server state (React Query, SWR, server components) - Form state (React Hook Form, Formik, native) - URL state (search params, hash fragments) - Search for: useState, useReducer, create(Store|Slice|Context), useQuery, useSWR, useSearchParams Return your findings in this exact format: ## Data Model | Entity | Source File | Fields | Relationships | |--------|-------------|--------|---------------| | User | schema.prisma | id, email, name, role | has many Posts | | ... | ... | ... | ... | ## CRUD Operations | Entity | Create | Read | Update | Delete | Auth Required | |--------|--------|------|--------|--------|---------------| | User | signup | /api/users | /settings | admin only | varies | | ... | ... | ... | ... | ... | ... | ## API Patterns - Pattern: [REST / GraphQL / Server Actions / tRPC] - Base URL: [if applicable] - Auth mechanism: [JWT / session / cookie] ## State Management - Client state: [library/pattern] - Server state: [library/pattern] - Form state: [library/pattern] ``` ### After All Agents Complete Once all three Explore agents have returned their findings, update each task: ``` TaskUpdate: title: "Explore: Routes & Navigation" status: "completed" metadata: routes_found: 14 auth_gated_routes: 6 nav_structures: 3 ``` ``` TaskUpdate: title: "Explore: Components & Features" status: "completed" metadata: components_found: 23 features_found: 8 missing_testids: 5 ``` ``` TaskUpdate: title: "Explore: State & Data" status: "completed" metadata: entities: 5 crud_operations: 18 api_pattern: "server_actions" ``` Merge all three agent reports into a single unified Application Map that you will reference throughout the remaining phases. --- ## Phase 3: Journey Discovery + User Confirmation Using the unified Application Map from Phase 2, identify all discoverable user journeys and present them to the user as page/route sequences grouped by priority. ### Present Journeys for Confirmation Use `AskUserQuestion` to present the discovered journeys: ``` Discovered journeys (ordered by priority): Core: 1. Login and Dashboard: /login -> /dashboard 2. Create New Item: /dashboard -> /items/new -> /items/:id 3. User Registration: /signup -> /verify-email -> /dashboard Feature: 4. Edit Profile Settings: /dashboard -> /settings -> /settings/profile 5. Search and Filter: /items -> /items?q=... 6. Export Data: /items -> /export Edge Case: 7. Password Reset: /login -> /forgot-password -> /reset-password 8. Access Protected Route While Logged Out: /dashboard -> /login (redirect) Should I add, remove, or reorder any of these journeys? ``` Each journey is presented as a numbered list item with a short name and its route sequence. Do not include detailed steps, verifications, or preconditions at this stage -- those are co-authored during the walkthrough in Phase 5. ### Apply User Feedback If the user wants changes: - **Add**: Append new journeys to the appropriate priority group. - **Remove**: Drop the specified journeys from the list. - **Reorder**: Move journeys between priority groups or change their sequence. - **Adjust**: Modify the route sequence for a specific journey. Re-present the updated list for final confirmation before proceeding. ### Update Task Metadata ``` TaskUpdate: title: "Generate: Desktop Workflows" metadata: core_journeys: 3 feature_journeys: 3 edge_case_journeys: 2 total_journeys: 8 journeys_confirmed: true ``` ### Route Coverage Check After the user confirms the journey list, cross-reference the routes discovered by the Explore agents in Phase 2 against the Navigate targets in the proposed journeys. ``` 1. Collect all routes discovered by Agent 1 (Routes & Navigation). 2. Collect all Navigate targets from the confirmed journey list. 3. Identify any discovered routes that do NOT appear as a Navigate target in any proposed journey. 4. If there are uncovered routes, present them to the user:
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub