@zeyue0329/xiaoma-cli 1.0.48 → 6.0.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/custom/src/agents/commit-poet/commit-poet.agent.yaml +129 -0
- package/custom/src/agents/commit-poet/installation-guide.md +36 -0
- package/custom/src/agents/toolsmith/installation-guide.md +36 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +70 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +111 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +70 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +114 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +134 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +160 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +103 -0
- package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +17 -0
- package/custom/src/agents/toolsmith/toolsmith.agent.yaml +108 -0
- package/docs/BUNDLE_DISTRIBUTION_SETUP.md +95 -0
- package/docs/agent-customization-guide.md +208 -0
- package/docs/custom-agent-installation.md +183 -0
- package/docs/document-sharding-guide.md +449 -0
- package/docs/ide-info/auggie.md +31 -0
- package/docs/ide-info/claude-code.md +25 -0
- package/docs/ide-info/cline.md +31 -0
- package/docs/ide-info/codex.md +21 -0
- package/docs/ide-info/crush.md +30 -0
- package/docs/ide-info/cursor.md +25 -0
- package/docs/ide-info/gemini.md +25 -0
- package/docs/ide-info/github-copilot.md +26 -0
- package/docs/ide-info/iflow.md +33 -0
- package/docs/ide-info/kilo.md +24 -0
- package/docs/ide-info/opencode.md +24 -0
- package/docs/ide-info/qwen.md +25 -0
- package/docs/ide-info/roo.md +27 -0
- package/docs/ide-info/rovo-dev.md +388 -0
- package/docs/ide-info/trae.md +25 -0
- package/docs/ide-info/windsurf.md +22 -0
- package/docs/index.md +144 -0
- package/docs/installers-bundlers/ide-injections.md +186 -0
- package/docs/installers-bundlers/installers-modules-platforms-reference.md +379 -0
- package/docs/rag/rag.md +812 -0
- package/docs/v4-to-v6-upgrade.md +220 -0
- package/docs/v6-open-items.md +17 -0
- package/docs/web-bundles-gemini-gpt-guide.md +468 -0
- package/eslint.config.mjs +133 -0
- package/package.json +41 -51
- package/prettier.config.mjs +32 -0
- package/src/core/_module-installer/install-config.yaml +29 -0
- package/src/core/_module-installer/installer.js +60 -0
- package/src/core/agents/xiaoma-master.agent.yaml +39 -0
- package/src/core/agents/xiaoma-web-orchestrator.agent.xml +113 -0
- package/src/core/resources/excalidraw/README.md +160 -0
- package/src/core/resources/excalidraw/excalidraw-helpers.md +127 -0
- package/src/core/resources/excalidraw/library-loader.md +50 -0
- package/src/core/resources/excalidraw/validate-json-instructions.md +79 -0
- package/src/core/tasks/advanced-elicitation-methods.csv +51 -0
- package/src/core/tasks/advanced-elicitation.xml +116 -0
- package/src/core/tasks/index-docs.xml +65 -0
- package/src/core/tasks/validate-workflow.xml +89 -0
- package/src/core/tasks/workflow.xml +235 -0
- package/src/core/tools/shard-doc.xml +109 -0
- package/src/core/workflows/brainstorming/brain-methods.csv +62 -0
- package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +196 -0
- package/src/core/workflows/brainstorming/steps/step-01b-continue.md +121 -0
- package/src/core/workflows/brainstorming/steps/step-02a-user-selected.md +224 -0
- package/src/core/workflows/brainstorming/steps/step-02b-ai-recommended.md +236 -0
- package/src/core/workflows/brainstorming/steps/step-02c-random-selection.md +208 -0
- package/src/core/workflows/brainstorming/steps/step-02d-progressive-flow.md +263 -0
- package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +339 -0
- package/src/core/workflows/brainstorming/steps/step-04-idea-organization.md +302 -0
- package/src/core/workflows/brainstorming/template.md +15 -0
- package/src/core/workflows/brainstorming/workflow.md +51 -0
- package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +138 -0
- package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +203 -0
- package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +159 -0
- package/src/core/workflows/party-mode/workflow.md +207 -0
- package/src/modules/cis/_module-installer/install-config.yaml +16 -0
- package/src/modules/cis/_module-installer/installer.js +92 -0
- package/src/modules/cis/agents/README.md +104 -0
- package/src/modules/cis/agents/brainstorming-coach.agent.yaml +29 -0
- package/src/modules/cis/agents/creative-problem-solver.agent.yaml +29 -0
- package/src/modules/cis/agents/design-thinking-coach.agent.yaml +29 -0
- package/src/modules/cis/agents/innovation-strategist.agent.yaml +29 -0
- package/src/modules/cis/agents/presentation-master.agent.yaml +61 -0
- package/src/modules/cis/agents/storyteller.agent.yaml +29 -0
- package/src/modules/cis/readme.md +153 -0
- package/src/modules/cis/teams/creative-squad.yaml +7 -0
- package/src/modules/cis/teams/default-party.csv +12 -0
- package/src/modules/cis/workflows/README.md +139 -0
- package/src/modules/cis/workflows/design-thinking/README.md +56 -0
- package/src/modules/cis/workflows/design-thinking/design-methods.csv +31 -0
- package/src/modules/cis/workflows/design-thinking/instructions.md +202 -0
- package/src/modules/cis/workflows/design-thinking/template.md +111 -0
- package/src/modules/cis/workflows/design-thinking/workflow.yaml +38 -0
- package/src/modules/cis/workflows/innovation-strategy/README.md +56 -0
- package/src/modules/cis/workflows/innovation-strategy/innovation-frameworks.csv +31 -0
- package/src/modules/cis/workflows/innovation-strategy/instructions.md +276 -0
- package/src/modules/cis/workflows/innovation-strategy/template.md +189 -0
- package/src/modules/cis/workflows/innovation-strategy/workflow.yaml +38 -0
- package/src/modules/cis/workflows/problem-solving/README.md +56 -0
- package/src/modules/cis/workflows/problem-solving/instructions.md +252 -0
- package/src/modules/cis/workflows/problem-solving/solving-methods.csv +31 -0
- package/src/modules/cis/workflows/problem-solving/template.md +165 -0
- package/src/modules/cis/workflows/problem-solving/workflow.yaml +38 -0
- package/src/modules/cis/workflows/storytelling/README.md +58 -0
- package/src/modules/cis/workflows/storytelling/instructions.md +293 -0
- package/src/modules/cis/workflows/storytelling/story-types.csv +26 -0
- package/src/modules/cis/workflows/storytelling/template.md +113 -0
- package/src/modules/cis/workflows/storytelling/workflow.yaml +38 -0
- package/src/modules/xmb/README.md +261 -0
- package/src/modules/xmb/_module-installer/install-config.yaml +28 -0
- package/src/modules/xmb/agents/xiaoma-builder.agent.yaml +71 -0
- package/src/modules/xmb/docs/agents/agent-compilation.md +340 -0
- package/src/modules/xmb/docs/agents/agent-menu-patterns.md +524 -0
- package/src/modules/xmb/docs/agents/expert-agent-architecture.md +364 -0
- package/src/modules/xmb/docs/agents/index.md +55 -0
- package/src/modules/xmb/docs/agents/kb.csv +0 -0
- package/src/modules/xmb/docs/agents/module-agent-architecture.md +367 -0
- package/src/modules/xmb/docs/agents/simple-agent-architecture.md +288 -0
- package/src/modules/xmb/docs/agents/understanding-agent-types.md +184 -0
- package/src/modules/xmb/docs/workflows/architecture.md +220 -0
- package/src/modules/xmb/docs/workflows/common-workflow-tools.csv +19 -0
- package/src/modules/xmb/docs/workflows/csv-data-file-standards.md +206 -0
- package/src/modules/xmb/docs/workflows/index.md +45 -0
- package/src/modules/xmb/docs/workflows/intent-vs-prescriptive-spectrum.md +220 -0
- package/src/modules/xmb/docs/workflows/kb.csv +0 -0
- package/src/modules/xmb/docs/workflows/step-template.md +283 -0
- package/src/modules/xmb/docs/workflows/terms.md +97 -0
- package/src/modules/xmb/docs/workflows/workflow-template.md +152 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/README.md +242 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
- package/src/modules/xmb/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
- package/src/modules/xmb/reference/agents/module-examples/README.md +50 -0
- package/src/modules/xmb/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
- package/src/modules/xmb/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
- package/src/modules/xmb/reference/agents/simple-examples/README.md +223 -0
- package/src/modules/xmb/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
- package/src/modules/xmb/reference/readme.md +3 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
- package/src/modules/xmb/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
- package/src/modules/xmb/workflows/create-agent/data/agent-validation-checklist.md +174 -0
- package/src/modules/xmb/workflows/create-agent/data/brainstorm-context.md +153 -0
- package/src/modules/xmb/workflows/create-agent/data/communication-presets.csv +61 -0
- package/src/modules/xmb/workflows/create-agent/data/info-and-installation-guide.md +17 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/README.md +3 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/README.md +242 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/breakthroughs.md +24 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/instructions.md +108 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/memories.md +46 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper-sidecar/mood-patterns.md +39 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/expert-examples/journal-keeper/journal-keeper.agent.yaml +152 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/README.md +50 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/security-engineer.agent.yaml +53 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/module-examples/trend-analyst.agent.yaml +57 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/simple-examples/README.md +223 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/agents/simple-examples/commit-poet.agent.yaml +126 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/dietary-restrictions.csv +18 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/macro-calculator.csv +16 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/data/recipe-database.csv +28 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01-init.md +177 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-01b-continue.md +150 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-02-profile.md +164 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-03-assessment.md +152 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-04-strategy.md +182 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-05-shopping.md +167 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/steps/step-06-prep-schedule.md +194 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/assessment-section.md +25 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/nutrition-plan.md +68 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/prep-schedule-section.md +29 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/profile-section.md +47 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/shopping-section.md +37 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/templates/strategy-section.md +18 -0
- package/src/modules/xmb/workflows/create-agent/data/reference/workflows/meal-prep-nutrition/workflow.md +58 -0
- package/src/modules/xmb/workflows/create-agent/data/validation-complete.md +305 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-01-brainstorm.md +145 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-02-discover.md +210 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-03-persona.md +260 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-04-commands.md +237 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-05-name.md +231 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-06-build.md +224 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-07-validate.md +234 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-08-setup.md +179 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-09-customize.md +197 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-10-build-tools.md +180 -0
- package/src/modules/xmb/workflows/create-agent/steps/step-11-celebrate.md +222 -0
- package/src/modules/xmb/workflows/create-agent/templates/agent_commands.md +21 -0
- package/src/modules/xmb/workflows/create-agent/templates/agent_persona.md +25 -0
- package/src/modules/xmb/workflows/create-agent/templates/agent_purpose_and_type.md +23 -0
- package/src/modules/xmb/workflows/create-agent/workflow.md +91 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-01-init.md +168 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-02-gather.md +233 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-03-tools-overview.md +127 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-04-core-tools.md +145 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-05-memory-requirements.md +136 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-06-external-tools.md +154 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-07-installation-guidance.md +159 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-08-tools-summary.md +167 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-09-design.md +239 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-10-plan-review.md +215 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-11-build.md +262 -0
- package/src/modules/xmb/workflows/create-workflow/steps/step-12-review.md +270 -0
- package/src/modules/xmb/workflows/create-workflow/templates/build-summary.md +36 -0
- package/src/modules/xmb/workflows/create-workflow/templates/completion-section.md +39 -0
- package/src/modules/xmb/workflows/create-workflow/templates/content-template.md +21 -0
- package/src/modules/xmb/workflows/create-workflow/templates/design-section.md +53 -0
- package/src/modules/xmb/workflows/create-workflow/templates/project-info.md +18 -0
- package/src/modules/xmb/workflows/create-workflow/templates/requirements-section.md +47 -0
- package/src/modules/xmb/workflows/create-workflow/templates/review-section.md +56 -0
- package/src/modules/xmb/workflows/create-workflow/templates/step-file.md +139 -0
- package/src/modules/xmb/workflows/create-workflow/templates/workflow-plan.md +54 -0
- package/src/modules/xmb/workflows/create-workflow/templates/workflow.md +58 -0
- package/src/modules/xmb/workflows/create-workflow/workflow.md +58 -0
- package/src/modules/xmb/workflows/edit-agent/steps/step-01-discover-intent.md +134 -0
- package/src/modules/xmb/workflows/edit-agent/steps/step-02-analyze-agent.md +202 -0
- package/src/modules/xmb/workflows/edit-agent/steps/step-03-propose-changes.md +157 -0
- package/src/modules/xmb/workflows/edit-agent/steps/step-04-apply-changes.md +150 -0
- package/src/modules/xmb/workflows/edit-agent/steps/step-05-validate.md +150 -0
- package/src/modules/xmb/workflows/edit-agent/workflow.md +58 -0
- package/src/modules/xmb/workflows/edit-workflow/steps/step-01-analyze.md +221 -0
- package/src/modules/xmb/workflows/edit-workflow/steps/step-02-discover.md +253 -0
- package/src/modules/xmb/workflows/edit-workflow/steps/step-03-improve.md +217 -0
- package/src/modules/xmb/workflows/edit-workflow/steps/step-04-validate.md +193 -0
- package/src/modules/xmb/workflows/edit-workflow/steps/step-05-compliance-check.md +245 -0
- package/src/modules/xmb/workflows/edit-workflow/templates/completion-summary.md +75 -0
- package/src/modules/xmb/workflows/edit-workflow/templates/improvement-goals.md +68 -0
- package/src/modules/xmb/workflows/edit-workflow/templates/improvement-log.md +40 -0
- package/src/modules/xmb/workflows/edit-workflow/templates/validation-results.md +51 -0
- package/src/modules/xmb/workflows/edit-workflow/templates/workflow-analysis.md +56 -0
- package/src/modules/xmb/workflows/edit-workflow/workflow.md +58 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-01-validate-goal.md +152 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-02-workflow-validation.md +243 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-03-step-validation.md +274 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-04-file-validation.md +295 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-05-intent-spectrum-validation.md +264 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-06-web-subprocess-validation.md +360 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-07-holistic-analysis.md +258 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/steps/step-08-generate-report.md +301 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/templates/compliance-report.md +140 -0
- package/src/modules/xmb/workflows/workflow-compliance-check/workflow.md +58 -0
- package/src/modules/xmb/workflows-legacy/create-module/README.md +229 -0
- package/src/modules/xmb/workflows-legacy/create-module/brainstorm-context.md +137 -0
- package/src/modules/xmb/workflows-legacy/create-module/checklist.md +235 -0
- package/src/modules/xmb/workflows-legacy/create-module/installer-templates/install-config.yaml +92 -0
- package/src/modules/xmb/workflows-legacy/create-module/installer-templates/installer.js +231 -0
- package/src/modules/xmb/workflows-legacy/create-module/instructions.md +577 -0
- package/src/modules/xmb/workflows-legacy/create-module/module-structure.md +400 -0
- package/src/modules/xmb/workflows-legacy/create-module/workflow.yaml +52 -0
- package/src/modules/xmb/workflows-legacy/edit-module/README.md +187 -0
- package/src/modules/xmb/workflows-legacy/edit-module/checklist.md +165 -0
- package/src/modules/xmb/workflows-legacy/edit-module/instructions.md +341 -0
- package/src/modules/xmb/workflows-legacy/edit-module/workflow.yaml +34 -0
- package/src/modules/xmb/workflows-legacy/module-brief/README.md +264 -0
- package/src/modules/xmb/workflows-legacy/module-brief/checklist.md +116 -0
- package/src/modules/xmb/workflows-legacy/module-brief/instructions.md +268 -0
- package/src/modules/xmb/workflows-legacy/module-brief/template.md +275 -0
- package/src/modules/xmb/workflows-legacy/module-brief/workflow.yaml +36 -0
- package/src/modules/xmc/README.md +128 -0
- package/src/modules/xmc/_module-installer/install-config.yaml +53 -0
- package/src/modules/xmc/_module-installer/installer.js +131 -0
- package/src/modules/xmc/_module-installer/platform-specifics/claude-code.js +35 -0
- package/src/modules/xmc/_module-installer/platform-specifics/windsurf.js +32 -0
- package/src/modules/xmc/agents/analyst.agent.yaml +49 -0
- package/src/modules/xmc/agents/architect.agent.yaml +52 -0
- package/src/modules/xmc/agents/auto-iteration-orchestrator.agent.yaml +115 -0
- package/src/modules/xmc/agents/dev.agent.yaml +44 -0
- package/src/modules/xmc/agents/pm.agent.yaml +50 -0
- package/src/modules/xmc/agents/quick-flow-solo-dev.agent.yaml +36 -0
- package/src/modules/xmc/agents/sm.agent.yaml +55 -0
- package/src/modules/xmc/agents/tea.agent.yaml +70 -0
- package/src/modules/xmc/agents/tech-writer.agent.yaml +67 -0
- package/src/modules/xmc/agents/ux-designer.agent.yaml +45 -0
- package/src/modules/xmc/data/README.md +29 -0
- package/src/modules/xmc/data/documentation-standards.md +262 -0
- package/src/modules/xmc/data/project-context-template.md +40 -0
- package/src/modules/xmc/docs/README.md +252 -0
- package/src/modules/xmc/docs/agents-guide.md +952 -0
- package/src/modules/xmc/docs/brownfield-guide.md +750 -0
- package/src/modules/xmc/docs/enterprise-agentic-development.md +686 -0
- package/src/modules/xmc/docs/faq.md +561 -0
- package/src/modules/xmc/docs/glossary.md +303 -0
- package/src/modules/xmc/docs/images/workflow-method-greenfield.excalidraw +5174 -0
- package/src/modules/xmc/docs/images/workflow-method-greenfield.svg +2 -0
- package/src/modules/xmc/docs/iteration-development-guide.md +752 -0
- package/src/modules/xmc/docs/party-mode.md +224 -0
- package/src/modules/xmc/docs/quick-flow-solo-dev.md +337 -0
- package/src/modules/xmc/docs/quick-start.md +367 -0
- package/src/modules/xmc/docs/scale-adaptive-system.md +618 -0
- package/src/modules/xmc/docs/test-architecture.md +462 -0
- package/src/modules/xmc/docs/workflow-architecture-reference.md +366 -0
- package/src/modules/xmc/docs/workflow-document-project-reference.md +489 -0
- package/src/modules/xmc/docs/workflows-analysis.md +266 -0
- package/src/modules/xmc/docs/workflows-implementation.md +171 -0
- package/src/modules/xmc/docs/workflows-planning.md +451 -0
- package/src/modules/xmc/docs/workflows-solutioning.md +509 -0
- package/src/modules/xmc/docs/xiaoma-quick-flow.md +528 -0
- package/src/modules/xmc/sub-modules/claude-code/config.yaml +5 -0
- package/src/modules/xmc/sub-modules/claude-code/injections.yaml +242 -0
- package/src/modules/xmc/sub-modules/claude-code/readme.md +87 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/api-documenter.md +102 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/codebase-analyzer.md +82 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/data-analyst.md +101 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-analysis/pattern-detector.md +84 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/dependency-mapper.md +83 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/epic-optimizer.md +81 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/requirements-analyst.md +61 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/technical-decisions-curator.md +168 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/trend-spotter.md +115 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/user-journey-mapper.md +123 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-planning/user-researcher.md +72 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-research/market-researcher.md +51 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-research/tech-debt-auditor.md +106 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/document-reviewer.md +102 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/technical-evaluator.md +68 -0
- package/src/modules/xmc/sub-modules/claude-code/sub-agents/bmad-review/test-coverage-analyzer.md +108 -0
- package/src/modules/xmc/teams/default-party.csv +21 -0
- package/src/modules/xmc/teams/team-fullstack.yaml +12 -0
- package/src/modules/xmc/testarch/knowledge/api-request.md +303 -0
- package/src/modules/xmc/testarch/knowledge/auth-session.md +356 -0
- package/src/modules/xmc/testarch/knowledge/burn-in.md +273 -0
- package/src/modules/xmc/testarch/knowledge/ci-burn-in.md +675 -0
- package/src/modules/xmc/testarch/knowledge/component-tdd.md +486 -0
- package/src/modules/xmc/testarch/knowledge/contract-testing.md +957 -0
- package/src/modules/xmc/testarch/knowledge/data-factories.md +500 -0
- package/src/modules/xmc/testarch/knowledge/email-auth.md +721 -0
- package/src/modules/xmc/testarch/knowledge/error-handling.md +725 -0
- package/src/modules/xmc/testarch/knowledge/feature-flags.md +750 -0
- package/src/modules/xmc/testarch/knowledge/file-utils.md +260 -0
- package/src/modules/xmc/testarch/knowledge/fixture-architecture.md +401 -0
- package/src/modules/xmc/testarch/knowledge/fixtures-composition.md +382 -0
- package/src/modules/xmc/testarch/knowledge/intercept-network-call.md +280 -0
- package/src/modules/xmc/testarch/knowledge/log.md +294 -0
- package/src/modules/xmc/testarch/knowledge/network-error-monitor.md +272 -0
- package/src/modules/xmc/testarch/knowledge/network-first.md +486 -0
- package/src/modules/xmc/testarch/knowledge/network-recorder.md +265 -0
- package/src/modules/xmc/testarch/knowledge/nfr-criteria.md +670 -0
- package/src/modules/xmc/testarch/knowledge/overview.md +284 -0
- package/src/modules/xmc/testarch/knowledge/playwright-config.md +730 -0
- package/src/modules/xmc/testarch/knowledge/probability-impact.md +601 -0
- package/src/modules/xmc/testarch/knowledge/recurse.md +296 -0
- package/src/modules/xmc/testarch/knowledge/risk-governance.md +615 -0
- package/src/modules/xmc/testarch/knowledge/selective-testing.md +732 -0
- package/src/modules/xmc/testarch/knowledge/selector-resilience.md +527 -0
- package/src/modules/xmc/testarch/knowledge/test-healing-patterns.md +644 -0
- package/src/modules/xmc/testarch/knowledge/test-levels-framework.md +473 -0
- package/src/modules/xmc/testarch/knowledge/test-priorities-matrix.md +373 -0
- package/src/modules/xmc/testarch/knowledge/test-quality.md +664 -0
- package/src/modules/xmc/testarch/knowledge/timing-debugging.md +372 -0
- package/src/modules/xmc/testarch/knowledge/visual-debugging.md +524 -0
- package/src/modules/xmc/testarch/tea-index.csv +33 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/product-brief.template.md +8 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-01-init.md +192 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-01b-continue.md +167 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-02-vision.md +203 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-03-users.md +206 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-04-metrics.md +209 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-05-scope.md +223 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/steps/step-06-complete.md +199 -0
- package/src/modules/xmc/workflows/1-analysis/product-brief/workflow.md +58 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-01-init.md +136 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +228 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +237 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +205 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +233 -0
- package/src/modules/xmc/workflows/1-analysis/research/domain-steps/step-06-research-synthesis.md +443 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-01-init.md +182 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-02-customer-behavior.md +235 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-02-customer-insights.md +198 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-03-customer-pain-points.md +247 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-04-customer-decisions.md +257 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-05-competitive-analysis.md +175 -0
- package/src/modules/xmc/workflows/1-analysis/research/market-steps/step-06-research-completion.md +475 -0
- package/src/modules/xmc/workflows/1-analysis/research/research.template.md +16 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-01-init.md +136 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +237 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +246 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +200 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +237 -0
- package/src/modules/xmc/workflows/1-analysis/research/technical-steps/step-06-research-synthesis.md +486 -0
- package/src/modules/xmc/workflows/1-analysis/research/workflow.md +198 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +159 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +126 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +209 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +215 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +218 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +233 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +251 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +253 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +223 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +223 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +240 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +247 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +236 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +263 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +226 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/ux-design-template.md +13 -0
- package/src/modules/xmc/workflows/2-plan-workflows/create-ux-design/workflow.md +53 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/domain-complexity.csv +13 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/prd-template.md +9 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/project-types.csv +11 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-01-init.md +161 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-01b-continue.md +123 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-02-discovery.md +275 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-03-success.md +271 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-04-journeys.md +272 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-05-domain.md +249 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-06-innovation.md +240 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-07-project-type.md +236 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-08-scoping.md +280 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-09-functional.md +251 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-10-nonfunctional.md +275 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/steps/step-11-complete.md +210 -0
- package/src/modules/xmc/workflows/2-plan-workflows/prd/workflow.md +61 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/architecture-decision-template.md +13 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/data/domain-complexity.csv +11 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/data/project-types.csv +7 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-01-init.md +194 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-01b-continue.md +163 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-02-context.md +223 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-03-starter.md +330 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-04-decisions.md +317 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-05-patterns.md +358 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-06-structure.md +378 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-07-validation.md +358 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/steps/step-08-complete.md +351 -0
- package/src/modules/xmc/workflows/3-solutioning/architecture/workflow.md +48 -0
- package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/epics-template.md +80 -0
- package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/instructions.md +387 -0
- package/src/modules/xmc/workflows/3-solutioning/create-epics-and-stories/workflow.yaml +53 -0
- package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/checklist.md +169 -0
- package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/instructions.md +332 -0
- package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/template.md +146 -0
- package/src/modules/xmc/workflows/3-solutioning/implementation-readiness/workflow.yaml +64 -0
- package/src/modules/xmc/workflows/4-implementation/code-review/instructions.xml +176 -0
- package/src/modules/xmc/workflows/4-implementation/code-review/workflow.yaml +54 -0
- package/src/modules/xmc/workflows/4-implementation/correct-course/checklist.md +279 -0
- package/src/modules/xmc/workflows/4-implementation/correct-course/instructions.md +206 -0
- package/src/modules/xmc/workflows/4-implementation/correct-course/workflow.yaml +58 -0
- package/src/modules/xmc/workflows/4-implementation/create-story/checklist.md +358 -0
- package/src/modules/xmc/workflows/4-implementation/create-story/instructions.xml +354 -0
- package/src/modules/xmc/workflows/4-implementation/create-story/template.md +51 -0
- package/src/modules/xmc/workflows/4-implementation/create-story/workflow.yaml +60 -0
- package/src/modules/xmc/workflows/4-implementation/dev-story/checklist.md +80 -0
- package/src/modules/xmc/workflows/4-implementation/dev-story/instructions.xml +406 -0
- package/src/modules/xmc/workflows/4-implementation/dev-story/workflow.yaml +27 -0
- package/src/modules/xmc/workflows/4-implementation/retrospective/instructions.md +1443 -0
- package/src/modules/xmc/workflows/4-implementation/retrospective/workflow.yaml +57 -0
- package/src/modules/xmc/workflows/4-implementation/sprint-planning/checklist.md +33 -0
- package/src/modules/xmc/workflows/4-implementation/sprint-planning/instructions.md +232 -0
- package/src/modules/xmc/workflows/4-implementation/sprint-planning/sprint-status-template.yaml +56 -0
- package/src/modules/xmc/workflows/4-implementation/sprint-planning/workflow.yaml +53 -0
- package/src/modules/xmc/workflows/auto-iteration/full-auto-workflow.md +692 -0
- package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-call-points.md +595 -0
- package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-interface.md +347 -0
- package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-query.md +368 -0
- package/src/modules/xmc/workflows/auto-iteration/knowledge-base/kb-setup.md +343 -0
- package/src/modules/xmc/workflows/auto-iteration/phases/phase-1-analyze.md +406 -0
- package/src/modules/xmc/workflows/auto-iteration/phases/phase-2-plan.md +574 -0
- package/src/modules/xmc/workflows/auto-iteration/phases/phase-3-design.md +628 -0
- package/src/modules/xmc/workflows/auto-iteration/phases/phase-4-develop.md +622 -0
- package/src/modules/xmc/workflows/auto-iteration/phases/phase-5-test.md +538 -0
- package/src/modules/xmc/workflows/auto-iteration/resume.md +254 -0
- package/src/modules/xmc/workflows/auto-iteration/status.md +194 -0
- package/src/modules/xmc/workflows/auto-iteration/templates/auto-iteration-status.template.yaml +142 -0
- package/src/modules/xmc/workflows/bmad-quick-flow/create-tech-spec/instructions.md +115 -0
- package/src/modules/xmc/workflows/bmad-quick-flow/create-tech-spec/workflow.yaml +26 -0
- package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/checklist.md +25 -0
- package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/instructions.md +105 -0
- package/src/modules/xmc/workflows/bmad-quick-flow/quick-dev/workflow.yaml +29 -0
- package/src/modules/xmc/workflows/diagrams/_shared/excalidraw-library.json +90 -0
- package/src/modules/xmc/workflows/diagrams/_shared/excalidraw-templates.yaml +127 -0
- package/src/modules/xmc/workflows/diagrams/create-dataflow/checklist.md +39 -0
- package/src/modules/xmc/workflows/diagrams/create-dataflow/instructions.md +130 -0
- package/src/modules/xmc/workflows/diagrams/create-dataflow/workflow.yaml +27 -0
- package/src/modules/xmc/workflows/diagrams/create-diagram/checklist.md +43 -0
- package/src/modules/xmc/workflows/diagrams/create-diagram/instructions.md +141 -0
- package/src/modules/xmc/workflows/diagrams/create-diagram/workflow.yaml +27 -0
- package/src/modules/xmc/workflows/diagrams/create-flowchart/checklist.md +49 -0
- package/src/modules/xmc/workflows/diagrams/create-flowchart/instructions.md +241 -0
- package/src/modules/xmc/workflows/diagrams/create-flowchart/workflow.yaml +27 -0
- package/src/modules/xmc/workflows/diagrams/create-wireframe/checklist.md +38 -0
- package/src/modules/xmc/workflows/diagrams/create-wireframe/instructions.md +133 -0
- package/src/modules/xmc/workflows/diagrams/create-wireframe/workflow.yaml +27 -0
- package/src/modules/xmc/workflows/document-project/checklist.md +245 -0
- package/src/modules/xmc/workflows/document-project/documentation-requirements.csv +12 -0
- package/src/modules/xmc/workflows/document-project/instructions.md +222 -0
- package/src/modules/xmc/workflows/document-project/templates/deep-dive-template.md +345 -0
- package/src/modules/xmc/workflows/document-project/templates/index-template.md +169 -0
- package/src/modules/xmc/workflows/document-project/templates/project-overview-template.md +103 -0
- package/src/modules/xmc/workflows/document-project/templates/project-scan-report-schema.json +160 -0
- package/src/modules/xmc/workflows/document-project/templates/source-tree-template.md +135 -0
- package/src/modules/xmc/workflows/document-project/workflow.yaml +31 -0
- package/src/modules/xmc/workflows/document-project/workflows/deep-dive-instructions.md +298 -0
- package/src/modules/xmc/workflows/document-project/workflows/deep-dive.yaml +31 -0
- package/src/modules/xmc/workflows/document-project/workflows/full-scan-instructions.md +1106 -0
- package/src/modules/xmc/workflows/document-project/workflows/full-scan.yaml +31 -0
- package/src/modules/xmc/workflows/generate-project-context/project-context-template.md +20 -0
- package/src/modules/xmc/workflows/generate-project-context/steps/step-01-discover.md +193 -0
- package/src/modules/xmc/workflows/generate-project-context/steps/step-02-generate.md +317 -0
- package/src/modules/xmc/workflows/generate-project-context/steps/step-03-complete.md +277 -0
- package/src/modules/xmc/workflows/generate-project-context/workflow.md +48 -0
- package/src/modules/xmc/workflows/testarch/atdd/atdd-checklist-template.md +363 -0
- package/src/modules/xmc/workflows/testarch/atdd/checklist.md +373 -0
- package/src/modules/xmc/workflows/testarch/atdd/instructions.md +805 -0
- package/src/modules/xmc/workflows/testarch/atdd/workflow.yaml +47 -0
- package/src/modules/xmc/workflows/testarch/automate/checklist.md +580 -0
- package/src/modules/xmc/workflows/testarch/automate/instructions.md +1324 -0
- package/src/modules/xmc/workflows/testarch/automate/workflow.yaml +54 -0
- package/src/modules/xmc/workflows/testarch/ci/checklist.md +246 -0
- package/src/modules/xmc/workflows/testarch/ci/github-actions-template.yaml +165 -0
- package/src/modules/xmc/workflows/testarch/ci/gitlab-ci-template.yaml +128 -0
- package/src/modules/xmc/workflows/testarch/ci/instructions.md +534 -0
- package/src/modules/xmc/workflows/testarch/ci/workflow.yaml +47 -0
- package/src/modules/xmc/workflows/testarch/framework/checklist.md +321 -0
- package/src/modules/xmc/workflows/testarch/framework/instructions.md +481 -0
- package/src/modules/xmc/workflows/testarch/framework/workflow.yaml +49 -0
- package/src/modules/xmc/workflows/testarch/nfr-assess/checklist.md +405 -0
- package/src/modules/xmc/workflows/testarch/nfr-assess/instructions.md +722 -0
- package/src/modules/xmc/workflows/testarch/nfr-assess/nfr-report-template.md +443 -0
- package/src/modules/xmc/workflows/testarch/nfr-assess/workflow.yaml +49 -0
- package/src/modules/xmc/workflows/testarch/test-design/checklist.md +234 -0
- package/src/modules/xmc/workflows/testarch/test-design/instructions.md +788 -0
- package/src/modules/xmc/workflows/testarch/test-design/test-design-template.md +285 -0
- package/src/modules/xmc/workflows/testarch/test-design/workflow.yaml +50 -0
- package/src/modules/xmc/workflows/testarch/test-review/checklist.md +470 -0
- package/src/modules/xmc/workflows/testarch/test-review/instructions.md +628 -0
- package/src/modules/xmc/workflows/testarch/test-review/test-review-template.md +388 -0
- package/src/modules/xmc/workflows/testarch/test-review/workflow.yaml +48 -0
- package/src/modules/xmc/workflows/testarch/trace/checklist.md +654 -0
- package/src/modules/xmc/workflows/testarch/trace/instructions.md +1045 -0
- package/src/modules/xmc/workflows/testarch/trace/trace-template.md +673 -0
- package/src/modules/xmc/workflows/testarch/trace/workflow.yaml +57 -0
- package/src/modules/xmc/workflows/workflow-status/init/instructions.md +331 -0
- package/src/modules/xmc/workflows/workflow-status/init/workflow.yaml +29 -0
- package/src/modules/xmc/workflows/workflow-status/instructions.md +395 -0
- package/src/modules/xmc/workflows/workflow-status/paths/enterprise-brownfield.yaml +127 -0
- package/src/modules/xmc/workflows/workflow-status/paths/enterprise-greenfield.yaml +115 -0
- package/src/modules/xmc/workflows/workflow-status/paths/method-brownfield.yaml +111 -0
- package/src/modules/xmc/workflows/workflow-status/paths/method-greenfield.yaml +102 -0
- package/src/modules/xmc/workflows/workflow-status/project-levels.yaml +59 -0
- package/src/modules/xmc/workflows/workflow-status/workflow-status-template.yaml +24 -0
- package/src/modules/xmc/workflows/workflow-status/workflow.yaml +30 -0
- package/src/utility/models/action-command-header.md +0 -0
- package/src/utility/models/agent-activation-ide.xml +51 -0
- package/src/utility/models/agent-activation-web.xml +50 -0
- package/src/utility/models/agent-command-header.md +1 -0
- package/src/utility/models/agent-config-template.md +23 -0
- package/src/utility/models/agent-in-team-activation.xml +3 -0
- package/src/utility/models/fragments/activation-rules.xml +7 -0
- package/src/utility/models/fragments/activation-steps.xml +16 -0
- package/src/utility/models/fragments/handler-action.xml +4 -0
- package/src/utility/models/fragments/handler-data.xml +5 -0
- package/src/utility/models/fragments/handler-exec.xml +6 -0
- package/src/utility/models/fragments/handler-multi.xml +14 -0
- package/src/utility/models/fragments/handler-tmpl.xml +5 -0
- package/src/utility/models/fragments/handler-validate-workflow.xml +7 -0
- package/src/utility/models/fragments/handler-workflow.xml +9 -0
- package/src/utility/models/fragments/menu-handlers.xml +6 -0
- package/src/utility/models/fragments/web-bundle-activation-steps.xml +32 -0
- package/src/utility/templates/agent.customize.template.yaml +42 -0
- package/test/README.md +295 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +29 -0
- package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +21 -0
- package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/core-agent-with-module.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +24 -0
- package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/metadata/module-agent-missing-module.agent.yaml +25 -0
- package/test/fixtures/agent-schema/invalid/metadata/wrong-module-value.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +26 -0
- package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +23 -0
- package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +28 -0
- package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +30 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +5 -0
- package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +27 -0
- package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +11 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +19 -0
- package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +18 -0
- package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +26 -0
- package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +30 -0
- package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +37 -0
- package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +33 -0
- package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +23 -0
- package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +21 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +27 -0
- package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +29 -0
- package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +23 -0
- package/test/test-agent-schema.js +387 -0
- package/test/test-cli-integration.sh +159 -0
- package/test/test-installation-components.js +214 -0
- package/test/unit-test-schema.js +133 -0
- package/tools/cli/README.md +609 -0
- package/tools/cli/bundlers/bundle-web.js +179 -0
- package/tools/cli/bundlers/test-analyst.js +28 -0
- package/tools/cli/bundlers/test-bundler.js +119 -0
- package/tools/cli/bundlers/web-bundler.js +1764 -0
- package/tools/cli/commands/agent-install.js +409 -0
- package/tools/cli/commands/build.js +458 -0
- package/tools/cli/commands/cleanup.js +141 -0
- package/tools/cli/commands/install.js +124 -0
- package/tools/cli/commands/list.js +28 -0
- package/tools/cli/commands/status.js +47 -0
- package/tools/cli/commands/uninstall.js +44 -0
- package/tools/cli/commands/update.js +28 -0
- package/tools/cli/installers/lib/core/config-collector.js +876 -0
- package/tools/cli/installers/lib/core/dependency-resolver.js +725 -0
- package/tools/cli/installers/lib/core/detector.js +329 -0
- package/tools/cli/installers/lib/core/ide-config-manager.js +154 -0
- package/tools/cli/installers/lib/core/installer.js +2956 -0
- package/tools/cli/installers/lib/core/manifest-generator.js +692 -0
- package/tools/cli/installers/lib/core/manifest.js +540 -0
- package/tools/cli/installers/lib/ide/_base-ide.js +651 -0
- package/tools/cli/installers/lib/ide/antigravity.js +510 -0
- package/tools/cli/installers/lib/ide/auggie.js +232 -0
- package/tools/cli/installers/lib/ide/claude-code.js +512 -0
- package/tools/cli/installers/lib/ide/cline.js +269 -0
- package/tools/cli/installers/lib/ide/codex.js +388 -0
- package/tools/cli/installers/lib/ide/crush.js +287 -0
- package/tools/cli/installers/lib/ide/cursor.js +400 -0
- package/tools/cli/installers/lib/ide/gemini.js +253 -0
- package/tools/cli/installers/lib/ide/github-copilot.js +387 -0
- package/tools/cli/installers/lib/ide/iflow.js +172 -0
- package/tools/cli/installers/lib/ide/kilo.js +249 -0
- package/tools/cli/installers/lib/ide/manager.js +245 -0
- package/tools/cli/installers/lib/ide/opencode.js +257 -0
- package/tools/cli/installers/lib/ide/qwen.js +372 -0
- package/tools/cli/installers/lib/ide/roo.js +324 -0
- package/tools/cli/installers/lib/ide/rovo-dev.js +290 -0
- package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +90 -0
- package/tools/cli/installers/lib/ide/shared/module-injections.js +133 -0
- package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +119 -0
- package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +237 -0
- package/tools/cli/installers/lib/ide/shared/xiaoma-artifacts.js +143 -0
- package/tools/cli/installers/lib/ide/templates/agent-command-template.md +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +14 -0
- package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +12 -0
- package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +13 -0
- package/tools/cli/installers/lib/ide/trae.js +313 -0
- package/tools/cli/installers/lib/ide/windsurf.js +258 -0
- package/tools/cli/installers/lib/modules/manager.js +751 -0
- package/tools/cli/lib/activation-builder.js +168 -0
- package/tools/cli/lib/agent/compiler.js +524 -0
- package/tools/cli/lib/agent/installer.js +735 -0
- package/tools/cli/lib/agent/template-engine.js +152 -0
- package/tools/cli/lib/agent-analyzer.js +109 -0
- package/tools/cli/lib/agent-party-generator.js +206 -0
- package/tools/cli/lib/cli-utils.js +210 -0
- package/tools/cli/lib/config.js +212 -0
- package/tools/cli/lib/file-ops.js +204 -0
- package/tools/cli/lib/platform-codes.js +116 -0
- package/tools/cli/lib/project-root.js +71 -0
- package/tools/cli/lib/replace-project-root.js +239 -0
- package/tools/cli/lib/ui.js +769 -0
- package/tools/cli/lib/xml-handler.js +229 -0
- package/tools/cli/lib/xml-to-markdown.js +82 -0
- package/tools/{yaml-format.js → cli/lib/yaml-format.js} +36 -66
- package/tools/cli/lib/yaml-xml-builder.js +606 -0
- package/tools/cli/regenerate-manifests.js +28 -0
- package/tools/cli/test-yaml-builder.js +43 -0
- package/tools/cli/xiaoma-cli.js +40 -0
- package/tools/flattener/aggregate.js +12 -30
- package/tools/flattener/binary.js +43 -46
- package/tools/flattener/discovery.js +15 -23
- package/tools/flattener/files.js +6 -6
- package/tools/flattener/ignoreRules.js +122 -127
- package/tools/flattener/main.js +140 -330
- package/tools/flattener/projectRoot.js +71 -81
- package/tools/flattener/prompts.js +10 -12
- package/tools/flattener/stats.helpers.js +63 -119
- package/tools/flattener/stats.js +2 -7
- package/tools/flattener/test-matrix.js +169 -228
- package/tools/flattener/xml.js +23 -31
- package/tools/format-workflow-md.js +263 -0
- package/tools/platform-codes.yaml +145 -0
- package/tools/schema/agent.js +389 -0
- package/tools/validate-agent-schema.js +110 -0
- package/tools/validate-bundles.js +87 -0
- package/tools/xiaoma-npx-wrapper.js +18 -24
- package/.claude/agents/tech-translator.md +0 -124
- package/.claude/settings.local.json +0 -37
- package/.idea/XiaoMa-Cli.iml +0 -9
- package/.idea/inspectionProfiles/Project_Default.xml +0 -6
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/prettier.xml +0 -6
- package/.idea/vcs.xml +0 -7
- package/.idea/workspace.xml +0 -114
- package/.xiaoma-core/.coordinator-state.json +0 -19
- package/CLAUDE.md +0 -283
- package/JAVA-BACKEND-COMMANDS-REFERENCE.md +0 -300
- package/JAVA-BACKEND-ITERATION-GUIDE.md +0 -2116
- package/common/tasks/create-doc.md +0 -103
- package/common/tasks/execute-checklist.md +0 -88
- package/common/utils/bmad-doc-template.md +0 -327
- package/common/utils/workflow-management.md +0 -71
- package/dist/agents/analyst.txt +0 -6308
- package/dist/agents/architect.txt +0 -3911
- package/dist/agents/automation-orchestrator.txt +0 -396
- package/dist/agents/dev.txt +0 -576
- package/dist/agents/full-requirement-orchestrator.txt +0 -505
- package/dist/agents/pm.txt +0 -2224
- package/dist/agents/po.txt +0 -1358
- package/dist/agents/qa.txt +0 -2002
- package/dist/agents/sm.txt +0 -2061
- package/dist/agents/ux-expert.txt +0 -707
- package/dist/agents/workflow-executor.txt +0 -1029
- package/dist/agents/workflow-helper.txt +0 -93
- package/dist/agents/xiaoma-master.txt +0 -9008
- package/dist/agents/xiaoma-orchestrator.txt +0 -1523
- package/dist/teams/team-all.txt +0 -19525
- package/dist/teams/team-fullstack-with-database.txt +0 -21500
- package/dist/teams/team-fullstack.txt +0 -13831
- package/dist/teams/team-ide-minimal.txt +0 -6698
- package/dist/teams/team-no-ui.txt +0 -12379
- package/docs/GUIDING-PRINCIPLES.md +0 -91
- package/docs/architecture/workflow-coordinator-implementation.md +0 -1188
- package/docs/architecture-sharding-modification.md +0 -623
- package/docs/automated-requirements-analysis-outputs.md +0 -896
- package/docs/core-architecture.md +0 -219
- package/docs/enhanced-ide-development-workflow.md +0 -248
- package/docs/prd/workflow-coordinator-prd.md +0 -1214
- package/docs/user-guide.md +0 -530
- package/docs/versioning-and-releases.md +0 -155
- package/docs/versions.md +0 -48
- package/docs/working-in-the-brownfield.md +0 -597
- package/tools/api-server.js +0 -367
- package/tools/builders/web-builder.js +0 -830
- package/tools/bump-all-versions.js +0 -133
- package/tools/cli.js +0 -157
- package/tools/installer/README.md +0 -8
- package/tools/installer/bin/xiaoma.js +0 -477
- package/tools/installer/config/ide-agent-config.yaml +0 -58
- package/tools/installer/config/install.config.yaml +0 -164
- package/tools/installer/lib/config-loader.js +0 -286
- package/tools/installer/lib/file-manager.js +0 -446
- package/tools/installer/lib/ide-base-setup.js +0 -238
- package/tools/installer/lib/ide-setup.js +0 -2027
- package/tools/installer/lib/installer.js +0 -2333
- package/tools/installer/lib/memory-profiler.js +0 -235
- package/tools/installer/lib/module-manager.js +0 -116
- package/tools/installer/lib/resource-locator.js +0 -334
- package/tools/installer/package-lock.json +0 -715
- package/tools/installer/package.json +0 -44
- package/tools/lib/dependency-resolver.js +0 -186
- package/tools/lib/yaml-utils.js +0 -34
- package/tools/md-assets/web-agent-startup-instructions.md +0 -39
- package/tools/preview-release-notes.js +0 -74
- package/tools/setup-hooks.sh +0 -37
- package/tools/shared/bannerArt.js +0 -105
- package/tools/sync-installer-version.js +0 -41
- package/tools/sync-version.sh +0 -23
- package/tools/upgraders/v3-to-v4-upgrader.js +0 -753
- package/tools/version-bump.js +0 -100
- package/tools/workflow-coordinator/README.md +0 -38
- package/tools/workflow-coordinator/USAGE.md +0 -548
- package/tools/workflow-coordinator/package-lock.json +0 -4868
- package/tools/workflow-coordinator/package.json +0 -35
- package/tools/workflow-coordinator/src/api/server.js +0 -207
- package/tools/workflow-coordinator/src/controller/workflow-controller.js +0 -263
- package/tools/workflow-coordinator/src/index.js +0 -113
- package/tools/workflow-coordinator/src/parser/workflow-parser.js +0 -144
- package/tools/workflow-coordinator/src/utils/state-manager.js +0 -59
- package/tools/workflow-coordinator/src/utils/validator.js +0 -86
- package/tools/workflow-coordinator/test/integration-test.js +0 -266
- package/tools/workflow-coordinator/test/quick-test.js +0 -127
- package/xiaoma-core/agent-teams/team-all.yaml +0 -15
- package/xiaoma-core/agent-teams/team-fullstack-with-database.yaml +0 -27
- package/xiaoma-core/agent-teams/team-fullstack.yaml +0 -19
- package/xiaoma-core/agent-teams/team-ide-minimal.yaml +0 -11
- package/xiaoma-core/agent-teams/team-no-ui.yaml +0 -14
- package/xiaoma-core/agents/analyst.md +0 -91
- package/xiaoma-core/agents/architect.md +0 -85
- package/xiaoma-core/agents/automated-fix-validator.yaml +0 -579
- package/xiaoma-core/agents/automated-quality-validator.yaml +0 -549
- package/xiaoma-core/agents/automation-orchestrator.md +0 -353
- package/xiaoma-core/agents/dev.md +0 -79
- package/xiaoma-core/agents/enhanced-workflow-orchestrator.yaml +0 -304
- package/xiaoma-core/agents/full-requirement-orchestrator.md +0 -462
- package/xiaoma-core/agents/global-requirements-auditor.yaml +0 -520
- package/xiaoma-core/agents/intelligent-template-adapter.yaml +0 -389
- package/xiaoma-core/agents/issue-dispatcher.yaml +0 -627
- package/xiaoma-core/agents/master-execution-engine.yaml +0 -543
- package/xiaoma-core/agents/pm.md +0 -82
- package/xiaoma-core/agents/po.md +0 -77
- package/xiaoma-core/agents/qa.md +0 -88
- package/xiaoma-core/agents/requirements-coverage-auditor.yaml +0 -373
- package/xiaoma-core/agents/sm.md +0 -67
- package/xiaoma-core/agents/ux-expert.md +0 -67
- package/xiaoma-core/agents/workflow-executor.md +0 -1031
- package/xiaoma-core/agents/workflow-helper.md +0 -481
- package/xiaoma-core/agents/xiaoma-master.md +0 -108
- package/xiaoma-core/agents/xiaoma-orchestrator.md +0 -145
- package/xiaoma-core/checklists/architect-checklist.md +0 -440
- package/xiaoma-core/checklists/change-checklist.md +0 -184
- package/xiaoma-core/checklists/dev-completion-checklist.md +0 -324
- package/xiaoma-core/checklists/pm-checklist.md +0 -372
- package/xiaoma-core/checklists/po-master-checklist.md +0 -434
- package/xiaoma-core/checklists/po-story-validation-checklist.md +0 -219
- package/xiaoma-core/checklists/qa-approval-checklist.md +0 -393
- package/xiaoma-core/checklists/story-dod-checklist.md +0 -96
- package/xiaoma-core/checklists/story-draft-checklist.md +0 -155
- package/xiaoma-core/core-config.yaml +0 -23
- package/xiaoma-core/data/bmad-kb.md +0 -809
- package/xiaoma-core/data/brainstorming-techniques.md +0 -38
- package/xiaoma-core/data/elicitation-methods.md +0 -156
- package/xiaoma-core/data/technical-preferences.md +0 -5
- package/xiaoma-core/data/test-levels-framework.md +0 -148
- package/xiaoma-core/data/test-priorities-matrix.md +0 -174
- package/xiaoma-core/scripts/build-validation/pre-dev-validation.sh +0 -71
- package/xiaoma-core/scripts/build-validation/progressive-validation.sh +0 -88
- package/xiaoma-core/scripts/build-validation/quick-check.sh +0 -69
- package/xiaoma-core/tasks/advanced-elicitation.md +0 -119
- package/xiaoma-core/tasks/analyze-existing-database.md +0 -155
- package/xiaoma-core/tasks/apply-qa-fixes.md +0 -150
- package/xiaoma-core/tasks/automated-story-cycle.md +0 -370
- package/xiaoma-core/tasks/batch-story-generation.md +0 -354
- package/xiaoma-core/tasks/brownfield-create-epic.md +0 -162
- package/xiaoma-core/tasks/brownfield-create-story.md +0 -149
- package/xiaoma-core/tasks/correct-course.md +0 -72
- package/xiaoma-core/tasks/create-brownfield-story.md +0 -314
- package/xiaoma-core/tasks/create-database-design.md +0 -161
- package/xiaoma-core/tasks/create-deep-research-prompt.md +0 -280
- package/xiaoma-core/tasks/create-enhanced-story-with-database.md +0 -250
- package/xiaoma-core/tasks/create-next-story.md +0 -114
- package/xiaoma-core/tasks/document-project.md +0 -345
- package/xiaoma-core/tasks/facilitate-brainstorming-session.md +0 -138
- package/xiaoma-core/tasks/generate-ai-frontend-prompt.md +0 -53
- package/xiaoma-core/tasks/generate-database-ddl.md +0 -240
- package/xiaoma-core/tasks/generate-database-entities.md +0 -501
- package/xiaoma-core/tasks/generate-rag-questions.md +0 -312
- package/xiaoma-core/tasks/index-docs.md +0 -175
- package/xiaoma-core/tasks/kb-mode-interaction.md +0 -77
- package/xiaoma-core/tasks/nfr-assess.md +0 -345
- package/xiaoma-core/tasks/project-integration-testing.md +0 -477
- package/xiaoma-core/tasks/qa-gate.md +0 -163
- package/xiaoma-core/tasks/requirement-analysis-with-rag.md +0 -1318
- package/xiaoma-core/tasks/requirements-coverage-audit.md +0 -198
- package/xiaoma-core/tasks/review-story.md +0 -316
- package/xiaoma-core/tasks/risk-profile.md +0 -355
- package/xiaoma-core/tasks/serial-development-orchestration.md +0 -426
- package/xiaoma-core/tasks/shard-doc.md +0 -187
- package/xiaoma-core/tasks/test-design.md +0 -176
- package/xiaoma-core/tasks/trace-requirements.md +0 -266
- package/xiaoma-core/tasks/validate-next-story.md +0 -136
- package/xiaoma-core/templates/api-design-tmpl.yaml +0 -704
- package/xiaoma-core/templates/architecture-tmpl.yaml +0 -650
- package/xiaoma-core/templates/brainstorming-output-tmpl.yaml +0 -156
- package/xiaoma-core/templates/brownfield-architecture-tmpl.yaml +0 -476
- package/xiaoma-core/templates/brownfield-prd-tmpl.yaml +0 -280
- package/xiaoma-core/templates/competitor-analysis-tmpl.yaml +0 -336
- package/xiaoma-core/templates/database-design-tmpl.yaml +0 -266
- package/xiaoma-core/templates/enhanced-story-with-database-tmpl.yaml +0 -428
- package/xiaoma-core/templates/front-end-architecture-tmpl.yaml +0 -272
- package/xiaoma-core/templates/front-end-spec-tmpl.yaml +0 -354
- package/xiaoma-core/templates/fullstack-architecture-tmpl.yaml +0 -925
- package/xiaoma-core/templates/global-qa-monitoring-tmpl.yaml +0 -443
- package/xiaoma-core/templates/market-research-tmpl.yaml +0 -252
- package/xiaoma-core/templates/maven-lombok-template.xml +0 -111
- package/xiaoma-core/templates/prd-tmpl.yaml +0 -202
- package/xiaoma-core/templates/project-brief-tmpl.yaml +0 -221
- package/xiaoma-core/templates/qa-gate-tmpl.yaml +0 -102
- package/xiaoma-core/templates/rag-knowledge-tmpl.yaml +0 -569
- package/xiaoma-core/templates/rag-questions-tmpl.yaml +0 -949
- package/xiaoma-core/templates/requirements-coverage-audit.yaml +0 -330
- package/xiaoma-core/templates/start-enhanced-workflow.yaml +0 -347
- package/xiaoma-core/templates/story-tmpl.yaml +0 -137
- package/xiaoma-core/workflows/automated-requirements-analysis.yaml +0 -2149
- package/xiaoma-core/workflows/automated-requirements-development.yaml +0 -739
- package/xiaoma-core/workflows/automated-story-development.yaml +0 -1264
- package/xiaoma-core/workflows/brownfield-fullstack.yaml +0 -298
- package/xiaoma-core/workflows/brownfield-service.yaml +0 -188
- package/xiaoma-core/workflows/brownfield-ui.yaml +0 -198
- package/xiaoma-core/workflows/enhanced-fullstack-with-database.yaml +0 -427
- package/xiaoma-core/workflows/enhanced-fullstack-with-qa-loop.yaml +0 -766
- package/xiaoma-core/workflows/full-requirement-automation.yaml +0 -1305
- package/xiaoma-core/workflows/greenfield-fullstack.yaml +0 -241
- package/xiaoma-core/workflows/greenfield-service.yaml +0 -207
- package/xiaoma-core/workflows/greenfield-ui.yaml +0 -236
|
@@ -0,0 +1,1324 @@
|
|
|
1
|
+
<!-- Powered by XIAOMA-CORE™ -->
|
|
2
|
+
|
|
3
|
+
# Test Automation Expansion
|
|
4
|
+
|
|
5
|
+
**Workflow ID**: `{xiaoma_folder}/xmc/testarch/automate`
|
|
6
|
+
**Version**: 4.0 (XiaoMa v6)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Overview
|
|
11
|
+
|
|
12
|
+
Expands test automation coverage by generating comprehensive test suites at appropriate levels (E2E, API, Component, Unit) with supporting infrastructure. This workflow operates in **dual mode**:
|
|
13
|
+
|
|
14
|
+
1. **XiaoMa-Integrated Mode**: Works WITH XiaoMa artifacts (story, tech-spec, PRD, test-design) to expand coverage after story implementation
|
|
15
|
+
2. **Standalone Mode**: Works WITHOUT XiaoMa artifacts - analyzes existing codebase and generates tests independently
|
|
16
|
+
|
|
17
|
+
**Core Principle**: Generate prioritized, deterministic tests that avoid duplicate coverage and follow testing best practices.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Preflight Requirements
|
|
22
|
+
|
|
23
|
+
**Flexible:** This workflow can run with minimal prerequisites. Only HALT if framework is completely missing.
|
|
24
|
+
|
|
25
|
+
### Required (Always)
|
|
26
|
+
|
|
27
|
+
- ✅ Framework scaffolding configured (run `framework` workflow if missing)
|
|
28
|
+
- ✅ Test framework configuration available (playwright.config.ts or cypress.config.ts)
|
|
29
|
+
|
|
30
|
+
### Optional (XiaoMa-Integrated Mode)
|
|
31
|
+
|
|
32
|
+
- Story markdown with acceptance criteria (enhances coverage targeting)
|
|
33
|
+
- Tech spec or PRD (provides architectural context)
|
|
34
|
+
- Test design document (provides risk/priority context)
|
|
35
|
+
|
|
36
|
+
### Optional (Standalone Mode)
|
|
37
|
+
|
|
38
|
+
- Source code to analyze (feature implementation)
|
|
39
|
+
- Existing tests (for gap analysis)
|
|
40
|
+
|
|
41
|
+
**If framework is missing:** HALT with message: "Framework scaffolding required. Run `xiaoma tea *framework` first."
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Step 1: Determine Execution Mode and Load Context
|
|
46
|
+
|
|
47
|
+
### Actions
|
|
48
|
+
|
|
49
|
+
1. **Detect Execution Mode**
|
|
50
|
+
|
|
51
|
+
Check if XiaoMa artifacts are available:
|
|
52
|
+
- If `{story_file}` variable is set → XiaoMa-Integrated Mode
|
|
53
|
+
- If `{target_feature}` or `{target_files}` set → Standalone Mode
|
|
54
|
+
- If neither set → Auto-discover mode (scan codebase for features needing tests)
|
|
55
|
+
|
|
56
|
+
2. **Load XiaoMa Artifacts (If Available)**
|
|
57
|
+
|
|
58
|
+
**XiaoMa-Integrated Mode:**
|
|
59
|
+
- Read story markdown from `{story_file}`
|
|
60
|
+
- Extract acceptance criteria and technical requirements
|
|
61
|
+
- Load tech-spec.md if `{use_tech_spec}` is true
|
|
62
|
+
- Load test-design.md if `{use_test_design}` is true
|
|
63
|
+
- Load PRD.md if `{use_prd}` is true
|
|
64
|
+
- Note: These are **optional enhancements**, not hard requirements
|
|
65
|
+
|
|
66
|
+
**Standalone Mode:**
|
|
67
|
+
- Skip XiaoMa artifact loading
|
|
68
|
+
- Proceed directly to source code analysis
|
|
69
|
+
|
|
70
|
+
3. **Load Framework Configuration**
|
|
71
|
+
- Read test framework config (playwright.config.ts or cypress.config.ts)
|
|
72
|
+
- Identify test directory structure from `{test_dir}`
|
|
73
|
+
- Check existing test patterns in `{test_dir}`
|
|
74
|
+
- Note test runner capabilities (parallel execution, fixtures, etc.)
|
|
75
|
+
|
|
76
|
+
4. **Analyze Existing Test Coverage**
|
|
77
|
+
|
|
78
|
+
If `{analyze_coverage}` is true:
|
|
79
|
+
- Search `{test_dir}` for existing test files
|
|
80
|
+
- Identify tested features vs untested features
|
|
81
|
+
- Map tests to source files (coverage gaps)
|
|
82
|
+
- Check existing fixture and factory patterns
|
|
83
|
+
|
|
84
|
+
5. **Check Playwright Utils Flag**
|
|
85
|
+
|
|
86
|
+
Read `{config_source}` and check `config.tea_use_playwright_utils`.
|
|
87
|
+
|
|
88
|
+
6. **Load Knowledge Base Fragments**
|
|
89
|
+
|
|
90
|
+
**Critical:** Consult `{project-root}/{xiaoma_folder}/xmc/testarch/tea-index.csv` to load:
|
|
91
|
+
|
|
92
|
+
**Core Testing Patterns (Always load):**
|
|
93
|
+
- `test-levels-framework.md` - Test level selection (E2E vs API vs Component vs Unit with decision matrix, 467 lines, 4 examples)
|
|
94
|
+
- `test-priorities-matrix.md` - Priority classification (P0-P3 with automated scoring, risk mapping, 389 lines, 2 examples)
|
|
95
|
+
- `data-factories.md` - Factory patterns with faker (overrides, nested factories, API seeding, 498 lines, 5 examples)
|
|
96
|
+
- `selective-testing.md` - Targeted test execution strategies (tag-based, spec filters, diff-based, promotion rules, 727 lines, 4 examples)
|
|
97
|
+
- `ci-burn-in.md` - Flaky test detection patterns (10-iteration burn-in, sharding, selective execution, 678 lines, 4 examples)
|
|
98
|
+
- `test-quality.md` - Test design principles (deterministic, isolated, explicit assertions, length/time limits, 658 lines, 5 examples)
|
|
99
|
+
|
|
100
|
+
**If `config.tea_use_playwright_utils: true` (Playwright Utils Integration - All Utilities):**
|
|
101
|
+
- `overview.md` - Playwright utils installation, design principles, fixture patterns
|
|
102
|
+
- `api-request.md` - Typed HTTP client with schema validation
|
|
103
|
+
- `network-recorder.md` - HAR record/playback for offline testing
|
|
104
|
+
- `auth-session.md` - Token persistence and multi-user support
|
|
105
|
+
- `intercept-network-call.md` - Network spy/stub with automatic JSON parsing
|
|
106
|
+
- `recurse.md` - Cypress-style polling for async conditions
|
|
107
|
+
- `log.md` - Playwright report-integrated logging
|
|
108
|
+
- `file-utils.md` - CSV/XLSX/PDF/ZIP reading and validation
|
|
109
|
+
- `burn-in.md` - Smart test selection (relevant for CI test generation)
|
|
110
|
+
- `network-error-monitor.md` - Automatic HTTP error detection
|
|
111
|
+
- `fixtures-composition.md` - mergeTests composition patterns
|
|
112
|
+
|
|
113
|
+
**If `config.tea_use_playwright_utils: false` (Traditional Patterns):**
|
|
114
|
+
- `fixture-architecture.md` - Test fixture patterns (pure function → fixture → mergeTests, auto-cleanup, 406 lines, 5 examples)
|
|
115
|
+
- `network-first.md` - Route interception patterns (intercept before navigate, HAR capture, deterministic waiting, 489 lines, 5 examples)
|
|
116
|
+
|
|
117
|
+
**Healing Knowledge (If `{auto_heal_failures}` is true):**
|
|
118
|
+
- `test-healing-patterns.md` - Common failure patterns and automated fixes (stale selectors, race conditions, dynamic data, network errors, hard waits, 648 lines, 5 examples)
|
|
119
|
+
- `selector-resilience.md` - Selector debugging and refactoring guide (data-testid > ARIA > text > CSS hierarchy, anti-patterns, 541 lines, 4 examples)
|
|
120
|
+
- `timing-debugging.md` - Race condition identification and fixes (network-first, deterministic waiting, async debugging, 370 lines, 3 examples)
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Step 2: Identify Automation Targets
|
|
125
|
+
|
|
126
|
+
### Actions
|
|
127
|
+
|
|
128
|
+
1. **Determine What Needs Testing**
|
|
129
|
+
|
|
130
|
+
**XiaoMa-Integrated Mode (story available):**
|
|
131
|
+
- Map acceptance criteria from story to test scenarios
|
|
132
|
+
- Identify features implemented in this story
|
|
133
|
+
- Check if story has existing ATDD tests (from `*atdd` workflow)
|
|
134
|
+
- Expand beyond ATDD with edge cases and negative paths
|
|
135
|
+
|
|
136
|
+
**Standalone Mode (no story):**
|
|
137
|
+
- If `{target_feature}` specified: Analyze that specific feature
|
|
138
|
+
- If `{target_files}` specified: Analyze those specific files
|
|
139
|
+
- If `{auto_discover_features}` is true: Scan `{source_dir}` for features
|
|
140
|
+
- Prioritize features with:
|
|
141
|
+
- No test coverage (highest priority)
|
|
142
|
+
- Complex business logic
|
|
143
|
+
- External integrations (API calls, database, auth)
|
|
144
|
+
- Critical user paths (login, checkout, etc.)
|
|
145
|
+
|
|
146
|
+
2. **Apply Test Level Selection Framework**
|
|
147
|
+
|
|
148
|
+
**Knowledge Base Reference**: `test-levels-framework.md`
|
|
149
|
+
|
|
150
|
+
For each feature or acceptance criterion, determine appropriate test level:
|
|
151
|
+
|
|
152
|
+
**E2E (End-to-End)**:
|
|
153
|
+
- Critical user journeys (login, checkout, core workflows)
|
|
154
|
+
- Multi-system integration
|
|
155
|
+
- Full user-facing scenarios
|
|
156
|
+
- Characteristics: High confidence, slow, brittle
|
|
157
|
+
|
|
158
|
+
**API (Integration)**:
|
|
159
|
+
- Business logic validation
|
|
160
|
+
- Service contracts and data transformations
|
|
161
|
+
- Backend integration without UI
|
|
162
|
+
- Characteristics: Fast feedback, stable, good balance
|
|
163
|
+
|
|
164
|
+
**Component**:
|
|
165
|
+
- UI component behavior (buttons, forms, modals)
|
|
166
|
+
- Interaction testing (click, hover, keyboard)
|
|
167
|
+
- State management within component
|
|
168
|
+
- Characteristics: Fast, isolated, granular
|
|
169
|
+
|
|
170
|
+
**Unit**:
|
|
171
|
+
- Pure business logic and algorithms
|
|
172
|
+
- Edge cases and error handling
|
|
173
|
+
- Minimal dependencies
|
|
174
|
+
- Characteristics: Fastest, most granular
|
|
175
|
+
|
|
176
|
+
3. **Avoid Duplicate Coverage**
|
|
177
|
+
|
|
178
|
+
**Critical principle:** Don't test same behavior at multiple levels unless necessary
|
|
179
|
+
- Use E2E for critical happy path only
|
|
180
|
+
- Use API tests for business logic variations
|
|
181
|
+
- Use component tests for UI interaction edge cases
|
|
182
|
+
- Use unit tests for pure logic edge cases
|
|
183
|
+
|
|
184
|
+
**Example:**
|
|
185
|
+
- E2E: User can log in with valid credentials → Dashboard loads
|
|
186
|
+
- API: POST /auth/login returns 401 for invalid credentials
|
|
187
|
+
- API: POST /auth/login returns 200 and JWT token for valid credentials
|
|
188
|
+
- Component: LoginForm disables submit button when fields are empty
|
|
189
|
+
- Unit: validateEmail() returns false for malformed email addresses
|
|
190
|
+
|
|
191
|
+
4. **Assign Test Priorities**
|
|
192
|
+
|
|
193
|
+
**Knowledge Base Reference**: `test-priorities-matrix.md`
|
|
194
|
+
|
|
195
|
+
**P0 (Critical - Every commit)**:
|
|
196
|
+
- Critical user paths that must always work
|
|
197
|
+
- Security-critical functionality (auth, permissions)
|
|
198
|
+
- Data integrity scenarios
|
|
199
|
+
- Run in pre-commit hooks or PR checks
|
|
200
|
+
|
|
201
|
+
**P1 (High - PR to main)**:
|
|
202
|
+
- Important features with high user impact
|
|
203
|
+
- Integration points between systems
|
|
204
|
+
- Error handling for common failures
|
|
205
|
+
- Run before merging to main branch
|
|
206
|
+
|
|
207
|
+
**P2 (Medium - Nightly)**:
|
|
208
|
+
- Edge cases with moderate impact
|
|
209
|
+
- Less-critical feature variations
|
|
210
|
+
- Performance/load testing
|
|
211
|
+
- Run in nightly CI builds
|
|
212
|
+
|
|
213
|
+
**P3 (Low - On-demand)**:
|
|
214
|
+
- Nice-to-have validations
|
|
215
|
+
- Rarely-used features
|
|
216
|
+
- Exploratory testing scenarios
|
|
217
|
+
- Run manually or weekly
|
|
218
|
+
|
|
219
|
+
**Priority Variables:**
|
|
220
|
+
- `{include_p0}` - Always include (default: true)
|
|
221
|
+
- `{include_p1}` - High priority (default: true)
|
|
222
|
+
- `{include_p2}` - Medium priority (default: true)
|
|
223
|
+
- `{include_p3}` - Low priority (default: false)
|
|
224
|
+
|
|
225
|
+
5. **Create Test Coverage Plan**
|
|
226
|
+
|
|
227
|
+
Document what will be tested at each level with priorities:
|
|
228
|
+
|
|
229
|
+
```markdown
|
|
230
|
+
## Test Coverage Plan
|
|
231
|
+
|
|
232
|
+
### E2E Tests (P0)
|
|
233
|
+
|
|
234
|
+
- User login with valid credentials → Dashboard loads
|
|
235
|
+
- User logout → Redirects to login page
|
|
236
|
+
|
|
237
|
+
### API Tests (P1)
|
|
238
|
+
|
|
239
|
+
- POST /auth/login - valid credentials → 200 + JWT token
|
|
240
|
+
- POST /auth/login - invalid credentials → 401 + error message
|
|
241
|
+
- POST /auth/login - missing fields → 400 + validation errors
|
|
242
|
+
|
|
243
|
+
### Component Tests (P1)
|
|
244
|
+
|
|
245
|
+
- LoginForm - empty fields → submit button disabled
|
|
246
|
+
- LoginForm - valid input → submit button enabled
|
|
247
|
+
|
|
248
|
+
### Unit Tests (P2)
|
|
249
|
+
|
|
250
|
+
- validateEmail() - valid email → returns true
|
|
251
|
+
- validateEmail() - malformed email → returns false
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Step 3: Generate Test Infrastructure
|
|
257
|
+
|
|
258
|
+
### Actions
|
|
259
|
+
|
|
260
|
+
1. **Enhance Fixture Architecture**
|
|
261
|
+
|
|
262
|
+
**Knowledge Base Reference**: `fixture-architecture.md`
|
|
263
|
+
|
|
264
|
+
Check existing fixtures in `tests/support/fixtures/`:
|
|
265
|
+
- If missing or incomplete, create fixture architecture
|
|
266
|
+
- Use Playwright's `test.extend()` pattern
|
|
267
|
+
- Ensure all fixtures have auto-cleanup in teardown
|
|
268
|
+
|
|
269
|
+
**Common fixtures to create/enhance:**
|
|
270
|
+
- **authenticatedUser**: User with valid session (auto-deletes user after test)
|
|
271
|
+
- **apiRequest**: Authenticated API client with base URL and headers
|
|
272
|
+
- **mockNetwork**: Network mocking for external services
|
|
273
|
+
- **testDatabase**: Database with test data (auto-cleanup after test)
|
|
274
|
+
|
|
275
|
+
**Example fixture:**
|
|
276
|
+
|
|
277
|
+
```typescript
|
|
278
|
+
// tests/support/fixtures/auth.fixture.ts
|
|
279
|
+
import { test as base } from '@playwright/test';
|
|
280
|
+
import { createUser, deleteUser } from '../factories/user.factory';
|
|
281
|
+
|
|
282
|
+
export const test = base.extend({
|
|
283
|
+
authenticatedUser: async ({ page }, use) => {
|
|
284
|
+
// Setup: Create and authenticate user
|
|
285
|
+
const user = await createUser();
|
|
286
|
+
await page.goto('/login');
|
|
287
|
+
await page.fill('[data-testid="email"]', user.email);
|
|
288
|
+
await page.fill('[data-testid="password"]', user.password);
|
|
289
|
+
await page.click('[data-testid="login-button"]');
|
|
290
|
+
await page.waitForURL('/dashboard');
|
|
291
|
+
|
|
292
|
+
// Provide to test
|
|
293
|
+
await use(user);
|
|
294
|
+
|
|
295
|
+
// Cleanup: Delete user automatically
|
|
296
|
+
await deleteUser(user.id);
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
2. **Enhance Data Factories**
|
|
302
|
+
|
|
303
|
+
**Knowledge Base Reference**: `data-factories.md`
|
|
304
|
+
|
|
305
|
+
Check existing factories in `tests/support/factories/`:
|
|
306
|
+
- If missing or incomplete, create factory architecture
|
|
307
|
+
- Use `@faker-js/faker` for all random data (no hardcoded values)
|
|
308
|
+
- Support overrides for specific test scenarios
|
|
309
|
+
|
|
310
|
+
**Common factories to create/enhance:**
|
|
311
|
+
- User factory (email, password, name, role)
|
|
312
|
+
- Product factory (name, price, description, SKU)
|
|
313
|
+
- Order factory (items, total, status, customer)
|
|
314
|
+
|
|
315
|
+
**Example factory:**
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
// tests/support/factories/user.factory.ts
|
|
319
|
+
import { faker } from '@faker-js/faker';
|
|
320
|
+
|
|
321
|
+
export const createUser = (overrides = {}) => ({
|
|
322
|
+
id: faker.number.int(),
|
|
323
|
+
email: faker.internet.email(),
|
|
324
|
+
password: faker.internet.password(),
|
|
325
|
+
name: faker.person.fullName(),
|
|
326
|
+
role: 'user',
|
|
327
|
+
createdAt: faker.date.recent().toISOString(),
|
|
328
|
+
...overrides,
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
export const createUsers = (count: number) => Array.from({ length: count }, () => createUser());
|
|
332
|
+
|
|
333
|
+
// API helper for cleanup
|
|
334
|
+
export const deleteUser = async (userId: number) => {
|
|
335
|
+
await fetch(`/api/users/${userId}`, { method: 'DELETE' });
|
|
336
|
+
};
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
3. **Create/Enhance Helper Utilities**
|
|
340
|
+
|
|
341
|
+
If `{update_helpers}` is true:
|
|
342
|
+
|
|
343
|
+
Check `tests/support/helpers/` for common utilities:
|
|
344
|
+
- **waitFor**: Polling helper for complex conditions
|
|
345
|
+
- **retry**: Retry helper for flaky operations
|
|
346
|
+
- **testData**: Test data generation helpers
|
|
347
|
+
- **assertions**: Custom assertion helpers
|
|
348
|
+
|
|
349
|
+
**Example helper:**
|
|
350
|
+
|
|
351
|
+
```typescript
|
|
352
|
+
// tests/support/helpers/wait-for.ts
|
|
353
|
+
export const waitFor = async (condition: () => Promise<boolean>, timeout = 5000, interval = 100): Promise<void> => {
|
|
354
|
+
const startTime = Date.now();
|
|
355
|
+
while (Date.now() - startTime < timeout) {
|
|
356
|
+
if (await condition()) return;
|
|
357
|
+
await new Promise((resolve) => setTimeout(resolve, interval));
|
|
358
|
+
}
|
|
359
|
+
throw new Error(`Condition not met within ${timeout}ms`);
|
|
360
|
+
};
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Step 4: Generate Test Files
|
|
366
|
+
|
|
367
|
+
### Actions
|
|
368
|
+
|
|
369
|
+
1. **Create Test File Structure**
|
|
370
|
+
|
|
371
|
+
```
|
|
372
|
+
tests/
|
|
373
|
+
├── e2e/
|
|
374
|
+
│ └── {feature-name}.spec.ts # E2E tests (P0-P1)
|
|
375
|
+
├── api/
|
|
376
|
+
│ └── {feature-name}.api.spec.ts # API tests (P1-P2)
|
|
377
|
+
├── component/
|
|
378
|
+
│ └── {ComponentName}.test.tsx # Component tests (P1-P2)
|
|
379
|
+
├── unit/
|
|
380
|
+
│ └── {module-name}.test.ts # Unit tests (P2-P3)
|
|
381
|
+
└── support/
|
|
382
|
+
├── fixtures/ # Test fixtures
|
|
383
|
+
├── factories/ # Data factories
|
|
384
|
+
└── helpers/ # Utility functions
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
2. **Write E2E Tests (If Applicable)**
|
|
388
|
+
|
|
389
|
+
**Follow Given-When-Then format:**
|
|
390
|
+
|
|
391
|
+
```typescript
|
|
392
|
+
import { test, expect } from '@playwright/test';
|
|
393
|
+
|
|
394
|
+
test.describe('User Authentication', () => {
|
|
395
|
+
test('[P0] should login with valid credentials and load dashboard', async ({ page }) => {
|
|
396
|
+
// GIVEN: User is on login page
|
|
397
|
+
await page.goto('/login');
|
|
398
|
+
|
|
399
|
+
// WHEN: User submits valid credentials
|
|
400
|
+
await page.fill('[data-testid="email-input"]', 'user@example.com');
|
|
401
|
+
await page.fill('[data-testid="password-input"]', 'Password123!');
|
|
402
|
+
await page.click('[data-testid="login-button"]');
|
|
403
|
+
|
|
404
|
+
// THEN: User is redirected to dashboard
|
|
405
|
+
await expect(page).toHaveURL('/dashboard');
|
|
406
|
+
await expect(page.locator('[data-testid="user-name"]')).toBeVisible();
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
test('[P1] should display error for invalid credentials', async ({ page }) => {
|
|
410
|
+
// GIVEN: User is on login page
|
|
411
|
+
await page.goto('/login');
|
|
412
|
+
|
|
413
|
+
// WHEN: User submits invalid credentials
|
|
414
|
+
await page.fill('[data-testid="email-input"]', 'invalid@example.com');
|
|
415
|
+
await page.fill('[data-testid="password-input"]', 'wrongpassword');
|
|
416
|
+
await page.click('[data-testid="login-button"]');
|
|
417
|
+
|
|
418
|
+
// THEN: Error message is displayed
|
|
419
|
+
await expect(page.locator('[data-testid="error-message"]')).toHaveText('Invalid email or password');
|
|
420
|
+
});
|
|
421
|
+
});
|
|
422
|
+
```
|
|
423
|
+
|
|
424
|
+
**Critical patterns:**
|
|
425
|
+
- Tag tests with priority: `[P0]`, `[P1]`, `[P2]`, `[P3]` in test name
|
|
426
|
+
- One assertion per test (atomic tests)
|
|
427
|
+
- Explicit waits (no hard waits/sleeps)
|
|
428
|
+
- Network-first approach (route interception before navigation)
|
|
429
|
+
- data-testid selectors for stability
|
|
430
|
+
- Clear Given-When-Then structure
|
|
431
|
+
|
|
432
|
+
3. **Write API Tests (If Applicable)**
|
|
433
|
+
|
|
434
|
+
```typescript
|
|
435
|
+
import { test, expect } from '@playwright/test';
|
|
436
|
+
|
|
437
|
+
test.describe('User Authentication API', () => {
|
|
438
|
+
test('[P1] POST /api/auth/login - should return token for valid credentials', async ({ request }) => {
|
|
439
|
+
// GIVEN: Valid user credentials
|
|
440
|
+
const credentials = {
|
|
441
|
+
email: 'user@example.com',
|
|
442
|
+
password: 'Password123!',
|
|
443
|
+
};
|
|
444
|
+
|
|
445
|
+
// WHEN: Logging in via API
|
|
446
|
+
const response = await request.post('/api/auth/login', {
|
|
447
|
+
data: credentials,
|
|
448
|
+
});
|
|
449
|
+
|
|
450
|
+
// THEN: Returns 200 and JWT token
|
|
451
|
+
expect(response.status()).toBe(200);
|
|
452
|
+
const body = await response.json();
|
|
453
|
+
expect(body).toHaveProperty('token');
|
|
454
|
+
expect(body.token).toMatch(/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+$/); // JWT format
|
|
455
|
+
});
|
|
456
|
+
|
|
457
|
+
test('[P1] POST /api/auth/login - should return 401 for invalid credentials', async ({ request }) => {
|
|
458
|
+
// GIVEN: Invalid credentials
|
|
459
|
+
const credentials = {
|
|
460
|
+
email: 'invalid@example.com',
|
|
461
|
+
password: 'wrongpassword',
|
|
462
|
+
};
|
|
463
|
+
|
|
464
|
+
// WHEN: Attempting login
|
|
465
|
+
const response = await request.post('/api/auth/login', {
|
|
466
|
+
data: credentials,
|
|
467
|
+
});
|
|
468
|
+
|
|
469
|
+
// THEN: Returns 401 with error
|
|
470
|
+
expect(response.status()).toBe(401);
|
|
471
|
+
const body = await response.json();
|
|
472
|
+
expect(body).toMatchObject({
|
|
473
|
+
error: 'Invalid credentials',
|
|
474
|
+
});
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
4. **Write Component Tests (If Applicable)**
|
|
480
|
+
|
|
481
|
+
**Knowledge Base Reference**: `component-tdd.md`
|
|
482
|
+
|
|
483
|
+
```typescript
|
|
484
|
+
import { test, expect } from '@playwright/experimental-ct-react';
|
|
485
|
+
import { LoginForm } from './LoginForm';
|
|
486
|
+
|
|
487
|
+
test.describe('LoginForm Component', () => {
|
|
488
|
+
test('[P1] should disable submit button when fields are empty', async ({ mount }) => {
|
|
489
|
+
// GIVEN: LoginForm is mounted
|
|
490
|
+
const component = await mount(<LoginForm />);
|
|
491
|
+
|
|
492
|
+
// WHEN: Form is initially rendered
|
|
493
|
+
const submitButton = component.locator('button[type="submit"]');
|
|
494
|
+
|
|
495
|
+
// THEN: Submit button is disabled
|
|
496
|
+
await expect(submitButton).toBeDisabled();
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
test('[P1] should enable submit button when fields are filled', async ({ mount }) => {
|
|
500
|
+
// GIVEN: LoginForm is mounted
|
|
501
|
+
const component = await mount(<LoginForm />);
|
|
502
|
+
|
|
503
|
+
// WHEN: User fills in email and password
|
|
504
|
+
await component.locator('[data-testid="email-input"]').fill('user@example.com');
|
|
505
|
+
await component.locator('[data-testid="password-input"]').fill('Password123!');
|
|
506
|
+
|
|
507
|
+
// THEN: Submit button is enabled
|
|
508
|
+
const submitButton = component.locator('button[type="submit"]');
|
|
509
|
+
await expect(submitButton).toBeEnabled();
|
|
510
|
+
});
|
|
511
|
+
});
|
|
512
|
+
```
|
|
513
|
+
|
|
514
|
+
5. **Write Unit Tests (If Applicable)**
|
|
515
|
+
|
|
516
|
+
```typescript
|
|
517
|
+
import { validateEmail } from './validation';
|
|
518
|
+
|
|
519
|
+
describe('Email Validation', () => {
|
|
520
|
+
test('[P2] should return true for valid email', () => {
|
|
521
|
+
// GIVEN: Valid email address
|
|
522
|
+
const email = 'user@example.com';
|
|
523
|
+
|
|
524
|
+
// WHEN: Validating email
|
|
525
|
+
const result = validateEmail(email);
|
|
526
|
+
|
|
527
|
+
// THEN: Returns true
|
|
528
|
+
expect(result).toBe(true);
|
|
529
|
+
});
|
|
530
|
+
|
|
531
|
+
test('[P2] should return false for malformed email', () => {
|
|
532
|
+
// GIVEN: Malformed email addresses
|
|
533
|
+
const invalidEmails = ['notanemail', '@example.com', 'user@', 'user @example.com'];
|
|
534
|
+
|
|
535
|
+
// WHEN/THEN: Each should fail validation
|
|
536
|
+
invalidEmails.forEach((email) => {
|
|
537
|
+
expect(validateEmail(email)).toBe(false);
|
|
538
|
+
});
|
|
539
|
+
});
|
|
540
|
+
});
|
|
541
|
+
```
|
|
542
|
+
|
|
543
|
+
6. **Apply Network-First Pattern (E2E tests)**
|
|
544
|
+
|
|
545
|
+
**Knowledge Base Reference**: `network-first.md`
|
|
546
|
+
|
|
547
|
+
**Critical pattern to prevent race conditions:**
|
|
548
|
+
|
|
549
|
+
```typescript
|
|
550
|
+
test('should load user dashboard after login', async ({ page }) => {
|
|
551
|
+
// CRITICAL: Intercept routes BEFORE navigation
|
|
552
|
+
await page.route('**/api/user', (route) =>
|
|
553
|
+
route.fulfill({
|
|
554
|
+
status: 200,
|
|
555
|
+
body: JSON.stringify({ id: 1, name: 'Test User' }),
|
|
556
|
+
}),
|
|
557
|
+
);
|
|
558
|
+
|
|
559
|
+
// NOW navigate
|
|
560
|
+
await page.goto('/dashboard');
|
|
561
|
+
|
|
562
|
+
await expect(page.locator('[data-testid="user-name"]')).toHaveText('Test User');
|
|
563
|
+
});
|
|
564
|
+
```
|
|
565
|
+
|
|
566
|
+
7. **Enforce Quality Standards**
|
|
567
|
+
|
|
568
|
+
**For every test:**
|
|
569
|
+
- ✅ Uses Given-When-Then format
|
|
570
|
+
- ✅ Has clear, descriptive name with priority tag
|
|
571
|
+
- ✅ One assertion per test (atomic)
|
|
572
|
+
- ✅ No hard waits or sleeps (use explicit waits)
|
|
573
|
+
- ✅ Self-cleaning (uses fixtures with auto-cleanup)
|
|
574
|
+
- ✅ Deterministic (no flaky patterns)
|
|
575
|
+
- ✅ Fast (under {max_test_duration} seconds)
|
|
576
|
+
- ✅ Lean (test file under {max_file_lines} lines)
|
|
577
|
+
|
|
578
|
+
**Forbidden patterns:**
|
|
579
|
+
- ❌ Hard waits: `await page.waitForTimeout(2000)`
|
|
580
|
+
- ❌ Conditional flow: `if (await element.isVisible()) { ... }`
|
|
581
|
+
- ❌ Try-catch for test logic (use for cleanup only)
|
|
582
|
+
- ❌ Hardcoded test data (use factories)
|
|
583
|
+
- ❌ Page objects (keep tests simple and direct)
|
|
584
|
+
- ❌ Shared state between tests
|
|
585
|
+
|
|
586
|
+
---
|
|
587
|
+
|
|
588
|
+
## Step 5: Execute, Validate & Heal Generated Tests (NEW - Phase 2.5)
|
|
589
|
+
|
|
590
|
+
**Purpose**: Automatically validate generated tests and heal common failures before delivery
|
|
591
|
+
|
|
592
|
+
### Actions
|
|
593
|
+
|
|
594
|
+
1. **Validate Generated Tests**
|
|
595
|
+
|
|
596
|
+
Always validate (auto_validate is always true):
|
|
597
|
+
- Run generated tests to verify they work
|
|
598
|
+
- Continue with healing if config.tea_use_mcp_enhancements is true
|
|
599
|
+
|
|
600
|
+
2. **Run Generated Tests**
|
|
601
|
+
|
|
602
|
+
Execute the full test suite that was just generated:
|
|
603
|
+
|
|
604
|
+
```bash
|
|
605
|
+
npx playwright test {generated_test_files}
|
|
606
|
+
```
|
|
607
|
+
|
|
608
|
+
Capture results:
|
|
609
|
+
- Total tests run
|
|
610
|
+
- Passing tests count
|
|
611
|
+
- Failing tests count
|
|
612
|
+
- Error messages and stack traces for failures
|
|
613
|
+
|
|
614
|
+
3. **Evaluate Results**
|
|
615
|
+
|
|
616
|
+
**If ALL tests pass:**
|
|
617
|
+
- ✅ Generate report with success summary
|
|
618
|
+
- Proceed to Step 6 (Documentation and Scripts)
|
|
619
|
+
|
|
620
|
+
**If tests FAIL:**
|
|
621
|
+
- Check config.tea_use_mcp_enhancements setting
|
|
622
|
+
- If true: Enter healing loop (Step 5.4)
|
|
623
|
+
- If false: Document failures for manual review, proceed to Step 6
|
|
624
|
+
|
|
625
|
+
4. **Healing Loop (If config.tea_use_mcp_enhancements is true)**
|
|
626
|
+
|
|
627
|
+
**Iteration limit**: 3 attempts per test (constant)
|
|
628
|
+
|
|
629
|
+
**For each failing test:**
|
|
630
|
+
|
|
631
|
+
**A. Load Healing Knowledge Fragments**
|
|
632
|
+
|
|
633
|
+
Consult `tea-index.csv` to load healing patterns:
|
|
634
|
+
- `test-healing-patterns.md` - Common failure patterns and fixes
|
|
635
|
+
- `selector-resilience.md` - Selector debugging and refactoring
|
|
636
|
+
- `timing-debugging.md` - Race condition identification and fixes
|
|
637
|
+
|
|
638
|
+
**B. Identify Failure Pattern**
|
|
639
|
+
|
|
640
|
+
Analyze error message and stack trace to classify failure type:
|
|
641
|
+
|
|
642
|
+
**Stale Selector Failure:**
|
|
643
|
+
- Error contains: "locator resolved to 0 elements", "element not found", "unable to find element"
|
|
644
|
+
- Extract selector from error message
|
|
645
|
+
- Apply selector healing (knowledge from `selector-resilience.md`):
|
|
646
|
+
- If CSS class → Replace with `page.getByTestId()`
|
|
647
|
+
- If nth() → Replace with `filter({ hasText })`
|
|
648
|
+
- If ID → Replace with data-testid
|
|
649
|
+
- If complex XPath → Replace with ARIA role
|
|
650
|
+
|
|
651
|
+
**Race Condition Failure:**
|
|
652
|
+
- Error contains: "timeout waiting for", "element not visible", "timed out retrying"
|
|
653
|
+
- Detect missing network waits or hard waits in test code
|
|
654
|
+
- Apply timing healing (knowledge from `timing-debugging.md`):
|
|
655
|
+
- Add network-first interception before navigate
|
|
656
|
+
- Replace `waitForTimeout()` with `waitForResponse()`
|
|
657
|
+
- Add explicit element state waits (`waitFor({ state: 'visible' })`)
|
|
658
|
+
|
|
659
|
+
**Dynamic Data Failure:**
|
|
660
|
+
- Error contains: "Expected 'User 123' but received 'User 456'", timestamp mismatches
|
|
661
|
+
- Identify hardcoded assertions
|
|
662
|
+
- Apply data healing (knowledge from `test-healing-patterns.md`):
|
|
663
|
+
- Replace hardcoded IDs with regex (`/User \d+/`)
|
|
664
|
+
- Replace hardcoded dates with dynamic generation
|
|
665
|
+
- Capture dynamic values and use in assertions
|
|
666
|
+
|
|
667
|
+
**Network Error Failure:**
|
|
668
|
+
- Error contains: "API call failed", "500 error", "network error"
|
|
669
|
+
- Detect missing route interception
|
|
670
|
+
- Apply network healing (knowledge from `test-healing-patterns.md`):
|
|
671
|
+
- Add `page.route()` or `cy.intercept()` for API mocking
|
|
672
|
+
- Mock error scenarios (500, 429, timeout)
|
|
673
|
+
|
|
674
|
+
**Hard Wait Detection:**
|
|
675
|
+
- Scan test code for `page.waitForTimeout()`, `cy.wait(number)`, `sleep()`
|
|
676
|
+
- Apply hard wait healing (knowledge from `timing-debugging.md`):
|
|
677
|
+
- Replace with event-based waits
|
|
678
|
+
- Add network response waits
|
|
679
|
+
- Use element state changes
|
|
680
|
+
|
|
681
|
+
**C. MCP Healing Mode (If MCP Tools Available)**
|
|
682
|
+
|
|
683
|
+
If Playwright MCP tools are available in your IDE:
|
|
684
|
+
|
|
685
|
+
Use MCP tools for interactive healing:
|
|
686
|
+
- `playwright_test_debug_test`: Pause on failure for visual inspection
|
|
687
|
+
- `browser_snapshot`: Capture visual context at failure point
|
|
688
|
+
- `browser_console_messages`: Retrieve console logs for JS errors
|
|
689
|
+
- `browser_network_requests`: Analyze network activity
|
|
690
|
+
- `browser_generate_locator`: Generate better selectors interactively
|
|
691
|
+
|
|
692
|
+
Apply MCP-generated fixes to test code.
|
|
693
|
+
|
|
694
|
+
**D. Pattern-Based Healing Mode (Fallback)**
|
|
695
|
+
|
|
696
|
+
If MCP unavailable, use pattern-based analysis:
|
|
697
|
+
- Parse error message and stack trace
|
|
698
|
+
- Match against failure patterns from knowledge base
|
|
699
|
+
- Apply fixes programmatically:
|
|
700
|
+
- Selector fixes: Use suggestions from `selector-resilience.md`
|
|
701
|
+
- Timing fixes: Apply patterns from `timing-debugging.md`
|
|
702
|
+
- Data fixes: Use patterns from `test-healing-patterns.md`
|
|
703
|
+
|
|
704
|
+
**E. Apply Healing Fix**
|
|
705
|
+
- Modify test file with healed code
|
|
706
|
+
- Re-run test to validate fix
|
|
707
|
+
- If test passes: Mark as healed, move to next failure
|
|
708
|
+
- If test fails: Increment iteration count, try different pattern
|
|
709
|
+
|
|
710
|
+
**F. Iteration Limit Handling**
|
|
711
|
+
|
|
712
|
+
After 3 failed healing attempts:
|
|
713
|
+
|
|
714
|
+
Always mark unfixable tests:
|
|
715
|
+
- Mark test with `test.fixme()` instead of `test()`
|
|
716
|
+
- Add detailed comment explaining:
|
|
717
|
+
- What failure occurred
|
|
718
|
+
- What healing was attempted (3 iterations)
|
|
719
|
+
- Why healing failed
|
|
720
|
+
- Manual investigation needed
|
|
721
|
+
|
|
722
|
+
```typescript
|
|
723
|
+
test.fixme('[P1] should handle complex interaction', async ({ page }) => {
|
|
724
|
+
// FIXME: Test healing failed after 3 attempts
|
|
725
|
+
// Failure: "Locator 'button[data-action="submit"]' resolved to 0 elements"
|
|
726
|
+
// Attempted fixes:
|
|
727
|
+
// 1. Replaced with page.getByTestId('submit-button') - still failing
|
|
728
|
+
// 2. Replaced with page.getByRole('button', { name: 'Submit' }) - still failing
|
|
729
|
+
// 3. Added waitForLoadState('networkidle') - still failing
|
|
730
|
+
// Manual investigation needed: Selector may require application code changes
|
|
731
|
+
// TODO: Review with team, may need data-testid added to button component
|
|
732
|
+
// Original test code...
|
|
733
|
+
});
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
**Note**: Workflow continues even with unfixable tests (marked as test.fixme() for manual review)
|
|
737
|
+
|
|
738
|
+
5. **Generate Healing Report**
|
|
739
|
+
|
|
740
|
+
Document healing outcomes:
|
|
741
|
+
|
|
742
|
+
```markdown
|
|
743
|
+
## Test Healing Report
|
|
744
|
+
|
|
745
|
+
**Auto-Heal Enabled**: {auto_heal_failures}
|
|
746
|
+
**Healing Mode**: {use_mcp_healing ? "MCP-assisted" : "Pattern-based"}
|
|
747
|
+
**Iterations Allowed**: {max_healing_iterations}
|
|
748
|
+
|
|
749
|
+
### Validation Results
|
|
750
|
+
|
|
751
|
+
- **Total tests**: {total_tests}
|
|
752
|
+
- **Passing**: {passing_tests}
|
|
753
|
+
- **Failing**: {failing_tests}
|
|
754
|
+
|
|
755
|
+
### Healing Outcomes
|
|
756
|
+
|
|
757
|
+
**Successfully Healed ({healed_count} tests):**
|
|
758
|
+
|
|
759
|
+
- `tests/e2e/login.spec.ts:15` - Stale selector (CSS class → data-testid)
|
|
760
|
+
- `tests/e2e/checkout.spec.ts:42` - Race condition (added network-first interception)
|
|
761
|
+
- `tests/api/users.spec.ts:28` - Dynamic data (hardcoded ID → regex pattern)
|
|
762
|
+
|
|
763
|
+
**Unable to Heal ({unfixable_count} tests):**
|
|
764
|
+
|
|
765
|
+
- `tests/e2e/complex-flow.spec.ts:67` - Marked as test.fixme() with manual investigation needed
|
|
766
|
+
- Failure: Locator not found after 3 healing attempts
|
|
767
|
+
- Requires application code changes (add data-testid to component)
|
|
768
|
+
|
|
769
|
+
### Healing Patterns Applied
|
|
770
|
+
|
|
771
|
+
- **Selector fixes**: 2 (CSS class → data-testid, nth() → filter())
|
|
772
|
+
- **Timing fixes**: 1 (added network-first interception)
|
|
773
|
+
- **Data fixes**: 1 (hardcoded ID → regex)
|
|
774
|
+
|
|
775
|
+
### Knowledge Base References
|
|
776
|
+
|
|
777
|
+
- `test-healing-patterns.md` - Common failure patterns
|
|
778
|
+
- `selector-resilience.md` - Selector refactoring guide
|
|
779
|
+
- `timing-debugging.md` - Race condition prevention
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
6. **Update Test Files with Healing Results**
|
|
783
|
+
- Save healed test code to files
|
|
784
|
+
- Mark unfixable tests with `test.fixme()` and detailed comments
|
|
785
|
+
- Preserve original test logic in comments (for debugging)
|
|
786
|
+
|
|
787
|
+
---
|
|
788
|
+
|
|
789
|
+
## Step 6: Update Documentation and Scripts
|
|
790
|
+
|
|
791
|
+
### Actions
|
|
792
|
+
|
|
793
|
+
1. **Update Test README**
|
|
794
|
+
|
|
795
|
+
If `{update_readme}` is true:
|
|
796
|
+
|
|
797
|
+
Create or update `tests/README.md` with:
|
|
798
|
+
- Overview of test suite structure
|
|
799
|
+
- How to run tests (all, specific files, by priority)
|
|
800
|
+
- Fixture and factory usage examples
|
|
801
|
+
- Priority tagging convention ([P0], [P1], [P2], [P3])
|
|
802
|
+
- How to write new tests
|
|
803
|
+
- Common patterns and anti-patterns
|
|
804
|
+
|
|
805
|
+
**Example section:**
|
|
806
|
+
|
|
807
|
+
````markdown
|
|
808
|
+
## Running Tests
|
|
809
|
+
|
|
810
|
+
```bash
|
|
811
|
+
# Run all tests
|
|
812
|
+
npm run test:e2e
|
|
813
|
+
|
|
814
|
+
# Run by priority
|
|
815
|
+
npm run test:e2e -- --grep "@P0"
|
|
816
|
+
npm run test:e2e -- --grep "@P1"
|
|
817
|
+
|
|
818
|
+
# Run specific file
|
|
819
|
+
npm run test:e2e -- user-authentication.spec.ts
|
|
820
|
+
|
|
821
|
+
# Run in headed mode
|
|
822
|
+
npm run test:e2e -- --headed
|
|
823
|
+
|
|
824
|
+
# Debug specific test
|
|
825
|
+
npm run test:e2e -- user-authentication.spec.ts --debug
|
|
826
|
+
```
|
|
827
|
+
````
|
|
828
|
+
|
|
829
|
+
## Priority Tags
|
|
830
|
+
- **[P0]**: Critical paths, run every commit
|
|
831
|
+
- **[P1]**: High priority, run on PR to main
|
|
832
|
+
- **[P2]**: Medium priority, run nightly
|
|
833
|
+
- **[P3]**: Low priority, run on-demand
|
|
834
|
+
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
```
|
|
838
|
+
|
|
839
|
+
2. **Update package.json Scripts**
|
|
840
|
+
|
|
841
|
+
If `{update_package_scripts}` is true:
|
|
842
|
+
|
|
843
|
+
Add or update test execution scripts:
|
|
844
|
+
|
|
845
|
+
```json
|
|
846
|
+
{
|
|
847
|
+
"scripts": {
|
|
848
|
+
"test:e2e": "playwright test",
|
|
849
|
+
"test:e2e:p0": "playwright test --grep '@P0'",
|
|
850
|
+
"test:e2e:p1": "playwright test --grep '@P1|@P0'",
|
|
851
|
+
"test:api": "playwright test tests/api",
|
|
852
|
+
"test:component": "playwright test tests/component",
|
|
853
|
+
"test:unit": "vitest"
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
```
|
|
857
|
+
|
|
858
|
+
3. **Run Test Suite**
|
|
859
|
+
|
|
860
|
+
If `{run_tests_after_generation}` is true:
|
|
861
|
+
- Run full test suite locally
|
|
862
|
+
- Capture results (passing/failing counts)
|
|
863
|
+
- Verify no flaky patterns (tests should be deterministic)
|
|
864
|
+
- Document any setup requirements or known issues
|
|
865
|
+
|
|
866
|
+
---
|
|
867
|
+
|
|
868
|
+
## Step 6: Generate Automation Summary
|
|
869
|
+
|
|
870
|
+
### Actions
|
|
871
|
+
|
|
872
|
+
1. **Create Automation Summary Document**
|
|
873
|
+
|
|
874
|
+
Save to `{output_summary}` with:
|
|
875
|
+
|
|
876
|
+
**XiaoMa-Integrated Mode:**
|
|
877
|
+
|
|
878
|
+
````markdown
|
|
879
|
+
# Automation Summary - {feature_name}
|
|
880
|
+
|
|
881
|
+
**Date:** {date}
|
|
882
|
+
**Story:** {story_id}
|
|
883
|
+
**Coverage Target:** {coverage_target}
|
|
884
|
+
|
|
885
|
+
## Tests Created
|
|
886
|
+
|
|
887
|
+
### E2E Tests (P0-P1)
|
|
888
|
+
|
|
889
|
+
- `tests/e2e/user-authentication.spec.ts` (2 tests, 87 lines)
|
|
890
|
+
- [P0] Login with valid credentials → Dashboard loads
|
|
891
|
+
- [P1] Display error for invalid credentials
|
|
892
|
+
|
|
893
|
+
### API Tests (P1-P2)
|
|
894
|
+
|
|
895
|
+
- `tests/api/auth.api.spec.ts` (3 tests, 102 lines)
|
|
896
|
+
- [P1] POST /auth/login - valid credentials → 200 + token
|
|
897
|
+
- [P1] POST /auth/login - invalid credentials → 401 + error
|
|
898
|
+
- [P2] POST /auth/login - missing fields → 400 + validation
|
|
899
|
+
|
|
900
|
+
### Component Tests (P1)
|
|
901
|
+
|
|
902
|
+
- `tests/component/LoginForm.test.tsx` (2 tests, 45 lines)
|
|
903
|
+
- [P1] Empty fields → submit button disabled
|
|
904
|
+
- [P1] Valid input → submit button enabled
|
|
905
|
+
|
|
906
|
+
## Infrastructure Created
|
|
907
|
+
|
|
908
|
+
### Fixtures
|
|
909
|
+
|
|
910
|
+
- `tests/support/fixtures/auth.fixture.ts` - authenticatedUser with auto-cleanup
|
|
911
|
+
|
|
912
|
+
### Factories
|
|
913
|
+
|
|
914
|
+
- `tests/support/factories/user.factory.ts` - createUser(), deleteUser()
|
|
915
|
+
|
|
916
|
+
### Helpers
|
|
917
|
+
|
|
918
|
+
- `tests/support/helpers/wait-for.ts` - Polling helper for complex conditions
|
|
919
|
+
|
|
920
|
+
## Test Execution
|
|
921
|
+
|
|
922
|
+
```bash
|
|
923
|
+
# Run all new tests
|
|
924
|
+
npm run test:e2e
|
|
925
|
+
|
|
926
|
+
# Run by priority
|
|
927
|
+
npm run test:e2e:p0 # Critical paths only
|
|
928
|
+
npm run test:e2e:p1 # P0 + P1 tests
|
|
929
|
+
```
|
|
930
|
+
````
|
|
931
|
+
|
|
932
|
+
## Coverage Analysis
|
|
933
|
+
|
|
934
|
+
**Total Tests:** 7
|
|
935
|
+
- P0: 1 test (critical path)
|
|
936
|
+
- P1: 5 tests (high priority)
|
|
937
|
+
- P2: 1 test (medium priority)
|
|
938
|
+
|
|
939
|
+
**Test Levels:**
|
|
940
|
+
- E2E: 2 tests (user journeys)
|
|
941
|
+
- API: 3 tests (business logic)
|
|
942
|
+
- Component: 2 tests (UI behavior)
|
|
943
|
+
|
|
944
|
+
**Coverage Status:**
|
|
945
|
+
- ✅ All acceptance criteria covered
|
|
946
|
+
- ✅ Happy path covered (E2E + API)
|
|
947
|
+
- ✅ Error cases covered (API)
|
|
948
|
+
- ✅ UI validation covered (Component)
|
|
949
|
+
- ⚠️ Edge case: Password reset flow not yet covered (future story)
|
|
950
|
+
|
|
951
|
+
## Definition of Done
|
|
952
|
+
- [x] All tests follow Given-When-Then format
|
|
953
|
+
- [x] All tests use data-testid selectors
|
|
954
|
+
- [x] All tests have priority tags
|
|
955
|
+
- [x] All tests are self-cleaning (fixtures with auto-cleanup)
|
|
956
|
+
- [x] No hard waits or flaky patterns
|
|
957
|
+
- [x] Test files under 300 lines
|
|
958
|
+
- [x] All tests run under 1.5 minutes each
|
|
959
|
+
- [x] README updated with test execution instructions
|
|
960
|
+
- [x] package.json scripts updated
|
|
961
|
+
|
|
962
|
+
## Next Steps
|
|
963
|
+
1. Review generated tests with team
|
|
964
|
+
2. Run tests in CI pipeline: `npm run test:e2e`
|
|
965
|
+
3. Integrate with quality gate: `xiaoma tea *gate`
|
|
966
|
+
4. Monitor for flaky tests in burn-in loop
|
|
967
|
+
|
|
968
|
+
````
|
|
969
|
+
|
|
970
|
+
**Standalone Mode:**
|
|
971
|
+
```markdown
|
|
972
|
+
# Automation Summary - {target_feature}
|
|
973
|
+
|
|
974
|
+
**Date:** {date}
|
|
975
|
+
**Target:** {target_feature} (standalone analysis)
|
|
976
|
+
**Coverage Target:** {coverage_target}
|
|
977
|
+
|
|
978
|
+
## Feature Analysis
|
|
979
|
+
|
|
980
|
+
**Source Files Analyzed:**
|
|
981
|
+
- `src/auth/login.ts` - Login logic and validation
|
|
982
|
+
- `src/auth/session.ts` - Session management
|
|
983
|
+
- `src/auth/validation.ts` - Email/password validation
|
|
984
|
+
|
|
985
|
+
**Existing Coverage:**
|
|
986
|
+
- E2E tests: 0 found
|
|
987
|
+
- API tests: 0 found
|
|
988
|
+
- Component tests: 0 found
|
|
989
|
+
- Unit tests: 0 found
|
|
990
|
+
|
|
991
|
+
**Coverage Gaps Identified:**
|
|
992
|
+
- ❌ No E2E tests for login flow
|
|
993
|
+
- ❌ No API tests for /auth/login endpoint
|
|
994
|
+
- ❌ No component tests for LoginForm
|
|
995
|
+
- ❌ No unit tests for validateEmail()
|
|
996
|
+
|
|
997
|
+
## Tests Created
|
|
998
|
+
|
|
999
|
+
{Same structure as XiaoMa-Integrated Mode}
|
|
1000
|
+
|
|
1001
|
+
## Recommendations
|
|
1002
|
+
|
|
1003
|
+
1. **High Priority (P0-P1):**
|
|
1004
|
+
- Add E2E test for password reset flow
|
|
1005
|
+
- Add API tests for token refresh endpoint
|
|
1006
|
+
- Add component tests for logout button
|
|
1007
|
+
|
|
1008
|
+
2. **Medium Priority (P2):**
|
|
1009
|
+
- Add unit tests for session timeout logic
|
|
1010
|
+
- Add E2E test for "remember me" functionality
|
|
1011
|
+
|
|
1012
|
+
3. **Future Enhancements:**
|
|
1013
|
+
- Consider contract testing for auth API
|
|
1014
|
+
- Add visual regression tests for login page
|
|
1015
|
+
- Set up burn-in loop for flaky test detection
|
|
1016
|
+
|
|
1017
|
+
## Definition of Done
|
|
1018
|
+
|
|
1019
|
+
{Same checklist as XiaoMa-Integrated Mode}
|
|
1020
|
+
````
|
|
1021
|
+
|
|
1022
|
+
2. **Provide Summary to User**
|
|
1023
|
+
|
|
1024
|
+
Output concise summary:
|
|
1025
|
+
|
|
1026
|
+
```markdown
|
|
1027
|
+
## Automation Complete
|
|
1028
|
+
|
|
1029
|
+
**Coverage:** {total_tests} tests created across {test_levels} levels
|
|
1030
|
+
**Priority Breakdown:** P0: {p0_count}, P1: {p1_count}, P2: {p2_count}, P3: {p3_count}
|
|
1031
|
+
**Infrastructure:** {fixture_count} fixtures, {factory_count} factories
|
|
1032
|
+
**Output:** {output_summary}
|
|
1033
|
+
|
|
1034
|
+
**Run tests:** `npm run test:e2e`
|
|
1035
|
+
**Next steps:** Review tests, run in CI, integrate with quality gate
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
---
|
|
1039
|
+
|
|
1040
|
+
## Important Notes
|
|
1041
|
+
|
|
1042
|
+
### Dual-Mode Operation
|
|
1043
|
+
|
|
1044
|
+
**XiaoMa-Integrated Mode** (story available):
|
|
1045
|
+
|
|
1046
|
+
- Uses story acceptance criteria for coverage targeting
|
|
1047
|
+
- Aligns with test-design risk/priority assessment
|
|
1048
|
+
- Expands ATDD tests with edge cases and negative paths
|
|
1049
|
+
- Updates XiaoMa status tracking
|
|
1050
|
+
|
|
1051
|
+
**Standalone Mode** (no story):
|
|
1052
|
+
|
|
1053
|
+
- Analyzes source code independently
|
|
1054
|
+
- Identifies coverage gaps automatically
|
|
1055
|
+
- Generates tests based on code analysis
|
|
1056
|
+
- Works with any project (XiaoMa or non-XiaoMa)
|
|
1057
|
+
|
|
1058
|
+
**Auto-discover Mode** (no targets specified):
|
|
1059
|
+
|
|
1060
|
+
- Scans codebase for features needing tests
|
|
1061
|
+
- Prioritizes features with no coverage
|
|
1062
|
+
- Generates comprehensive test plan
|
|
1063
|
+
|
|
1064
|
+
### Avoid Duplicate Coverage
|
|
1065
|
+
|
|
1066
|
+
**Critical principle:** Don't test same behavior at multiple levels
|
|
1067
|
+
|
|
1068
|
+
**Good coverage:**
|
|
1069
|
+
|
|
1070
|
+
- E2E: User can login → Dashboard loads (critical happy path)
|
|
1071
|
+
- API: POST /auth/login returns correct status codes (variations)
|
|
1072
|
+
- Component: LoginForm validates input (UI edge cases)
|
|
1073
|
+
|
|
1074
|
+
**Bad coverage (duplicate):**
|
|
1075
|
+
|
|
1076
|
+
- E2E: User can login → Dashboard loads
|
|
1077
|
+
- E2E: User can login with different emails → Dashboard loads (unnecessary duplication)
|
|
1078
|
+
- API: POST /auth/login returns 200 (already covered in E2E)
|
|
1079
|
+
|
|
1080
|
+
Use E2E sparingly for critical paths. Use API/Component for variations and edge cases.
|
|
1081
|
+
|
|
1082
|
+
### Priority Tagging
|
|
1083
|
+
|
|
1084
|
+
**Tag every test with priority in test name:**
|
|
1085
|
+
|
|
1086
|
+
```typescript
|
|
1087
|
+
test('[P0] should login with valid credentials', async ({ page }) => { ... });
|
|
1088
|
+
test('[P1] should display error for invalid credentials', async ({ page }) => { ... });
|
|
1089
|
+
test('[P2] should remember login preference', async ({ page }) => { ... });
|
|
1090
|
+
```
|
|
1091
|
+
|
|
1092
|
+
**Enables selective test execution:**
|
|
1093
|
+
|
|
1094
|
+
```bash
|
|
1095
|
+
# Run only P0 tests (critical paths)
|
|
1096
|
+
npm run test:e2e -- --grep "@P0"
|
|
1097
|
+
|
|
1098
|
+
# Run P0 + P1 tests (pre-merge)
|
|
1099
|
+
npm run test:e2e -- --grep "@P0|@P1"
|
|
1100
|
+
```
|
|
1101
|
+
|
|
1102
|
+
### No Page Objects
|
|
1103
|
+
|
|
1104
|
+
**Do NOT create page object classes.** Keep tests simple and direct:
|
|
1105
|
+
|
|
1106
|
+
```typescript
|
|
1107
|
+
// ✅ CORRECT: Direct test
|
|
1108
|
+
test('should login', async ({ page }) => {
|
|
1109
|
+
await page.goto('/login');
|
|
1110
|
+
await page.fill('[data-testid="email"]', 'user@example.com');
|
|
1111
|
+
await page.click('[data-testid="login-button"]');
|
|
1112
|
+
await expect(page).toHaveURL('/dashboard');
|
|
1113
|
+
});
|
|
1114
|
+
|
|
1115
|
+
// ❌ WRONG: Page object abstraction
|
|
1116
|
+
class LoginPage {
|
|
1117
|
+
async login(email, password) { ... }
|
|
1118
|
+
}
|
|
1119
|
+
```
|
|
1120
|
+
|
|
1121
|
+
Use fixtures for setup/teardown, not page objects for actions.
|
|
1122
|
+
|
|
1123
|
+
### Deterministic Tests Only
|
|
1124
|
+
|
|
1125
|
+
**No flaky patterns allowed:**
|
|
1126
|
+
|
|
1127
|
+
```typescript
|
|
1128
|
+
// ❌ WRONG: Hard wait
|
|
1129
|
+
await page.waitForTimeout(2000);
|
|
1130
|
+
|
|
1131
|
+
// ✅ CORRECT: Explicit wait
|
|
1132
|
+
await page.waitForSelector('[data-testid="user-name"]');
|
|
1133
|
+
await expect(page.locator('[data-testid="user-name"]')).toBeVisible();
|
|
1134
|
+
|
|
1135
|
+
// ❌ WRONG: Conditional flow
|
|
1136
|
+
if (await element.isVisible()) {
|
|
1137
|
+
await element.click();
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
// ✅ CORRECT: Deterministic assertion
|
|
1141
|
+
await expect(element).toBeVisible();
|
|
1142
|
+
await element.click();
|
|
1143
|
+
|
|
1144
|
+
// ❌ WRONG: Try-catch for test logic
|
|
1145
|
+
try {
|
|
1146
|
+
await element.click();
|
|
1147
|
+
} catch (e) {
|
|
1148
|
+
// Test shouldn't catch errors
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
// ✅ CORRECT: Let test fail if element not found
|
|
1152
|
+
await element.click();
|
|
1153
|
+
```
|
|
1154
|
+
|
|
1155
|
+
### Self-Cleaning Tests
|
|
1156
|
+
|
|
1157
|
+
**Every test must clean up its data:**
|
|
1158
|
+
|
|
1159
|
+
```typescript
|
|
1160
|
+
// ✅ CORRECT: Fixture with auto-cleanup
|
|
1161
|
+
export const test = base.extend({
|
|
1162
|
+
testUser: async ({ page }, use) => {
|
|
1163
|
+
const user = await createUser();
|
|
1164
|
+
await use(user);
|
|
1165
|
+
await deleteUser(user.id); // Auto-cleanup
|
|
1166
|
+
},
|
|
1167
|
+
});
|
|
1168
|
+
|
|
1169
|
+
// ❌ WRONG: Manual cleanup (can be forgotten)
|
|
1170
|
+
test('should login', async ({ page }) => {
|
|
1171
|
+
const user = await createUser();
|
|
1172
|
+
// ... test logic ...
|
|
1173
|
+
// Forgot to delete user!
|
|
1174
|
+
});
|
|
1175
|
+
```
|
|
1176
|
+
|
|
1177
|
+
### File Size Limits
|
|
1178
|
+
|
|
1179
|
+
**Keep test files lean (under {max_file_lines} lines):**
|
|
1180
|
+
|
|
1181
|
+
- If file exceeds limit, split into multiple files by feature area
|
|
1182
|
+
- Group related tests in describe blocks
|
|
1183
|
+
- Extract common setup to fixtures
|
|
1184
|
+
|
|
1185
|
+
### Knowledge Base Integration
|
|
1186
|
+
|
|
1187
|
+
**Core Fragments (Auto-loaded in Step 1):**
|
|
1188
|
+
|
|
1189
|
+
- `test-levels-framework.md` - E2E vs API vs Component vs Unit decision framework with characteristics matrix (467 lines, 4 examples)
|
|
1190
|
+
- `test-priorities-matrix.md` - P0-P3 classification with automated scoring and risk mapping (389 lines, 2 examples)
|
|
1191
|
+
- `fixture-architecture.md` - Pure function → fixture → mergeTests composition with auto-cleanup (406 lines, 5 examples)
|
|
1192
|
+
- `data-factories.md` - Factory patterns with faker: overrides, nested factories, API seeding (498 lines, 5 examples)
|
|
1193
|
+
- `selective-testing.md` - Tag-based, spec filters, diff-based selection, promotion rules (727 lines, 4 examples)
|
|
1194
|
+
- `ci-burn-in.md` - 10-iteration burn-in loop, parallel sharding, selective execution (678 lines, 4 examples)
|
|
1195
|
+
- `test-quality.md` - Deterministic tests, isolated with cleanup, explicit assertions, length/time optimization (658 lines, 5 examples)
|
|
1196
|
+
- `network-first.md` - Intercept before navigate, HAR capture, deterministic waiting strategies (489 lines, 5 examples)
|
|
1197
|
+
|
|
1198
|
+
**Healing Fragments (Auto-loaded if `{auto_heal_failures}` enabled):**
|
|
1199
|
+
|
|
1200
|
+
- `test-healing-patterns.md` - Common failure patterns: stale selectors, race conditions, dynamic data, network errors, hard waits (648 lines, 5 examples)
|
|
1201
|
+
- `selector-resilience.md` - Selector hierarchy (data-testid > ARIA > text > CSS), dynamic patterns, anti-patterns refactoring (541 lines, 4 examples)
|
|
1202
|
+
- `timing-debugging.md` - Race condition prevention, deterministic waiting, async debugging techniques (370 lines, 3 examples)
|
|
1203
|
+
|
|
1204
|
+
**Manual Reference (Optional):**
|
|
1205
|
+
|
|
1206
|
+
- Use `tea-index.csv` to find additional specialized fragments as needed
|
|
1207
|
+
|
|
1208
|
+
---
|
|
1209
|
+
|
|
1210
|
+
## Output Summary
|
|
1211
|
+
|
|
1212
|
+
After completing this workflow, provide a summary:
|
|
1213
|
+
|
|
1214
|
+
````markdown
|
|
1215
|
+
## Automation Complete
|
|
1216
|
+
|
|
1217
|
+
**Mode:** {standalone_mode ? "Standalone" : "XiaoMa-Integrated"}
|
|
1218
|
+
**Target:** {story_id || target_feature || "Auto-discovered features"}
|
|
1219
|
+
|
|
1220
|
+
**Tests Created:**
|
|
1221
|
+
|
|
1222
|
+
- E2E: {e2e_count} tests ({p0_count} P0, {p1_count} P1, {p2_count} P2)
|
|
1223
|
+
- API: {api_count} tests ({p0_count} P0, {p1_count} P1, {p2_count} P2)
|
|
1224
|
+
- Component: {component_count} tests ({p1_count} P1, {p2_count} P2)
|
|
1225
|
+
- Unit: {unit_count} tests ({p2_count} P2, {p3_count} P3)
|
|
1226
|
+
|
|
1227
|
+
**Infrastructure:**
|
|
1228
|
+
|
|
1229
|
+
- Fixtures: {fixture_count} created/enhanced
|
|
1230
|
+
- Factories: {factory_count} created/enhanced
|
|
1231
|
+
- Helpers: {helper_count} created/enhanced
|
|
1232
|
+
|
|
1233
|
+
**Documentation Updated:**
|
|
1234
|
+
|
|
1235
|
+
- ✅ Test README with execution instructions
|
|
1236
|
+
- ✅ package.json scripts for test execution
|
|
1237
|
+
|
|
1238
|
+
**Test Execution:**
|
|
1239
|
+
|
|
1240
|
+
```bash
|
|
1241
|
+
# Run all tests
|
|
1242
|
+
npm run test:e2e
|
|
1243
|
+
|
|
1244
|
+
# Run by priority
|
|
1245
|
+
npm run test:e2e:p0 # Critical paths only
|
|
1246
|
+
npm run test:e2e:p1 # P0 + P1 tests
|
|
1247
|
+
|
|
1248
|
+
# Run specific file
|
|
1249
|
+
npm run test:e2e -- {first_test_file}
|
|
1250
|
+
```
|
|
1251
|
+
````
|
|
1252
|
+
|
|
1253
|
+
**Coverage Status:**
|
|
1254
|
+
|
|
1255
|
+
- ✅ {coverage_percentage}% of features covered
|
|
1256
|
+
- ✅ All P0 scenarios covered
|
|
1257
|
+
- ✅ All P1 scenarios covered
|
|
1258
|
+
- ⚠️ {gap_count} coverage gaps identified (documented in summary)
|
|
1259
|
+
|
|
1260
|
+
**Quality Checks:**
|
|
1261
|
+
|
|
1262
|
+
- ✅ All tests follow Given-When-Then format
|
|
1263
|
+
- ✅ All tests have priority tags
|
|
1264
|
+
- ✅ All tests use data-testid selectors
|
|
1265
|
+
- ✅ All tests are self-cleaning
|
|
1266
|
+
- ✅ No hard waits or flaky patterns
|
|
1267
|
+
- ✅ All test files under {max_file_lines} lines
|
|
1268
|
+
|
|
1269
|
+
**Output File:** {output_summary}
|
|
1270
|
+
|
|
1271
|
+
**Next Steps:**
|
|
1272
|
+
|
|
1273
|
+
1. Review generated tests with team
|
|
1274
|
+
2. Run tests in CI pipeline
|
|
1275
|
+
3. Monitor for flaky tests in burn-in loop
|
|
1276
|
+
4. Integrate with quality gate: `xiaoma tea *gate`
|
|
1277
|
+
|
|
1278
|
+
**Knowledge Base References Applied:**
|
|
1279
|
+
|
|
1280
|
+
- Test level selection framework (E2E vs API vs Component vs Unit)
|
|
1281
|
+
- Priority classification (P0-P3)
|
|
1282
|
+
- Fixture architecture patterns with auto-cleanup
|
|
1283
|
+
- Data factory patterns using faker
|
|
1284
|
+
- Selective testing strategies
|
|
1285
|
+
- Test quality principles
|
|
1286
|
+
|
|
1287
|
+
```
|
|
1288
|
+
|
|
1289
|
+
---
|
|
1290
|
+
|
|
1291
|
+
## Validation
|
|
1292
|
+
|
|
1293
|
+
After completing all steps, verify:
|
|
1294
|
+
|
|
1295
|
+
- [ ] Execution mode determined (XiaoMa-Integrated, Standalone, or Auto-discover)
|
|
1296
|
+
- [ ] XiaoMa artifacts loaded if available (story, tech-spec, test-design, PRD)
|
|
1297
|
+
- [ ] Framework configuration loaded
|
|
1298
|
+
- [ ] Existing test coverage analyzed (gaps identified)
|
|
1299
|
+
- [ ] Knowledge base fragments loaded (test-levels, test-priorities, fixture-architecture, data-factories, selective-testing)
|
|
1300
|
+
- [ ] Automation targets identified (what needs testing)
|
|
1301
|
+
- [ ] Test levels selected appropriately (E2E, API, Component, Unit)
|
|
1302
|
+
- [ ] Duplicate coverage avoided (same behavior not tested at multiple levels)
|
|
1303
|
+
- [ ] Test priorities assigned (P0, P1, P2, P3)
|
|
1304
|
+
- [ ] Fixture architecture created/enhanced (with auto-cleanup)
|
|
1305
|
+
- [ ] Data factories created/enhanced (using faker)
|
|
1306
|
+
- [ ] Helper utilities created/enhanced (if needed)
|
|
1307
|
+
- [ ] E2E tests written (Given-When-Then, priority tags, data-testid selectors)
|
|
1308
|
+
- [ ] API tests written (Given-When-Then, priority tags, comprehensive coverage)
|
|
1309
|
+
- [ ] Component tests written (Given-When-Then, priority tags, UI behavior)
|
|
1310
|
+
- [ ] Unit tests written (Given-When-Then, priority tags, pure logic)
|
|
1311
|
+
- [ ] Network-first pattern applied (route interception before navigation)
|
|
1312
|
+
- [ ] Quality standards enforced (no hard waits, no flaky patterns, self-cleaning, deterministic)
|
|
1313
|
+
- [ ] Test README updated (execution instructions, priority tagging, patterns)
|
|
1314
|
+
- [ ] package.json scripts updated (test execution commands)
|
|
1315
|
+
- [ ] Test suite run locally (results captured)
|
|
1316
|
+
- [ ] Tests validated (if auto_validate enabled)
|
|
1317
|
+
- [ ] Failures healed (if auto_heal_failures enabled)
|
|
1318
|
+
- [ ] Healing report generated (if healing attempted)
|
|
1319
|
+
- [ ] Unfixable tests marked with test.fixme() (if any)
|
|
1320
|
+
- [ ] Automation summary created (tests, infrastructure, coverage, healing, DoD)
|
|
1321
|
+
- [ ] Output file formatted correctly
|
|
1322
|
+
|
|
1323
|
+
Refer to `checklist.md` for comprehensive validation criteria.
|
|
1324
|
+
```
|