@zeyue0329/xiaoma-cli 1.6.4 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (950) hide show
  1. package/.idea/workspace.xml +35 -22
  2. package/AGENTS.md +9 -0
  3. package/README.md +33 -33
  4. package/README_CN.md +121 -0
  5. package/package.json +5 -8
  6. package/pipeline-optimization-report.md +688 -0
  7. package/src/core/module-help.csv +10 -9
  8. package/src/core/skills/xiaoma-advanced-elicitation/SKILL.md +6 -0
  9. package/src/core/skills/xiaoma-advanced-elicitation/SKILL.md.bak +6 -0
  10. package/src/core/skills/xiaoma-advanced-elicitation/workflow.md +135 -0
  11. package/src/core/skills/xiaoma-brainstorming/SKILL.md +6 -0
  12. package/src/core/skills/xiaoma-brainstorming/SKILL.md.bak +6 -0
  13. package/src/core/skills/xiaoma-brainstorming/steps/step-01-session-setup.md +210 -0
  14. package/src/core/skills/xiaoma-brainstorming/steps/step-03-technique-execution.md +399 -0
  15. package/src/core/skills/xiaoma-brainstorming/workflow.md +54 -0
  16. package/src/core/skills/xiaoma-distillator/SKILL.md +178 -0
  17. package/src/core/skills/xiaoma-distillator/SKILL.md.bak +178 -0
  18. package/src/core/skills/xiaoma-distillator/agents/distillate-compressor.md +116 -0
  19. package/src/core/skills/xiaoma-distillator/agents/round-trip-reconstructor.md +68 -0
  20. package/src/core/skills/xiaoma-distillator/resources/compression-rules.md +51 -0
  21. package/src/core/skills/xiaoma-distillator/resources/distillate-format-reference.md +227 -0
  22. package/src/core/skills/xiaoma-distillator/resources/splitting-strategy.md +78 -0
  23. package/src/core/skills/xiaoma-distillator/scripts/analyze_sources.py +300 -0
  24. package/src/core/skills/xiaoma-distillator/scripts/tests/test_analyze_sources.py +204 -0
  25. package/src/core/skills/xiaoma-distillator/xiaoma-skill-manifest.yaml +15 -0
  26. package/src/core/skills/xiaoma-editorial-review-prose/SKILL.md +6 -0
  27. package/src/core/skills/xiaoma-editorial-review-prose/SKILL.md.bak +6 -0
  28. package/src/core/skills/xiaoma-editorial-review-prose/workflow.md +81 -0
  29. package/src/core/skills/xiaoma-editorial-review-structure/SKILL.md +6 -0
  30. package/src/core/skills/xiaoma-editorial-review-structure/SKILL.md.bak +6 -0
  31. package/src/core/skills/xiaoma-editorial-review-structure/workflow.md +174 -0
  32. package/src/core/skills/xiaoma-editorial-review-structure/xiaoma-skill-manifest.yaml +1 -0
  33. package/src/core/skills/xiaoma-help/workflow.md +88 -0
  34. package/src/core/skills/xiaoma-help/xiaoma-skill-manifest.yaml +1 -0
  35. package/src/core/skills/xiaoma-index-docs/SKILL.md +6 -0
  36. package/src/core/skills/xiaoma-index-docs/SKILL.md.bak +6 -0
  37. package/src/core/skills/xiaoma-index-docs/workflow.md +61 -0
  38. package/src/core/skills/xiaoma-index-docs/xiaoma-skill-manifest.yaml +1 -0
  39. package/src/core/skills/xiaoma-party-mode/SKILL.md +6 -0
  40. package/src/core/skills/xiaoma-party-mode/SKILL.md.bak +6 -0
  41. package/src/core/skills/xiaoma-party-mode/steps/step-01-agent-loading.md +138 -0
  42. package/src/core/skills/xiaoma-party-mode/steps/step-02-discussion-orchestration.md +187 -0
  43. package/src/core/skills/xiaoma-party-mode/steps/step-03-graceful-exit.md +167 -0
  44. package/src/core/skills/xiaoma-party-mode/workflow.md +190 -0
  45. package/src/core/skills/xiaoma-party-mode/xiaoma-skill-manifest.yaml +1 -0
  46. package/src/core/skills/xiaoma-review-adversarial-general/SKILL.md.bak +6 -0
  47. package/src/core/skills/xiaoma-review-adversarial-general/xiaoma-skill-manifest.yaml +1 -0
  48. package/src/core/skills/xiaoma-review-edge-case-hunter/SKILL.md.bak +6 -0
  49. package/src/core/skills/xiaoma-review-edge-case-hunter/xiaoma-skill-manifest.yaml +1 -0
  50. package/src/core/skills/xiaoma-shard-doc/SKILL.md +6 -0
  51. package/src/core/skills/xiaoma-shard-doc/SKILL.md.bak +6 -0
  52. package/src/core/skills/xiaoma-shard-doc/workflow.md +100 -0
  53. package/src/core/skills/xiaoma-shard-doc/xiaoma-skill-manifest.yaml +1 -0
  54. package/src/core/tasks/xiaoma-create-prd/SKILL.md +6 -0
  55. package/src/core/tasks/xiaoma-create-prd/SKILL.md.bak +6 -0
  56. package/src/core/tasks/xiaoma-create-prd/data/domain-complexity.csv +15 -0
  57. package/src/core/tasks/xiaoma-create-prd/data/prd-purpose.md +197 -0
  58. package/src/core/tasks/xiaoma-create-prd/data/project-types.csv +11 -0
  59. package/src/core/tasks/xiaoma-create-prd/steps-c/step-01-init.md +178 -0
  60. package/src/core/tasks/xiaoma-create-prd/steps-c/step-01b-continue.md +161 -0
  61. package/src/core/tasks/xiaoma-create-prd/steps-c/step-02-discovery.md +208 -0
  62. package/src/core/tasks/xiaoma-create-prd/steps-c/step-02b-vision.md +142 -0
  63. package/src/core/tasks/xiaoma-create-prd/steps-c/step-02c-executive-summary.md +158 -0
  64. package/src/core/tasks/xiaoma-create-prd/steps-c/step-03-success.md +214 -0
  65. package/src/core/tasks/xiaoma-create-prd/steps-c/step-04-journeys.md +201 -0
  66. package/src/core/tasks/xiaoma-create-prd/steps-c/step-05-domain.md +194 -0
  67. package/src/core/tasks/xiaoma-create-prd/steps-c/step-06-innovation.md +211 -0
  68. package/src/core/tasks/xiaoma-create-prd/steps-c/step-07-project-type.md +222 -0
  69. package/src/core/tasks/xiaoma-create-prd/steps-c/step-08-scoping.md +216 -0
  70. package/src/core/tasks/xiaoma-create-prd/steps-c/step-09-functional.md +219 -0
  71. package/src/core/tasks/xiaoma-create-prd/steps-c/step-10-nonfunctional.md +230 -0
  72. package/src/core/tasks/xiaoma-create-prd/steps-c/step-11-polish.md +221 -0
  73. package/src/core/tasks/xiaoma-create-prd/steps-c/step-12-complete.md +115 -0
  74. package/src/core/tasks/xiaoma-create-prd/workflow.md +62 -0
  75. package/src/core/tasks/xiaoma-create-prd/xiaoma-skill-manifest.yaml +1 -0
  76. package/src/utility/agent-components/activation-steps.txt +2 -2
  77. package/src/xmc/agents/analyst.agent.yaml +10 -6
  78. package/src/xmc/agents/architect.agent.yaml +2 -2
  79. package/src/xmc/agents/dev.agent.yaml +2 -2
  80. package/src/xmc/agents/pm.agent.yaml +6 -6
  81. package/src/xmc/agents/qa.agent.yaml +2 -2
  82. package/src/xmc/agents/quick-flow-solo-dev.agent.yaml +3 -3
  83. package/src/xmc/agents/sm.agent.yaml +8 -4
  84. package/src/xmc/agents/tech-writer/tech-writer-sidecar/documentation-standards.md +2 -2
  85. package/src/xmc/agents/tech-writer/tech-writer.agent.yaml +1 -1
  86. package/src/xmc/agents/tech-writer/xiaoma-skill-manifest.yaml +1 -1
  87. package/src/xmc/agents/ux-designer.agent.yaml +1 -1
  88. package/src/xmc/agents/xiaoma-skill-manifest.yaml +8 -8
  89. package/src/xmc/module-help.csv +31 -31
  90. package/src/xmc/module.yaml +2 -2
  91. package/src/xmc/teams/default-party.csv +14 -14
  92. package/src/xmc/teams/team-fullstack.yaml +1 -1
  93. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/SKILL.md +6 -0
  94. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/checklist.md +28 -0
  95. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-01-init-and-validate.md +102 -0
  96. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-02-requirements-analysis.md +146 -0
  97. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-03-architecture-analysis.md +141 -0
  98. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-04-create-prd.md +100 -0
  99. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-05-validate-prd.md +105 -0
  100. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-06-create-epics.md +95 -0
  101. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-07-create-architecture.md +107 -0
  102. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/steps/step-08-finalize.md +124 -0
  103. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/workflow.md +106 -0
  104. package/src/xmc/workflows/1-analysis/auto-requirements-pipeline/xiaoma-skill-manifest.yaml +3 -0
  105. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/SKILL.md +6 -0
  106. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/SKILL.md.bak +6 -0
  107. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/domain-steps/step-01-init.md +137 -0
  108. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/domain-steps/step-02-domain-analysis.md +229 -0
  109. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/domain-steps/step-03-competitive-landscape.md +238 -0
  110. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/domain-steps/step-04-regulatory-focus.md +206 -0
  111. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/domain-steps/step-05-technical-trends.md +234 -0
  112. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/research.template.md +29 -0
  113. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/workflow.md +49 -0
  114. package/src/xmc/workflows/1-analysis/research/xiaoma-domain-research/xiaoma-skill-manifest.yaml +1 -0
  115. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/SKILL.md +6 -0
  116. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/SKILL.md.bak +6 -0
  117. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/research.template.md +29 -0
  118. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-01-init.md +184 -0
  119. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-02-customer-behavior.md +239 -0
  120. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-03-customer-pain-points.md +251 -0
  121. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-04-customer-decisions.md +261 -0
  122. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-05-competitive-analysis.md +173 -0
  123. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/steps/step-06-research-completion.md +478 -0
  124. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/workflow.md +49 -0
  125. package/src/xmc/workflows/1-analysis/research/xiaoma-market-research/xiaoma-skill-manifest.yaml +1 -0
  126. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/SKILL.md +6 -0
  127. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/SKILL.md.bak +6 -0
  128. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/research.template.md +29 -0
  129. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/technical-steps/step-01-init.md +137 -0
  130. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/technical-steps/step-02-technical-overview.md +239 -0
  131. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/technical-steps/step-03-integration-patterns.md +248 -0
  132. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/technical-steps/step-04-architectural-patterns.md +202 -0
  133. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/technical-steps/step-05-implementation-research.md +233 -0
  134. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/workflow.md +50 -0
  135. package/src/xmc/workflows/1-analysis/research/xiaoma-technical-research/xiaoma-skill-manifest.yaml +1 -0
  136. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/SKILL.md +6 -0
  137. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/SKILL.md.bak +6 -0
  138. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/product-brief.template.md +10 -0
  139. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-01-init.md +170 -0
  140. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-01b-continue.md +158 -0
  141. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-02-vision.md +192 -0
  142. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-03-users.md +195 -0
  143. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-04-metrics.md +198 -0
  144. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-05-scope.md +212 -0
  145. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/steps/step-06-complete.md +159 -0
  146. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/workflow.md +55 -0
  147. package/src/xmc/workflows/1-analysis/xiaoma-create-product-brief/xiaoma-skill-manifest.yaml +1 -0
  148. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/SKILL.md +88 -0
  149. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/SKILL.md.bak +88 -0
  150. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/agents/artifact-analyzer.md +60 -0
  151. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/agents/opportunity-reviewer.md +44 -0
  152. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/agents/skeptic-reviewer.md +44 -0
  153. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/agents/web-researcher.md +49 -0
  154. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/prompts/contextual-discovery.md +57 -0
  155. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/prompts/draft-and-review.md +86 -0
  156. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/prompts/finalize.md +75 -0
  157. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/prompts/guided-elicitation.md +70 -0
  158. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/resources/brief-template.md +60 -0
  159. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/xiaoma-manifest.json +17 -0
  160. package/src/xmc/workflows/1-analysis/xiaoma-product-brief-preview/xiaoma-skill-manifest.yaml +1 -0
  161. package/src/xmc/workflows/2-plan-workflows/create-prd/data/prd-purpose.md +4 -4
  162. package/src/xmc/workflows/2-plan-workflows/create-prd/data/project-types.csv +1 -1
  163. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-01-discovery.md +3 -5
  164. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-02-format-detection.md +16 -16
  165. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-02b-parity-check.md +9 -9
  166. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-03-density-validation.md +1 -1
  167. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-10-smart-validation.md +1 -1
  168. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-11-holistic-quality-validation.md +11 -11
  169. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-v/step-v-13-report-complete.md +1 -0
  170. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md +4 -2
  171. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/SKILL.md +6 -0
  172. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/SKILL.md.bak +6 -0
  173. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-01-init.md +135 -0
  174. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-01b-continue.md +127 -0
  175. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-02-discovery.md +190 -0
  176. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-03-core-experience.md +217 -0
  177. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-04-emotional-response.md +220 -0
  178. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-05-inspiration.md +235 -0
  179. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-06-design-system.md +253 -0
  180. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-07-defining-experience.md +255 -0
  181. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-08-visual-foundation.md +225 -0
  182. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-09-design-directions.md +225 -0
  183. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-10-user-journeys.md +242 -0
  184. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-11-component-strategy.md +249 -0
  185. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-12-ux-patterns.md +238 -0
  186. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-13-responsive-accessibility.md +265 -0
  187. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/steps/step-14-complete.md +171 -0
  188. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/workflow.md +36 -0
  189. package/src/xmc/workflows/2-plan-workflows/xiaoma-create-ux-design/xiaoma-skill-manifest.yaml +1 -0
  190. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/SKILL.md +6 -0
  191. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/SKILL.md.bak +6 -0
  192. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/steps-e/step-e-01-discovery.md +246 -0
  193. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/steps-e/step-e-01b-legacy-conversion.md +208 -0
  194. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/steps-e/step-e-02-review.md +249 -0
  195. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/steps-e/step-e-03-edit.md +254 -0
  196. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/steps-e/step-e-04-complete.md +168 -0
  197. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/workflow.md +64 -0
  198. package/src/xmc/workflows/2-plan-workflows/xiaoma-edit-prd/xiaoma-skill-manifest.yaml +1 -0
  199. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/SKILL.md +6 -0
  200. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/SKILL.md.bak +6 -0
  201. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/data/domain-complexity.csv +15 -0
  202. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/data/prd-purpose.md +197 -0
  203. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/data/project-types.csv +11 -0
  204. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-01-discovery.md +224 -0
  205. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-02-format-detection.md +191 -0
  206. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-02b-parity-check.md +209 -0
  207. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-03-density-validation.md +174 -0
  208. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-04-brief-coverage-validation.md +214 -0
  209. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-05-measurability-validation.md +228 -0
  210. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-06-traceability-validation.md +217 -0
  211. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-07-implementation-leakage-validation.md +205 -0
  212. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-08-domain-compliance-validation.md +243 -0
  213. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-09-project-type-validation.md +263 -0
  214. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-10-smart-validation.md +209 -0
  215. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-11-holistic-quality-validation.md +264 -0
  216. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-12-completeness-validation.md +242 -0
  217. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/steps-v/step-v-13-report-complete.md +232 -0
  218. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/workflow.md +62 -0
  219. package/src/xmc/workflows/2-plan-workflows/xiaoma-validate-prd/xiaoma-skill-manifest.yaml +1 -0
  220. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/SKILL.md +6 -0
  221. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/SKILL.md.bak +6 -0
  222. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-01-document-discovery.md +179 -0
  223. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-02-prd-analysis.md +168 -0
  224. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-03-epic-coverage-validation.md +169 -0
  225. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-04-ux-alignment.md +129 -0
  226. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-05-epic-quality-review.md +241 -0
  227. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/steps/step-06-final-assessment.md +126 -0
  228. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/workflow.md +49 -0
  229. package/src/xmc/workflows/3-solutioning/xiaoma-check-implementation-readiness/xiaoma-skill-manifest.yaml +1 -0
  230. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/SKILL.md +6 -0
  231. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/SKILL.md.bak +6 -0
  232. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-01-init.md +153 -0
  233. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-01b-continue.md +173 -0
  234. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-02-context.md +224 -0
  235. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-03-starter.md +329 -0
  236. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-04-decisions.md +318 -0
  237. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-05-patterns.md +359 -0
  238. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-06-structure.md +379 -0
  239. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/steps/step-07-validation.md +359 -0
  240. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/workflow.md +38 -0
  241. package/src/xmc/workflows/3-solutioning/xiaoma-create-architecture/xiaoma-skill-manifest.yaml +1 -0
  242. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/SKILL.md +6 -0
  243. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/SKILL.md.bak +6 -0
  244. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/steps/step-01-validate-prerequisites.md +255 -0
  245. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/steps/step-02-design-epics.md +212 -0
  246. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/steps/step-03-create-stories.md +255 -0
  247. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/steps/step-04-final-validation.md +131 -0
  248. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/templates/epics-template.md +61 -0
  249. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/workflow.md +53 -0
  250. package/src/xmc/workflows/3-solutioning/xiaoma-create-epics-and-stories/xiaoma-skill-manifest.yaml +1 -0
  251. package/src/xmc/workflows/4-implementation/auto-story-pipeline/SKILL.md +6 -0
  252. package/src/xmc/workflows/4-implementation/auto-story-pipeline/checklist.md +22 -0
  253. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-01-init-and-validate.md +160 -0
  254. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-02-create-story.md +92 -0
  255. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-03-validate-story.md +105 -0
  256. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-04-develop-story.md +90 -0
  257. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-05-code-review.md +96 -0
  258. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-06-test-story.md +144 -0
  259. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-07-fix-and-retest.md +121 -0
  260. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-08-complete-story.md +115 -0
  261. package/src/xmc/workflows/4-implementation/auto-story-pipeline/steps/step-09-cycle-check.md +135 -0
  262. package/src/xmc/workflows/4-implementation/auto-story-pipeline/workflow.md +91 -0
  263. package/src/xmc/workflows/4-implementation/auto-story-pipeline/xiaoma-skill-manifest.yaml +3 -0
  264. package/src/xmc/workflows/4-implementation/xiaoma-code-review/SKILL.md +6 -0
  265. package/src/xmc/workflows/4-implementation/xiaoma-code-review/SKILL.md.bak +6 -0
  266. package/src/xmc/workflows/4-implementation/xiaoma-code-review/workflow.md +261 -0
  267. package/src/xmc/workflows/4-implementation/xiaoma-code-review/xiaoma-skill-manifest.yaml +1 -0
  268. package/src/xmc/workflows/4-implementation/xiaoma-correct-course/SKILL.md +6 -0
  269. package/src/xmc/workflows/4-implementation/xiaoma-correct-course/SKILL.md.bak +6 -0
  270. package/src/xmc/workflows/4-implementation/xiaoma-correct-course/checklist.md +288 -0
  271. package/src/xmc/workflows/4-implementation/xiaoma-correct-course/workflow.md +267 -0
  272. package/src/xmc/workflows/4-implementation/xiaoma-correct-course/xiaoma-skill-manifest.yaml +1 -0
  273. package/src/xmc/workflows/4-implementation/xiaoma-create-story/SKILL.md +6 -0
  274. package/src/xmc/workflows/4-implementation/xiaoma-create-story/SKILL.md.bak +6 -0
  275. package/src/xmc/workflows/4-implementation/xiaoma-create-story/checklist.md +357 -0
  276. package/src/xmc/workflows/4-implementation/xiaoma-create-story/workflow.md +380 -0
  277. package/src/xmc/workflows/4-implementation/xiaoma-create-story/xiaoma-skill-manifest.yaml +1 -0
  278. package/src/xmc/workflows/4-implementation/xiaoma-dev-story/SKILL.md +6 -0
  279. package/src/xmc/workflows/4-implementation/xiaoma-dev-story/SKILL.md.bak +6 -0
  280. package/src/xmc/workflows/4-implementation/xiaoma-dev-story/workflow.md +450 -0
  281. package/src/xmc/workflows/4-implementation/xiaoma-dev-story/xiaoma-skill-manifest.yaml +1 -0
  282. package/src/xmc/workflows/4-implementation/xiaoma-retrospective/SKILL.md +6 -0
  283. package/src/xmc/workflows/4-implementation/xiaoma-retrospective/SKILL.md.bak +6 -0
  284. package/src/xmc/workflows/4-implementation/xiaoma-retrospective/workflow.md +1479 -0
  285. package/src/xmc/workflows/4-implementation/xiaoma-retrospective/xiaoma-skill-manifest.yaml +1 -0
  286. package/src/xmc/workflows/4-implementation/xiaoma-sprint-planning/SKILL.md +6 -0
  287. package/src/xmc/workflows/4-implementation/xiaoma-sprint-planning/SKILL.md.bak +6 -0
  288. package/src/xmc/workflows/4-implementation/xiaoma-sprint-planning/workflow.md +263 -0
  289. package/src/xmc/workflows/4-implementation/xiaoma-sprint-planning/xiaoma-skill-manifest.yaml +1 -0
  290. package/src/xmc/workflows/4-implementation/xiaoma-sprint-status/SKILL.md +6 -0
  291. package/src/xmc/workflows/4-implementation/xiaoma-sprint-status/SKILL.md.bak +6 -0
  292. package/src/xmc/workflows/4-implementation/xiaoma-sprint-status/workflow.md +261 -0
  293. package/src/xmc/workflows/4-implementation/xiaoma-sprint-status/xiaoma-skill-manifest.yaml +1 -0
  294. package/src/xmc/workflows/xiaoma-document-project/SKILL.md +6 -0
  295. package/src/xmc/workflows/xiaoma-document-project/SKILL.md.bak +6 -0
  296. package/src/xmc/workflows/xiaoma-document-project/instructions.md +128 -0
  297. package/src/xmc/workflows/xiaoma-document-project/templates/index-template.md +169 -0
  298. package/src/xmc/workflows/xiaoma-document-project/templates/project-overview-template.md +103 -0
  299. package/src/xmc/workflows/xiaoma-document-project/templates/source-tree-template.md +135 -0
  300. package/src/xmc/workflows/xiaoma-document-project/workflow.md +27 -0
  301. package/src/xmc/workflows/xiaoma-document-project/workflows/deep-dive-instructions.md +299 -0
  302. package/src/xmc/workflows/xiaoma-document-project/workflows/deep-dive-workflow.md +34 -0
  303. package/src/xmc/workflows/xiaoma-document-project/workflows/full-scan-instructions.md +1107 -0
  304. package/src/xmc/workflows/xiaoma-document-project/workflows/full-scan-workflow.md +34 -0
  305. package/src/xmc/workflows/xiaoma-document-project/xiaoma-skill-manifest.yaml +1 -0
  306. package/src/xmc/workflows/xiaoma-generate-project-context/SKILL.md +6 -0
  307. package/src/xmc/workflows/xiaoma-generate-project-context/SKILL.md.bak +6 -0
  308. package/src/xmc/workflows/xiaoma-generate-project-context/steps/step-01-discover.md +184 -0
  309. package/src/xmc/workflows/xiaoma-generate-project-context/steps/step-02-generate.md +319 -0
  310. package/src/xmc/workflows/xiaoma-generate-project-context/workflow.md +43 -0
  311. package/src/xmc/workflows/xiaoma-generate-project-context/xiaoma-skill-manifest.yaml +1 -0
  312. package/src/xmc/workflows/xiaoma-qa-generate-e2e-tests/SKILL.md +6 -0
  313. package/src/xmc/workflows/xiaoma-qa-generate-e2e-tests/SKILL.md.bak +6 -0
  314. package/src/xmc/workflows/xiaoma-qa-generate-e2e-tests/checklist.md +33 -0
  315. package/src/xmc/workflows/xiaoma-qa-generate-e2e-tests/workflow.md +136 -0
  316. package/src/xmc/workflows/xiaoma-qa-generate-e2e-tests/xiaoma-skill-manifest.yaml +1 -0
  317. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/SKILL.md +6 -0
  318. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/SKILL.md.bak +6 -0
  319. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-01-mode-detection.md +169 -0
  320. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-02-context-gathering.md +114 -0
  321. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-03-execute.md +107 -0
  322. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-04-self-check.md +107 -0
  323. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-05-adversarial-review.md +94 -0
  324. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/steps/step-06-resolve-findings.md +144 -0
  325. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/workflow.md +38 -0
  326. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev/xiaoma-skill-manifest.yaml +1 -0
  327. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/SKILL.md +1 -1
  328. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/SKILL.md.bak +6 -0
  329. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-01-clarify-and-route.md +2 -5
  330. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-02-plan.md +2 -6
  331. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-03-implement.md +1 -3
  332. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-04-review.md +3 -8
  333. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/steps/step-05-present.md +2 -4
  334. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-dev-new-preview/workflow.md +0 -5
  335. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/SKILL.md +6 -0
  336. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/SKILL.md.bak +6 -0
  337. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/steps/step-01-understand.md +185 -0
  338. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/steps/step-02-investigate.md +140 -0
  339. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/steps/step-03-generate.md +123 -0
  340. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/steps/step-04-review.md +195 -0
  341. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/workflow.md +72 -0
  342. package/src/xmc/workflows/xiaoma-quick-flow/xiaoma-quick-spec/xiaoma-skill-manifest.yaml +1 -0
  343. package/tools/cli/README.md +4 -4
  344. package/tools/cli/commands/install.js +1 -1
  345. package/tools/cli/commands/status.js +4 -4
  346. package/tools/cli/commands/uninstall.js +9 -9
  347. package/tools/cli/external-official-modules.yaml +50 -47
  348. package/tools/cli/installers/install-messages.yaml +3 -3
  349. package/tools/cli/installers/lib/core/config-collector.js +2 -2
  350. package/tools/cli/installers/lib/core/dependency-resolver.js +2 -2
  351. package/tools/cli/installers/lib/core/detector.js +9 -9
  352. package/tools/cli/installers/lib/core/ide-config-manager.js +7 -7
  353. package/tools/cli/installers/lib/core/installer.js +74 -57
  354. package/tools/cli/installers/lib/core/manifest-generator.js +6 -6
  355. package/tools/cli/installers/lib/core/manifest.js +6 -4
  356. package/tools/cli/installers/lib/custom/handler.js +5 -5
  357. package/tools/cli/installers/lib/ide/_base-ide.js +15 -16
  358. package/tools/cli/installers/lib/ide/_config-driven.js +40 -35
  359. package/tools/cli/installers/lib/ide/manager.js +11 -11
  360. package/tools/cli/installers/lib/ide/platform-codes.yaml +3 -3
  361. package/tools/cli/installers/lib/ide/shared/agent-command-generator.js +5 -5
  362. package/tools/cli/installers/lib/ide/shared/path-utils.js +3 -3
  363. package/tools/cli/installers/lib/ide/shared/skill-manifest.js +2 -2
  364. package/tools/cli/installers/lib/ide/shared/task-tool-command-generator.js +18 -18
  365. package/tools/cli/installers/lib/ide/shared/workflow-command-generator.js +2 -2
  366. package/tools/cli/installers/lib/ide/shared/xiaoma-artifacts.js +5 -5
  367. package/tools/cli/installers/lib/ide/templates/agent-command-template.md +1 -1
  368. package/tools/cli/installers/lib/ide/templates/combined/antigravity.md +1 -1
  369. package/tools/cli/installers/lib/ide/templates/combined/default-agent.md +1 -1
  370. package/tools/cli/installers/lib/ide/templates/combined/default-task.md +1 -1
  371. package/tools/cli/installers/lib/ide/templates/combined/default-tool.md +1 -1
  372. package/tools/cli/installers/lib/ide/templates/combined/default-workflow.md +1 -1
  373. package/tools/cli/installers/lib/ide/templates/combined/gemini-agent.toml +5 -5
  374. package/tools/cli/installers/lib/ide/templates/combined/gemini-task.toml +4 -4
  375. package/tools/cli/installers/lib/ide/templates/combined/gemini-tool.toml +4 -4
  376. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow-yaml.toml +3 -3
  377. package/tools/cli/installers/lib/ide/templates/combined/gemini-workflow.toml +3 -3
  378. package/tools/cli/installers/lib/ide/templates/combined/kiro-agent.md +1 -1
  379. package/tools/cli/installers/lib/ide/templates/combined/kiro-task.md +1 -1
  380. package/tools/cli/installers/lib/ide/templates/combined/kiro-tool.md +1 -1
  381. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow.md +1 -1
  382. package/tools/cli/installers/lib/ide/templates/combined/opencode-agent.md +1 -1
  383. package/tools/cli/installers/lib/ide/templates/combined/opencode-task.md +3 -3
  384. package/tools/cli/installers/lib/ide/templates/combined/opencode-tool.md +3 -3
  385. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow-yaml.md +3 -3
  386. package/tools/cli/installers/lib/ide/templates/combined/opencode-workflow.md +3 -3
  387. package/tools/cli/installers/lib/ide/templates/combined/rovodev.md +1 -1
  388. package/tools/cli/installers/lib/ide/templates/combined/trae.md +1 -1
  389. package/tools/cli/installers/lib/ide/templates/combined/windsurf-workflow.md +1 -1
  390. package/tools/cli/installers/lib/modules/manager.js +22 -22
  391. package/tools/cli/lib/agent/compiler.js +4 -4
  392. package/tools/cli/lib/agent/installer.js +9 -9
  393. package/tools/cli/lib/agent/template-engine.js +1 -1
  394. package/tools/cli/lib/agent-party-generator.js +4 -4
  395. package/tools/cli/lib/cli-utils.js +1 -1
  396. package/tools/cli/lib/project-root.js +5 -5
  397. package/tools/cli/lib/prompts.js +1 -1
  398. package/tools/cli/lib/ui.js +49 -29
  399. package/tools/cli/lib/xml-handler.js +1 -1
  400. package/tools/cli/lib/yaml-format.js +1 -1
  401. package/tools/cli/lib/yaml-xml-builder.js +2 -2
  402. package/tools/cli/xiaoma-cli.js +3 -3
  403. package/tools/format-workflow-md.js +2 -2
  404. package/tools/migrate-custom-module-paths.js +0 -0
  405. package/tools/platform-codes.yaml +2 -2
  406. package/tools/schema/agent.js +1 -1
  407. package/tools/skill-validator.md +322 -0
  408. package/tools/xiaoma-npx-wrapper.js +1 -1
  409. package/.github/workflows/quality.yaml +0 -116
  410. package/.husky/pre-commit +0 -26
  411. package/.markdownlint-cli2.yaml +0 -41
  412. package/.prettierignore +0 -12
  413. package/.vscode/settings.json +0 -96
  414. package/XiaoMa-Cli.iml +0 -9
  415. package/custom/src/agents/commit-poet/commit-poet.agent.yaml +0 -129
  416. package/custom/src/agents/commit-poet/installation-guide.md +0 -36
  417. package/custom/src/agents/toolsmith/installation-guide.md +0 -36
  418. package/custom/src/agents/toolsmith/toolsmith-sidecar/instructions.md +0 -70
  419. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/bundlers.md +0 -111
  420. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/deploy.md +0 -70
  421. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/docs.md +0 -114
  422. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/installers.md +0 -134
  423. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/modules.md +0 -160
  424. package/custom/src/agents/toolsmith/toolsmith-sidecar/knowledge/tests.md +0 -103
  425. package/custom/src/agents/toolsmith/toolsmith-sidecar/memories.md +0 -17
  426. package/custom/src/agents/toolsmith/toolsmith.agent.yaml +0 -108
  427. package/docs/BUNDLE_DISTRIBUTION_SETUP.md +0 -95
  428. package/docs/agent-customization-guide.md +0 -208
  429. package/docs/custom-agent-installation.md +0 -183
  430. package/docs/document-sharding-guide.md +0 -449
  431. package/docs/explanation/advanced-elicitation.md +0 -49
  432. package/docs/explanation/adversarial-review.md +0 -59
  433. package/docs/explanation/brainstorming.md +0 -33
  434. package/docs/explanation/established-projects-faq.md +0 -50
  435. package/docs/explanation/party-mode.md +0 -59
  436. package/docs/explanation/preventing-agent-conflicts.md +0 -112
  437. package/docs/explanation/project-context.md +0 -157
  438. package/docs/explanation/quick-dev-new-preview.md +0 -73
  439. package/docs/explanation/quick-flow.md +0 -77
  440. package/docs/explanation/why-solutioning-matters.md +0 -77
  441. package/docs/how-to/customize-xiaoma.md +0 -172
  442. package/docs/how-to/established-projects.md +0 -117
  443. package/docs/how-to/get-answers-about-xiaoma.md +0 -134
  444. package/docs/how-to/install-xiaoma.md +0 -107
  445. package/docs/how-to/non-interactive-installation.md +0 -171
  446. package/docs/how-to/project-context.md +0 -136
  447. package/docs/how-to/quick-fixes.md +0 -123
  448. package/docs/how-to/shard-large-documents.md +0 -78
  449. package/docs/how-to/upgrade-to-v6.md +0 -100
  450. package/docs/ide-info/auggie.md +0 -31
  451. package/docs/ide-info/claude-code.md +0 -25
  452. package/docs/ide-info/cline.md +0 -31
  453. package/docs/ide-info/codex.md +0 -21
  454. package/docs/ide-info/crush.md +0 -30
  455. package/docs/ide-info/cursor.md +0 -25
  456. package/docs/ide-info/gemini.md +0 -25
  457. package/docs/ide-info/github-copilot.md +0 -26
  458. package/docs/ide-info/iflow.md +0 -33
  459. package/docs/ide-info/kilo.md +0 -24
  460. package/docs/ide-info/opencode.md +0 -24
  461. package/docs/ide-info/qwen.md +0 -25
  462. package/docs/ide-info/roo.md +0 -27
  463. package/docs/ide-info/rovo-dev.md +0 -388
  464. package/docs/ide-info/trae.md +0 -25
  465. package/docs/ide-info/windsurf.md +0 -22
  466. package/docs/index.md +0 -60
  467. package/docs/installers-bundlers/ide-injections.md +0 -186
  468. package/docs/installers-bundlers/installers-modules-platforms-reference.md +0 -379
  469. package/docs/rag/rag.md +0 -856
  470. package/docs/reference/agents.md +0 -28
  471. package/docs/reference/commands.md +0 -145
  472. package/docs/reference/modules.md +0 -76
  473. package/docs/reference/testing.md +0 -106
  474. package/docs/reference/workflow-map.md +0 -89
  475. package/docs/roadmap.mdx +0 -136
  476. package/docs/superpowers/plans/2026-03-11-upstream-sync-with-branding.md +0 -586
  477. package/docs/tutorials/getting-started.md +0 -273
  478. package/docs/v4-to-v6-upgrade.md +0 -220
  479. package/docs/v6-open-items.md +0 -17
  480. package/docs/web-bundles-gemini-gpt-guide.md +0 -468
  481. package/docs/zh-cn/404.md +0 -9
  482. package/docs/zh-cn/_STYLE_GUIDE.md +0 -370
  483. package/docs/zh-cn/explanation/advanced-elicitation.md +0 -62
  484. package/docs/zh-cn/explanation/adversarial-review.md +0 -71
  485. package/docs/zh-cn/explanation/brainstorming.md +0 -43
  486. package/docs/zh-cn/explanation/established-projects-faq.md +0 -60
  487. package/docs/zh-cn/explanation/party-mode.md +0 -79
  488. package/docs/zh-cn/explanation/preventing-agent-conflicts.md +0 -137
  489. package/docs/zh-cn/explanation/project-context.md +0 -176
  490. package/docs/zh-cn/explanation/quick-flow.md +0 -93
  491. package/docs/zh-cn/explanation/why-solutioning-matters.md +0 -90
  492. package/docs/zh-cn/how-to/customize-xiaoma.md +0 -182
  493. package/docs/zh-cn/how-to/established-projects.md +0 -134
  494. package/docs/zh-cn/how-to/get-answers-about-xiaoma.md +0 -144
  495. package/docs/zh-cn/how-to/install-xiaoma.md +0 -105
  496. package/docs/zh-cn/how-to/non-interactive-installation.md +0 -181
  497. package/docs/zh-cn/how-to/project-context.md +0 -152
  498. package/docs/zh-cn/how-to/quick-fixes.md +0 -140
  499. package/docs/zh-cn/how-to/shard-large-documents.md +0 -86
  500. package/docs/zh-cn/how-to/upgrade-to-v6.md +0 -120
  501. package/docs/zh-cn/index.md +0 -69
  502. package/docs/zh-cn/reference/agents.md +0 -41
  503. package/docs/zh-cn/reference/commands.md +0 -166
  504. package/docs/zh-cn/reference/modules.md +0 -94
  505. package/docs/zh-cn/reference/testing.md +0 -122
  506. package/docs/zh-cn/reference/workflow-map.md +0 -104
  507. package/docs/zh-cn/roadmap.mdx +0 -152
  508. package/docs/zh-cn/tutorials/getting-started.md +0 -300
  509. package/eslint.config.mjs +0 -144
  510. package/prettier.config.mjs +0 -32
  511. package/src/core/_module-installer/install-config.yaml +0 -29
  512. package/src/core/_module-installer/installer.js +0 -60
  513. package/src/core/agents/xiaoma-master.agent.yaml +0 -30
  514. package/src/core/agents/xiaoma-skill-manifest.yaml +0 -3
  515. package/src/core/agents/xiaoma-web-orchestrator.agent.xml +0 -113
  516. package/src/core/resources/excalidraw/README.md +0 -160
  517. package/src/core/resources/excalidraw/excalidraw-helpers.md +0 -127
  518. package/src/core/resources/excalidraw/library-loader.md +0 -50
  519. package/src/core/resources/excalidraw/validate-json-instructions.md +0 -79
  520. package/src/core/tasks/advanced-elicitation-methods.csv +0 -51
  521. package/src/core/tasks/advanced-elicitation.xml +0 -116
  522. package/src/core/tasks/editorial-review-prose.xml +0 -102
  523. package/src/core/tasks/editorial-review-structure.xml +0 -208
  524. package/src/core/tasks/help.md +0 -92
  525. package/src/core/tasks/index-docs.xml +0 -65
  526. package/src/core/tasks/review-adversarial-general.xml +0 -49
  527. package/src/core/tasks/review-edge-case-hunter.xml +0 -63
  528. package/src/core/tasks/shard-doc.xml +0 -108
  529. package/src/core/tasks/validate-workflow.xml +0 -89
  530. package/src/core/tasks/workflow.xml +0 -235
  531. package/src/core/tasks/xiaoma-help/workflow.md +0 -88
  532. package/src/core/tasks/xiaoma-skill-manifest.yaml +0 -19
  533. package/src/core/tools/shard-doc.xml +0 -109
  534. package/src/core/workflows/advanced-elicitation/workflow.md +0 -138
  535. package/src/core/workflows/advanced-elicitation/workflow.xml +0 -118
  536. package/src/core/workflows/advanced-elicitation/xiaoma-skill-manifest.yaml +0 -3
  537. package/src/core/workflows/brainstorming/steps/step-01-session-setup.md +0 -210
  538. package/src/core/workflows/brainstorming/steps/step-03-technique-execution.md +0 -399
  539. package/src/core/workflows/brainstorming/workflow.md +0 -60
  540. package/src/core/workflows/brainstorming/xiaoma-skill-manifest.yaml +0 -3
  541. package/src/core/workflows/party-mode/steps/step-01-agent-loading.md +0 -138
  542. package/src/core/workflows/party-mode/steps/step-02-discussion-orchestration.md +0 -187
  543. package/src/core/workflows/party-mode/steps/step-03-graceful-exit.md +0 -168
  544. package/src/core/workflows/party-mode/workflow.md +0 -194
  545. package/src/core/workflows/party-mode/xiaoma-skill-manifest.yaml +0 -3
  546. package/src/utility/agent-components/handler-validate-workflow.txt +0 -7
  547. package/src/utility/agent-components/handler-workflow.txt +0 -10
  548. package/src/utility/models/action-command-header.md +0 -0
  549. package/src/utility/models/agent-activation-ide.xml +0 -51
  550. package/src/utility/models/agent-activation-web.xml +0 -50
  551. package/src/utility/models/agent-command-header.md +0 -1
  552. package/src/utility/models/agent-config-template.md +0 -23
  553. package/src/utility/models/agent-in-team-activation.xml +0 -3
  554. package/src/utility/models/fragments/activation-rules.xml +0 -7
  555. package/src/utility/models/fragments/activation-steps.xml +0 -16
  556. package/src/utility/models/fragments/handler-action.xml +0 -4
  557. package/src/utility/models/fragments/handler-data.xml +0 -5
  558. package/src/utility/models/fragments/handler-exec.xml +0 -6
  559. package/src/utility/models/fragments/handler-multi.xml +0 -14
  560. package/src/utility/models/fragments/handler-tmpl.xml +0 -5
  561. package/src/utility/models/fragments/handler-validate-workflow.xml +0 -7
  562. package/src/utility/models/fragments/handler-workflow.xml +0 -9
  563. package/src/utility/models/fragments/menu-handlers.xml +0 -6
  564. package/src/utility/models/fragments/web-bundle-activation-steps.xml +0 -32
  565. package/src/utility/templates/agent.customize.template.yaml +0 -42
  566. package/src/xmc/_module-installer/install-config.yaml +0 -53
  567. package/src/xmc/_module-installer/installer.js +0 -131
  568. package/src/xmc/_module-installer/platform-specifics/claude-code.js +0 -35
  569. package/src/xmc/_module-installer/platform-specifics/windsurf.js +0 -32
  570. package/src/xmc/sub-modules/claude-code/config.yaml +0 -5
  571. package/src/xmc/sub-modules/claude-code/injections.yaml +0 -242
  572. package/src/xmc/sub-modules/claude-code/readme.md +0 -87
  573. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/api-documenter.md +0 -102
  574. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/codebase-analyzer.md +0 -82
  575. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/data-analyst.md +0 -101
  576. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-analysis/pattern-detector.md +0 -84
  577. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/dependency-mapper.md +0 -83
  578. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/epic-optimizer.md +0 -81
  579. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/requirements-analyst.md +0 -61
  580. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/technical-decisions-curator.md +0 -168
  581. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/trend-spotter.md +0 -115
  582. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/user-journey-mapper.md +0 -123
  583. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-planning/user-researcher.md +0 -72
  584. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-research/market-researcher.md +0 -51
  585. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-research/tech-debt-auditor.md +0 -106
  586. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/document-reviewer.md +0 -102
  587. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/technical-evaluator.md +0 -68
  588. package/src/xmc/sub-modules/claude-code/sub-agents/xiaoma-review/test-coverage-analyzer.md +0 -108
  589. package/src/xmc/testarch/knowledge/api-request.md +0 -303
  590. package/src/xmc/testarch/knowledge/auth-session.md +0 -356
  591. package/src/xmc/testarch/knowledge/burn-in.md +0 -273
  592. package/src/xmc/testarch/knowledge/ci-burn-in.md +0 -675
  593. package/src/xmc/testarch/knowledge/component-tdd.md +0 -486
  594. package/src/xmc/testarch/knowledge/contract-testing.md +0 -957
  595. package/src/xmc/testarch/knowledge/data-factories.md +0 -500
  596. package/src/xmc/testarch/knowledge/email-auth.md +0 -721
  597. package/src/xmc/testarch/knowledge/error-handling.md +0 -725
  598. package/src/xmc/testarch/knowledge/feature-flags.md +0 -750
  599. package/src/xmc/testarch/knowledge/file-utils.md +0 -260
  600. package/src/xmc/testarch/knowledge/fixture-architecture.md +0 -401
  601. package/src/xmc/testarch/knowledge/fixtures-composition.md +0 -382
  602. package/src/xmc/testarch/knowledge/intercept-network-call.md +0 -280
  603. package/src/xmc/testarch/knowledge/log.md +0 -294
  604. package/src/xmc/testarch/knowledge/network-error-monitor.md +0 -272
  605. package/src/xmc/testarch/knowledge/network-first.md +0 -486
  606. package/src/xmc/testarch/knowledge/network-recorder.md +0 -265
  607. package/src/xmc/testarch/knowledge/nfr-criteria.md +0 -670
  608. package/src/xmc/testarch/knowledge/overview.md +0 -284
  609. package/src/xmc/testarch/knowledge/playwright-config.md +0 -730
  610. package/src/xmc/testarch/knowledge/probability-impact.md +0 -601
  611. package/src/xmc/testarch/knowledge/recurse.md +0 -296
  612. package/src/xmc/testarch/knowledge/risk-governance.md +0 -615
  613. package/src/xmc/testarch/knowledge/selective-testing.md +0 -732
  614. package/src/xmc/testarch/knowledge/selector-resilience.md +0 -527
  615. package/src/xmc/testarch/knowledge/test-healing-patterns.md +0 -644
  616. package/src/xmc/testarch/knowledge/test-levels-framework.md +0 -473
  617. package/src/xmc/testarch/knowledge/test-priorities-matrix.md +0 -373
  618. package/src/xmc/testarch/knowledge/test-quality.md +0 -664
  619. package/src/xmc/testarch/knowledge/timing-debugging.md +0 -372
  620. package/src/xmc/testarch/knowledge/visual-debugging.md +0 -524
  621. package/src/xmc/testarch/tea-index.csv +0 -33
  622. package/src/xmc/workflows/1-analysis/create-product-brief/product-brief.template.md +0 -10
  623. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-01-init.md +0 -177
  624. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-01b-continue.md +0 -161
  625. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-02-vision.md +0 -199
  626. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-03-users.md +0 -202
  627. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-04-metrics.md +0 -205
  628. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-05-scope.md +0 -219
  629. package/src/xmc/workflows/1-analysis/create-product-brief/steps/step-06-complete.md +0 -162
  630. package/src/xmc/workflows/1-analysis/create-product-brief/workflow.md +0 -57
  631. package/src/xmc/workflows/1-analysis/create-product-brief/xiaoma-skill-manifest.yaml +0 -3
  632. package/src/xmc/workflows/1-analysis/research/domain-steps/step-01-init.md +0 -137
  633. package/src/xmc/workflows/1-analysis/research/domain-steps/step-02-domain-analysis.md +0 -229
  634. package/src/xmc/workflows/1-analysis/research/domain-steps/step-03-competitive-landscape.md +0 -238
  635. package/src/xmc/workflows/1-analysis/research/domain-steps/step-04-regulatory-focus.md +0 -206
  636. package/src/xmc/workflows/1-analysis/research/domain-steps/step-05-technical-trends.md +0 -234
  637. package/src/xmc/workflows/1-analysis/research/technical-steps/step-01-init.md +0 -137
  638. package/src/xmc/workflows/1-analysis/research/technical-steps/step-02-technical-overview.md +0 -239
  639. package/src/xmc/workflows/1-analysis/research/technical-steps/step-03-integration-patterns.md +0 -248
  640. package/src/xmc/workflows/1-analysis/research/technical-steps/step-04-architectural-patterns.md +0 -202
  641. package/src/xmc/workflows/1-analysis/research/technical-steps/step-05-implementation-research.md +0 -233
  642. package/src/xmc/workflows/1-analysis/research/workflow-domain-research.md +0 -54
  643. package/src/xmc/workflows/1-analysis/research/workflow-market-research.md +0 -54
  644. package/src/xmc/workflows/1-analysis/research/workflow-technical-research.md +0 -54
  645. package/src/xmc/workflows/1-analysis/research/xiaoma-skill-manifest.yaml +0 -14
  646. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-01-init.md +0 -191
  647. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-01b-continue.md +0 -152
  648. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02-discovery.md +0 -224
  649. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02b-vision.md +0 -154
  650. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-02c-executive-summary.md +0 -170
  651. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-03-success.md +0 -226
  652. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-04-journeys.md +0 -213
  653. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-05-domain.md +0 -207
  654. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-06-innovation.md +0 -226
  655. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-07-project-type.md +0 -237
  656. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-08-scoping.md +0 -228
  657. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-09-functional.md +0 -231
  658. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-10-nonfunctional.md +0 -242
  659. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-11-polish.md +0 -217
  660. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-c/step-12-complete.md +0 -124
  661. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-01-discovery.md +0 -247
  662. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-01b-legacy-conversion.md +0 -208
  663. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-02-review.md +0 -249
  664. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-03-edit.md +0 -253
  665. package/src/xmc/workflows/2-plan-workflows/create-prd/steps-e/step-e-04-complete.md +0 -168
  666. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-create-prd.md +0 -63
  667. package/src/xmc/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md +0 -65
  668. package/src/xmc/workflows/2-plan-workflows/create-prd/xiaoma-skill-manifest.yaml +0 -14
  669. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01-init.md +0 -135
  670. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-01b-continue.md +0 -127
  671. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-02-discovery.md +0 -190
  672. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-03-core-experience.md +0 -216
  673. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-04-emotional-response.md +0 -219
  674. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-05-inspiration.md +0 -234
  675. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-06-design-system.md +0 -252
  676. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-07-defining-experience.md +0 -254
  677. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-08-visual-foundation.md +0 -224
  678. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-09-design-directions.md +0 -224
  679. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-10-user-journeys.md +0 -241
  680. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-11-component-strategy.md +0 -248
  681. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-12-ux-patterns.md +0 -237
  682. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-13-responsive-accessibility.md +0 -264
  683. package/src/xmc/workflows/2-plan-workflows/create-ux-design/steps/step-14-complete.md +0 -171
  684. package/src/xmc/workflows/2-plan-workflows/create-ux-design/workflow.md +0 -42
  685. package/src/xmc/workflows/2-plan-workflows/create-ux-design/xiaoma-skill-manifest.yaml +0 -3
  686. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-01-document-discovery.md +0 -184
  687. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-02-prd-analysis.md +0 -172
  688. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-03-epic-coverage-validation.md +0 -173
  689. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-04-ux-alignment.md +0 -133
  690. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-05-epic-quality-review.md +0 -245
  691. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/steps/step-06-final-assessment.md +0 -129
  692. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/workflow.md +0 -54
  693. package/src/xmc/workflows/3-solutioning/check-implementation-readiness/xiaoma-skill-manifest.yaml +0 -3
  694. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-01-init.md +0 -153
  695. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-01b-continue.md +0 -173
  696. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-02-context.md +0 -224
  697. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-03-starter.md +0 -329
  698. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-04-decisions.md +0 -318
  699. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-05-patterns.md +0 -359
  700. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-06-structure.md +0 -379
  701. package/src/xmc/workflows/3-solutioning/create-architecture/steps/step-07-validation.md +0 -359
  702. package/src/xmc/workflows/3-solutioning/create-architecture/workflow.md +0 -49
  703. package/src/xmc/workflows/3-solutioning/create-architecture/xiaoma-skill-manifest.yaml +0 -3
  704. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-01-validate-prerequisites.md +0 -259
  705. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-02-design-epics.md +0 -233
  706. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-03-create-stories.md +0 -272
  707. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/steps/step-04-final-validation.md +0 -149
  708. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/templates/epics-template.md +0 -57
  709. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/workflow.md +0 -58
  710. package/src/xmc/workflows/3-solutioning/create-epics-and-stories/xiaoma-skill-manifest.yaml +0 -3
  711. package/src/xmc/workflows/4-implementation/code-review/workflow.md +0 -271
  712. package/src/xmc/workflows/4-implementation/code-review/xiaoma-skill-manifest.yaml +0 -3
  713. package/src/xmc/workflows/4-implementation/correct-course/checklist.md +0 -288
  714. package/src/xmc/workflows/4-implementation/correct-course/workflow.md +0 -274
  715. package/src/xmc/workflows/4-implementation/correct-course/xiaoma-skill-manifest.yaml +0 -3
  716. package/src/xmc/workflows/4-implementation/create-story/checklist.md +0 -357
  717. package/src/xmc/workflows/4-implementation/create-story/workflow.md +0 -388
  718. package/src/xmc/workflows/4-implementation/create-story/xiaoma-skill-manifest.yaml +0 -3
  719. package/src/xmc/workflows/4-implementation/dev-story/workflow.md +0 -457
  720. package/src/xmc/workflows/4-implementation/dev-story/xiaoma-skill-manifest.yaml +0 -3
  721. package/src/xmc/workflows/4-implementation/retrospective/workflow.md +0 -1485
  722. package/src/xmc/workflows/4-implementation/retrospective/xiaoma-skill-manifest.yaml +0 -3
  723. package/src/xmc/workflows/4-implementation/sprint-planning/workflow.md +0 -271
  724. package/src/xmc/workflows/4-implementation/sprint-planning/xiaoma-skill-manifest.yaml +0 -3
  725. package/src/xmc/workflows/4-implementation/sprint-status/workflow.md +0 -267
  726. package/src/xmc/workflows/4-implementation/sprint-status/xiaoma-skill-manifest.yaml +0 -3
  727. package/src/xmc/workflows/document-project/instructions.md +0 -128
  728. package/src/xmc/workflows/document-project/templates/index-template.md +0 -169
  729. package/src/xmc/workflows/document-project/templates/project-overview-template.md +0 -103
  730. package/src/xmc/workflows/document-project/templates/source-tree-template.md +0 -135
  731. package/src/xmc/workflows/document-project/workflow.md +0 -39
  732. package/src/xmc/workflows/document-project/workflows/deep-dive-instructions.md +0 -297
  733. package/src/xmc/workflows/document-project/workflows/deep-dive-workflow.md +0 -42
  734. package/src/xmc/workflows/document-project/workflows/full-scan-instructions.md +0 -1105
  735. package/src/xmc/workflows/document-project/workflows/full-scan-workflow.md +0 -42
  736. package/src/xmc/workflows/document-project/xiaoma-skill-manifest.yaml +0 -3
  737. package/src/xmc/workflows/generate-project-context/steps/step-01-discover.md +0 -184
  738. package/src/xmc/workflows/generate-project-context/steps/step-02-generate.md +0 -318
  739. package/src/xmc/workflows/generate-project-context/workflow.md +0 -49
  740. package/src/xmc/workflows/generate-project-context/xiaoma-skill-manifest.yaml +0 -3
  741. package/src/xmc/workflows/qa-generate-e2e-tests/checklist.md +0 -33
  742. package/src/xmc/workflows/qa-generate-e2e-tests/workflow.md +0 -143
  743. package/src/xmc/workflows/qa-generate-e2e-tests/xiaoma-skill-manifest.yaml +0 -3
  744. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-01-mode-detection.md +0 -174
  745. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-02-context-gathering.md +0 -118
  746. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-03-execute.md +0 -111
  747. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-04-self-check.md +0 -111
  748. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-05-adversarial-review.md +0 -98
  749. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/steps/step-06-resolve-findings.md +0 -146
  750. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/workflow.md +0 -50
  751. package/src/xmc/workflows/xiaoma-quick-flow/quick-dev/xiaoma-skill-manifest.yaml +0 -3
  752. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-01-understand.md +0 -189
  753. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-02-investigate.md +0 -143
  754. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-03-generate.md +0 -126
  755. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/steps/step-04-review.md +0 -198
  756. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/workflow.md +0 -79
  757. package/src/xmc/workflows/xiaoma-quick-flow/quick-spec/xiaoma-skill-manifest.yaml +0 -3
  758. package/test/README.md +0 -295
  759. package/test/adversarial-review-tests/README.md +0 -56
  760. package/test/adversarial-review-tests/sample-content.md +0 -46
  761. package/test/adversarial-review-tests/test-cases.yaml +0 -103
  762. package/test/fixtures/agent-schema/invalid/critical-actions/actions-as-string.agent.yaml +0 -27
  763. package/test/fixtures/agent-schema/invalid/critical-actions/empty-string-in-actions.agent.yaml +0 -30
  764. package/test/fixtures/agent-schema/invalid/menu/empty-menu.agent.yaml +0 -22
  765. package/test/fixtures/agent-schema/invalid/menu/missing-menu.agent.yaml +0 -20
  766. package/test/fixtures/agent-schema/invalid/menu-commands/empty-command-target.agent.yaml +0 -25
  767. package/test/fixtures/agent-schema/invalid/menu-commands/no-command-target.agent.yaml +0 -24
  768. package/test/fixtures/agent-schema/invalid/menu-triggers/camel-case.agent.yaml +0 -25
  769. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-invalid-format.agent.yaml +0 -25
  770. package/test/fixtures/agent-schema/invalid/menu-triggers/compound-mismatched-kebab.agent.yaml +0 -25
  771. package/test/fixtures/agent-schema/invalid/menu-triggers/duplicate-triggers.agent.yaml +0 -31
  772. package/test/fixtures/agent-schema/invalid/menu-triggers/empty-trigger.agent.yaml +0 -25
  773. package/test/fixtures/agent-schema/invalid/menu-triggers/leading-asterisk.agent.yaml +0 -25
  774. package/test/fixtures/agent-schema/invalid/menu-triggers/snake-case.agent.yaml +0 -25
  775. package/test/fixtures/agent-schema/invalid/menu-triggers/trigger-with-spaces.agent.yaml +0 -25
  776. package/test/fixtures/agent-schema/invalid/metadata/empty-module-string.agent.yaml +0 -26
  777. package/test/fixtures/agent-schema/invalid/metadata/empty-name.agent.yaml +0 -24
  778. package/test/fixtures/agent-schema/invalid/metadata/extra-metadata-fields.agent.yaml +0 -27
  779. package/test/fixtures/agent-schema/invalid/metadata/missing-id.agent.yaml +0 -23
  780. package/test/fixtures/agent-schema/invalid/persona/empty-principles-array.agent.yaml +0 -24
  781. package/test/fixtures/agent-schema/invalid/persona/empty-string-in-principles.agent.yaml +0 -27
  782. package/test/fixtures/agent-schema/invalid/persona/extra-persona-fields.agent.yaml +0 -27
  783. package/test/fixtures/agent-schema/invalid/persona/missing-role.agent.yaml +0 -24
  784. package/test/fixtures/agent-schema/invalid/prompts/empty-content.agent.yaml +0 -29
  785. package/test/fixtures/agent-schema/invalid/prompts/extra-prompt-fields.agent.yaml +0 -31
  786. package/test/fixtures/agent-schema/invalid/prompts/missing-content.agent.yaml +0 -28
  787. package/test/fixtures/agent-schema/invalid/prompts/missing-id.agent.yaml +0 -28
  788. package/test/fixtures/agent-schema/invalid/top-level/empty-file.agent.yaml +0 -5
  789. package/test/fixtures/agent-schema/invalid/top-level/extra-top-level-keys.agent.yaml +0 -28
  790. package/test/fixtures/agent-schema/invalid/top-level/missing-agent-key.agent.yaml +0 -11
  791. package/test/fixtures/agent-schema/invalid/yaml-errors/invalid-indentation.agent.yaml +0 -19
  792. package/test/fixtures/agent-schema/invalid/yaml-errors/malformed-yaml.agent.yaml +0 -18
  793. package/test/fixtures/agent-schema/valid/critical-actions/empty-critical-actions.agent.yaml +0 -24
  794. package/test/fixtures/agent-schema/valid/critical-actions/no-critical-actions.agent.yaml +0 -22
  795. package/test/fixtures/agent-schema/valid/critical-actions/valid-critical-actions.agent.yaml +0 -27
  796. package/test/fixtures/agent-schema/valid/menu/multiple-menu-items.agent.yaml +0 -31
  797. package/test/fixtures/agent-schema/valid/menu/single-menu-item.agent.yaml +0 -22
  798. package/test/fixtures/agent-schema/valid/menu-commands/all-command-types.agent.yaml +0 -38
  799. package/test/fixtures/agent-schema/valid/menu-commands/multiple-commands.agent.yaml +0 -23
  800. package/test/fixtures/agent-schema/valid/menu-triggers/compound-triggers.agent.yaml +0 -31
  801. package/test/fixtures/agent-schema/valid/menu-triggers/kebab-case-triggers.agent.yaml +0 -34
  802. package/test/fixtures/agent-schema/valid/metadata/core-agent-with-module.agent.yaml +0 -24
  803. package/test/fixtures/agent-schema/valid/metadata/empty-module-name-in-path.agent.yaml +0 -24
  804. package/test/fixtures/agent-schema/valid/metadata/malformed-path-treated-as-core.agent.yaml +0 -24
  805. package/test/fixtures/agent-schema/valid/metadata/module-agent-correct.agent.yaml +0 -24
  806. package/test/fixtures/agent-schema/valid/metadata/module-agent-missing-module.agent.yaml +0 -23
  807. package/test/fixtures/agent-schema/valid/metadata/wrong-module-value.agent.yaml +0 -24
  808. package/test/fixtures/agent-schema/valid/persona/complete-persona.agent.yaml +0 -24
  809. package/test/fixtures/agent-schema/valid/prompts/empty-prompts.agent.yaml +0 -24
  810. package/test/fixtures/agent-schema/valid/prompts/no-prompts.agent.yaml +0 -22
  811. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-minimal.agent.yaml +0 -28
  812. package/test/fixtures/agent-schema/valid/prompts/valid-prompts-with-description.agent.yaml +0 -30
  813. package/test/fixtures/agent-schema/valid/top-level/minimal-core-agent.agent.yaml +0 -24
  814. package/test/fixtures/file-refs-csv/invalid/all-empty-workflow.csv +0 -3
  815. package/test/fixtures/file-refs-csv/invalid/empty-data.csv +0 -1
  816. package/test/fixtures/file-refs-csv/invalid/no-workflow-column.csv +0 -3
  817. package/test/fixtures/file-refs-csv/invalid/unresolvable-vars.csv +0 -3
  818. package/test/fixtures/file-refs-csv/valid/core-style.csv +0 -3
  819. package/test/fixtures/file-refs-csv/valid/minimal.csv +0 -2
  820. package/test/fixtures/file-refs-csv/valid/xmc-style.csv +0 -3
  821. package/test/test-agent-schema.js +0 -387
  822. package/test/test-cli-integration.sh +0 -159
  823. package/test/test-file-refs-csv.js +0 -133
  824. package/test/test-install-to-xiaoma.js +0 -154
  825. package/test/test-installation-components.js +0 -1802
  826. package/test/test-rehype-plugins.mjs +0 -1050
  827. package/test/test-workflow-path-regex.js +0 -88
  828. package/test/unit-test-schema.js +0 -133
  829. package/tools/build-docs.mjs +0 -464
  830. package/tools/cli/bundlers/bundle-web.js +0 -179
  831. package/tools/cli/bundlers/bundlers/bundle-web.js +0 -179
  832. package/tools/cli/bundlers/bundlers/test-analyst.js +0 -28
  833. package/tools/cli/bundlers/bundlers/test-bundler.js +0 -119
  834. package/tools/cli/bundlers/bundlers/web-bundler.js +0 -1754
  835. package/tools/cli/bundlers/test-analyst.js +0 -28
  836. package/tools/cli/bundlers/test-bundler.js +0 -119
  837. package/tools/cli/bundlers/web-bundler.js +0 -1754
  838. package/tools/cli/commands/agent-install.js +0 -409
  839. package/tools/cli/commands/build.js +0 -458
  840. package/tools/cli/commands/cleanup.js +0 -144
  841. package/tools/cli/commands/list.js +0 -43
  842. package/tools/cli/commands/update.js +0 -28
  843. package/tools/cli/installers/lib/ide/antigravity.js +0 -510
  844. package/tools/cli/installers/lib/ide/auggie.js +0 -232
  845. package/tools/cli/installers/lib/ide/claude-code.js +0 -512
  846. package/tools/cli/installers/lib/ide/cline.js +0 -269
  847. package/tools/cli/installers/lib/ide/codex.js +0 -440
  848. package/tools/cli/installers/lib/ide/crush.js +0 -287
  849. package/tools/cli/installers/lib/ide/cursor.js +0 -400
  850. package/tools/cli/installers/lib/ide/gemini.js +0 -253
  851. package/tools/cli/installers/lib/ide/github-copilot.js +0 -699
  852. package/tools/cli/installers/lib/ide/iflow.js +0 -172
  853. package/tools/cli/installers/lib/ide/kilo.js +0 -269
  854. package/tools/cli/installers/lib/ide/opencode.js +0 -257
  855. package/tools/cli/installers/lib/ide/qwen.js +0 -372
  856. package/tools/cli/installers/lib/ide/roo.js +0 -324
  857. package/tools/cli/installers/lib/ide/rovo-dev.js +0 -290
  858. package/tools/cli/installers/lib/ide/rovodev.js +0 -257
  859. package/tools/cli/installers/lib/ide/templates/combined/default-workflow-yaml.md +0 -14
  860. package/tools/cli/installers/lib/ide/templates/combined/kiro-workflow-yaml.md +0 -15
  861. package/tools/cli/installers/lib/ide/templates/gemini-agent-command.toml +0 -14
  862. package/tools/cli/installers/lib/ide/templates/gemini-task-command.toml +0 -12
  863. package/tools/cli/installers/lib/ide/templates/workflow-command-template.md +0 -13
  864. package/tools/cli/installers/lib/ide/templates/workflow-commander.md +0 -5
  865. package/tools/cli/installers/lib/ide/trae.js +0 -313
  866. package/tools/cli/installers/lib/ide/windsurf.js +0 -258
  867. package/tools/cli/lib/replace-project-root.js +0 -239
  868. package/tools/cli/regenerate-manifests.js +0 -28
  869. package/tools/cli/test-yaml-builder.js +0 -43
  870. package/tools/docs/_prompt-external-modules-page.md +0 -59
  871. package/tools/docs/fix-refs.md +0 -91
  872. package/tools/docs/native-skills-migration-checklist.md +0 -281
  873. package/tools/fix-doc-links.js +0 -285
  874. package/tools/flattener/aggregate.js +0 -76
  875. package/tools/flattener/binary.js +0 -80
  876. package/tools/flattener/discovery.js +0 -71
  877. package/tools/flattener/files.js +0 -35
  878. package/tools/flattener/flattener/aggregate.js +0 -76
  879. package/tools/flattener/flattener/binary.js +0 -80
  880. package/tools/flattener/flattener/discovery.js +0 -71
  881. package/tools/flattener/flattener/files.js +0 -35
  882. package/tools/flattener/flattener/ignoreRules.js +0 -172
  883. package/tools/flattener/flattener/main.js +0 -483
  884. package/tools/flattener/flattener/projectRoot.js +0 -201
  885. package/tools/flattener/flattener/prompts.js +0 -44
  886. package/tools/flattener/flattener/stats.helpers.js +0 -368
  887. package/tools/flattener/flattener/stats.js +0 -75
  888. package/tools/flattener/flattener/test-matrix.js +0 -409
  889. package/tools/flattener/flattener/xml.js +0 -88
  890. package/tools/flattener/ignoreRules.js +0 -172
  891. package/tools/flattener/main.js +0 -483
  892. package/tools/flattener/projectRoot.js +0 -201
  893. package/tools/flattener/prompts.js +0 -44
  894. package/tools/flattener/stats.helpers.js +0 -368
  895. package/tools/flattener/stats.js +0 -75
  896. package/tools/flattener/test-matrix.js +0 -409
  897. package/tools/flattener/xml.js +0 -88
  898. package/tools/validate-agent-schema.js +0 -110
  899. package/tools/validate-bundles.js +0 -87
  900. package/tools/validate-doc-links.js +0 -409
  901. package/tools/validate-file-refs.js +0 -556
  902. package/web-bundles/xmc/agents/analyst.xml +0 -109
  903. package/web-bundles/xmc/agents/architect.xml +0 -101
  904. package/web-bundles/xmc/agents/dev.xml +0 -106
  905. package/web-bundles/xmc/agents/pm.xml +0 -112
  906. package/web-bundles/xmc/agents/qa.xml +0 -126
  907. package/web-bundles/xmc/agents/quick-flow-solo-dev.xml +0 -104
  908. package/web-bundles/xmc/agents/sm.xml +0 -109
  909. package/web-bundles/xmc/agents/ux-designer.xml +0 -100
  910. package/web-bundles/xmc/teams/team-fullstack.xml +0 -1192
  911. /package/src/core/{workflows/advanced-elicitation → skills/xiaoma-advanced-elicitation}/methods.csv +0 -0
  912. /package/src/core/{tasks/xiaoma-help → skills/xiaoma-advanced-elicitation}/xiaoma-skill-manifest.yaml +0 -0
  913. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/brain-methods.csv +0 -0
  914. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-01b-continue.md +0 -0
  915. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-02a-user-selected.md +0 -0
  916. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-02b-ai-recommended.md +0 -0
  917. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-02c-random-selection.md +0 -0
  918. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-02d-progressive-flow.md +0 -0
  919. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/steps/step-04-idea-organization.md +0 -0
  920. /package/src/core/{workflows/brainstorming → skills/xiaoma-brainstorming}/template.md +0 -0
  921. /package/src/core/{tasks/xiaoma-review-adversarial-general → skills/xiaoma-brainstorming}/xiaoma-skill-manifest.yaml +0 -0
  922. /package/src/core/{tasks/xiaoma-review-edge-case-hunter → skills/xiaoma-editorial-review-prose}/xiaoma-skill-manifest.yaml +0 -0
  923. /package/src/core/{tasks → skills}/xiaoma-help/SKILL.md +0 -0
  924. /package/src/core/{tasks → skills}/xiaoma-review-adversarial-general/SKILL.md +0 -0
  925. /package/src/core/{tasks → skills}/xiaoma-review-adversarial-general/workflow.md +0 -0
  926. /package/src/core/{tasks → skills}/xiaoma-review-edge-case-hunter/SKILL.md +0 -0
  927. /package/src/core/{tasks → skills}/xiaoma-review-edge-case-hunter/workflow.md +0 -0
  928. /package/src/{xmc/workflows/2-plan-workflows/create-prd → core/tasks/xiaoma-create-prd}/templates/prd-template.md +0 -0
  929. /package/src/xmc/workflows/1-analysis/research/{domain-steps → xiaoma-domain-research/domain-steps}/step-06-research-synthesis.md +0 -0
  930. /package/src/xmc/workflows/1-analysis/research/{technical-steps → xiaoma-technical-research/technical-steps}/step-06-research-synthesis.md +0 -0
  931. /package/src/xmc/workflows/2-plan-workflows/{create-ux-design → xiaoma-create-ux-design}/ux-design-template.md +0 -0
  932. /package/src/xmc/workflows/3-solutioning/{check-implementation-readiness → xiaoma-check-implementation-readiness}/templates/readiness-report-template.md +0 -0
  933. /package/src/xmc/workflows/3-solutioning/{create-architecture → xiaoma-create-architecture}/architecture-decision-template.md +0 -0
  934. /package/src/xmc/workflows/3-solutioning/{create-architecture → xiaoma-create-architecture}/data/domain-complexity.csv +0 -0
  935. /package/src/xmc/workflows/3-solutioning/{create-architecture → xiaoma-create-architecture}/data/project-types.csv +0 -0
  936. /package/src/xmc/workflows/3-solutioning/{create-architecture → xiaoma-create-architecture}/steps/step-08-complete.md +0 -0
  937. /package/src/xmc/workflows/4-implementation/{code-review → xiaoma-code-review}/checklist.md +0 -0
  938. /package/src/xmc/workflows/4-implementation/{code-review → xiaoma-code-review}/discover-inputs.md +0 -0
  939. /package/src/xmc/workflows/4-implementation/{create-story → xiaoma-create-story}/discover-inputs.md +0 -0
  940. /package/src/xmc/workflows/4-implementation/{create-story → xiaoma-create-story}/template.md +0 -0
  941. /package/src/xmc/workflows/4-implementation/{dev-story → xiaoma-dev-story}/checklist.md +0 -0
  942. /package/src/xmc/workflows/4-implementation/{sprint-planning → xiaoma-sprint-planning}/checklist.md +0 -0
  943. /package/src/xmc/workflows/4-implementation/{sprint-planning → xiaoma-sprint-planning}/sprint-status-template.yaml +0 -0
  944. /package/src/xmc/workflows/{document-project → xiaoma-document-project}/checklist.md +0 -0
  945. /package/src/xmc/workflows/{document-project → xiaoma-document-project}/documentation-requirements.csv +0 -0
  946. /package/src/xmc/workflows/{document-project → xiaoma-document-project}/templates/deep-dive-template.md +0 -0
  947. /package/src/xmc/workflows/{document-project → xiaoma-document-project}/templates/project-scan-report-schema.json +0 -0
  948. /package/src/xmc/workflows/{generate-project-context → xiaoma-generate-project-context}/project-context-template.md +0 -0
  949. /package/src/xmc/workflows/{generate-project-context → xiaoma-generate-project-context}/steps/step-03-complete.md +0 -0
  950. /package/src/xmc/workflows/xiaoma-quick-flow/{quick-spec → xiaoma-quick-spec}/tech-spec-template.md +0 -0
@@ -1,721 +0,0 @@
1
- # Email-Based Authentication Testing
2
-
3
- ## Principle
4
-
5
- Email-based authentication (magic links, one-time codes, passwordless login) requires specialized testing with email capture services like Mailosaur or Ethereal. Extract magic links via HTML parsing or use built-in link extraction, preserve browser storage (local/session/cookies) when processing links, cache email payloads to avoid exhausting inbox quotas, and cover negative cases (expired links, reused links, multiple rapid requests). Log email IDs and links for troubleshooting, but scrub PII before committing artifacts.
6
-
7
- ## Rationale
8
-
9
- Email authentication introduces unique challenges: asynchronous email delivery, quota limits (AWS Cognito: 50/day), cost per email, and complex state management (session preservation across link clicks). Without proper patterns, tests become slow (wait for email each time), expensive (quota exhaustion), and brittle (timing issues, missing state). Using email capture services + session caching + state preservation patterns makes email auth tests fast, reliable, and cost-effective.
10
-
11
- ## Pattern Examples
12
-
13
- ### Example 1: Magic Link Extraction with Mailosaur
14
-
15
- **Context**: Passwordless login flow where user receives magic link via email, clicks it, and is authenticated.
16
-
17
- **Implementation**:
18
-
19
- ```typescript
20
- // tests/e2e/magic-link-auth.spec.ts
21
- import { test, expect } from '@playwright/test';
22
-
23
- /**
24
- * Magic Link Authentication Flow
25
- * 1. User enters email
26
- * 2. Backend sends magic link
27
- * 3. Test retrieves email via Mailosaur
28
- * 4. Extract and visit magic link
29
- * 5. Verify user is authenticated
30
- */
31
-
32
- // Mailosaur configuration
33
- const MAILOSAUR_API_KEY = process.env.MAILOSAUR_API_KEY!;
34
- const MAILOSAUR_SERVER_ID = process.env.MAILOSAUR_SERVER_ID!;
35
-
36
- /**
37
- * Extract href from HTML email body
38
- * DOMParser provides XML/HTML parsing in Node.js
39
- */
40
- function extractMagicLink(htmlString: string): string | null {
41
- const { JSDOM } = require('jsdom');
42
- const dom = new JSDOM(htmlString);
43
- const link = dom.window.document.querySelector('#magic-link-button');
44
- return link ? (link as HTMLAnchorElement).href : null;
45
- }
46
-
47
- /**
48
- * Alternative: Use Mailosaur's built-in link extraction
49
- * Mailosaur automatically parses links - no regex needed!
50
- */
51
- async function getMagicLinkFromEmail(email: string): Promise<string> {
52
- const MailosaurClient = require('mailosaur');
53
- const mailosaur = new MailosaurClient(MAILOSAUR_API_KEY);
54
-
55
- // Wait for email (timeout: 30 seconds)
56
- const message = await mailosaur.messages.get(
57
- MAILOSAUR_SERVER_ID,
58
- {
59
- sentTo: email,
60
- },
61
- {
62
- timeout: 30000, // 30 seconds
63
- },
64
- );
65
-
66
- // Mailosaur extracts links automatically - no parsing needed!
67
- const magicLink = message.html?.links?.[0]?.href;
68
-
69
- if (!magicLink) {
70
- throw new Error(`Magic link not found in email to ${email}`);
71
- }
72
-
73
- console.log(`📧 Email received. Magic link extracted: ${magicLink}`);
74
- return magicLink;
75
- }
76
-
77
- test.describe('Magic Link Authentication', () => {
78
- test('should authenticate user via magic link', async ({ page, context }) => {
79
- // Arrange: Generate unique test email
80
- const randomId = Math.floor(Math.random() * 1000000);
81
- const testEmail = `user-${randomId}@${MAILOSAUR_SERVER_ID}.mailosaur.net`;
82
-
83
- // Act: Request magic link
84
- await page.goto('/login');
85
- await page.getByTestId('email-input').fill(testEmail);
86
- await page.getByTestId('send-magic-link').click();
87
-
88
- // Assert: Success message
89
- await expect(page.getByTestId('check-email-message')).toBeVisible();
90
- await expect(page.getByTestId('check-email-message')).toContainText('Check your email');
91
-
92
- // Retrieve magic link from email
93
- const magicLink = await getMagicLinkFromEmail(testEmail);
94
-
95
- // Visit magic link
96
- await page.goto(magicLink);
97
-
98
- // Assert: User is authenticated
99
- await expect(page.getByTestId('user-menu')).toBeVisible();
100
- await expect(page.getByTestId('user-email')).toContainText(testEmail);
101
-
102
- // Verify session storage preserved
103
- const localStorage = await page.evaluate(() => JSON.stringify(window.localStorage));
104
- expect(localStorage).toContain('authToken');
105
- });
106
-
107
- test('should handle expired magic link', async ({ page }) => {
108
- // Use pre-expired link (older than 15 minutes)
109
- const expiredLink = 'http://localhost:3000/auth/verify?token=expired-token-123';
110
-
111
- await page.goto(expiredLink);
112
-
113
- // Assert: Error message displayed
114
- await expect(page.getByTestId('error-message')).toBeVisible();
115
- await expect(page.getByTestId('error-message')).toContainText('link has expired');
116
-
117
- // Assert: User NOT authenticated
118
- await expect(page.getByTestId('user-menu')).not.toBeVisible();
119
- });
120
-
121
- test('should prevent reusing magic link', async ({ page }) => {
122
- const randomId = Math.floor(Math.random() * 1000000);
123
- const testEmail = `user-${randomId}@${MAILOSAUR_SERVER_ID}.mailosaur.net`;
124
-
125
- // Request magic link
126
- await page.goto('/login');
127
- await page.getByTestId('email-input').fill(testEmail);
128
- await page.getByTestId('send-magic-link').click();
129
-
130
- const magicLink = await getMagicLinkFromEmail(testEmail);
131
-
132
- // Visit link first time (success)
133
- await page.goto(magicLink);
134
- await expect(page.getByTestId('user-menu')).toBeVisible();
135
-
136
- // Sign out
137
- await page.getByTestId('sign-out').click();
138
-
139
- // Try to reuse same link (should fail)
140
- await page.goto(magicLink);
141
- await expect(page.getByTestId('error-message')).toBeVisible();
142
- await expect(page.getByTestId('error-message')).toContainText('link has already been used');
143
- });
144
- });
145
- ```
146
-
147
- **Cypress equivalent with Mailosaur plugin**:
148
-
149
- ```javascript
150
- // cypress/e2e/magic-link-auth.cy.ts
151
- describe('Magic Link Authentication', () => {
152
- it('should authenticate user via magic link', () => {
153
- const serverId = Cypress.env('MAILOSAUR_SERVERID');
154
- const randomId = Cypress._.random(1e6);
155
- const testEmail = `user-${randomId}@${serverId}.mailosaur.net`;
156
-
157
- // Request magic link
158
- cy.visit('/login');
159
- cy.get('[data-cy="email-input"]').type(testEmail);
160
- cy.get('[data-cy="send-magic-link"]').click();
161
- cy.get('[data-cy="check-email-message"]').should('be.visible');
162
-
163
- // Retrieve and visit magic link
164
- cy.mailosaurGetMessage(serverId, { sentTo: testEmail })
165
- .its('html.links.0.href') // Mailosaur extracts links automatically!
166
- .should('exist')
167
- .then((magicLink) => {
168
- cy.log(`Magic link: ${magicLink}`);
169
- cy.visit(magicLink);
170
- });
171
-
172
- // Verify authenticated
173
- cy.get('[data-cy="user-menu"]').should('be.visible');
174
- cy.get('[data-cy="user-email"]').should('contain', testEmail);
175
- });
176
- });
177
- ```
178
-
179
- **Key Points**:
180
-
181
- - **Mailosaur auto-extraction**: `html.links[0].href` or `html.codes[0].value`
182
- - **Unique emails**: Random ID prevents collisions
183
- - **Negative testing**: Expired and reused links tested
184
- - **State verification**: localStorage/session checked
185
- - **Fast email retrieval**: 30 second timeout typical
186
-
187
- ---
188
-
189
- ### Example 2: State Preservation Pattern with cy.session / Playwright storageState
190
-
191
- **Context**: Cache authenticated session to avoid requesting magic link on every test.
192
-
193
- **Implementation**:
194
-
195
- ```typescript
196
- // playwright/fixtures/email-auth-fixture.ts
197
- import { test as base } from '@playwright/test';
198
- import { getMagicLinkFromEmail } from '../support/mailosaur-helpers';
199
-
200
- type EmailAuthFixture = {
201
- authenticatedUser: { email: string; token: string };
202
- };
203
-
204
- export const test = base.extend<EmailAuthFixture>({
205
- authenticatedUser: async ({ page, context }, use) => {
206
- const randomId = Math.floor(Math.random() * 1000000);
207
- const testEmail = `user-${randomId}@${process.env.MAILOSAUR_SERVER_ID}.mailosaur.net`;
208
-
209
- // Check if we have cached auth state for this email
210
- const storageStatePath = `./test-results/auth-state-${testEmail}.json`;
211
-
212
- try {
213
- // Try to reuse existing session
214
- await context.storageState({ path: storageStatePath });
215
- await page.goto('/dashboard');
216
-
217
- // Validate session is still valid
218
- const isAuthenticated = await page.getByTestId('user-menu').isVisible({ timeout: 2000 });
219
-
220
- if (isAuthenticated) {
221
- console.log(`✅ Reusing cached session for ${testEmail}`);
222
- await use({ email: testEmail, token: 'cached' });
223
- return;
224
- }
225
- } catch (error) {
226
- console.log(`📧 No cached session, requesting magic link for ${testEmail}`);
227
- }
228
-
229
- // Request new magic link
230
- await page.goto('/login');
231
- await page.getByTestId('email-input').fill(testEmail);
232
- await page.getByTestId('send-magic-link').click();
233
-
234
- // Get magic link from email
235
- const magicLink = await getMagicLinkFromEmail(testEmail);
236
-
237
- // Visit link and authenticate
238
- await page.goto(magicLink);
239
- await expect(page.getByTestId('user-menu')).toBeVisible();
240
-
241
- // Extract auth token from localStorage
242
- const authToken = await page.evaluate(() => localStorage.getItem('authToken'));
243
-
244
- // Save session state for reuse
245
- await context.storageState({ path: storageStatePath });
246
-
247
- console.log(`💾 Cached session for ${testEmail}`);
248
-
249
- await use({ email: testEmail, token: authToken || '' });
250
- },
251
- });
252
- ```
253
-
254
- **Cypress equivalent with cy.session + data-session**:
255
-
256
- ```javascript
257
- // cypress/support/commands/email-auth.js
258
- import { dataSession } from 'cypress-data-session';
259
-
260
- /**
261
- * Authenticate via magic link with session caching
262
- * - First run: Requests email, extracts link, authenticates
263
- * - Subsequent runs: Reuses cached session (no email)
264
- */
265
- Cypress.Commands.add('authViaMagicLink', (email) => {
266
- return dataSession({
267
- name: `magic-link-${email}`,
268
-
269
- // First-time setup: Request and process magic link
270
- setup: () => {
271
- cy.visit('/login');
272
- cy.get('[data-cy="email-input"]').type(email);
273
- cy.get('[data-cy="send-magic-link"]').click();
274
-
275
- // Get magic link from Mailosaur
276
- cy.mailosaurGetMessage(Cypress.env('MAILOSAUR_SERVERID'), {
277
- sentTo: email,
278
- })
279
- .its('html.links.0.href')
280
- .should('exist')
281
- .then((magicLink) => {
282
- cy.visit(magicLink);
283
- });
284
-
285
- // Wait for authentication
286
- cy.get('[data-cy="user-menu"]', { timeout: 10000 }).should('be.visible');
287
-
288
- // Preserve authentication state
289
- return cy.getAllLocalStorage().then((storage) => {
290
- return { storage, email };
291
- });
292
- },
293
-
294
- // Validate cached session is still valid
295
- validate: (cached) => {
296
- return cy.wrap(Boolean(cached?.storage));
297
- },
298
-
299
- // Recreate session from cache (no email needed)
300
- recreate: (cached) => {
301
- // Restore localStorage
302
- cy.setLocalStorage(cached.storage);
303
- cy.visit('/dashboard');
304
- cy.get('[data-cy="user-menu"]', { timeout: 5000 }).should('be.visible');
305
- },
306
-
307
- shareAcrossSpecs: true, // Share session across all tests
308
- });
309
- });
310
- ```
311
-
312
- **Usage in tests**:
313
-
314
- ```javascript
315
- // cypress/e2e/dashboard.cy.ts
316
- describe('Dashboard', () => {
317
- const serverId = Cypress.env('MAILOSAUR_SERVERID');
318
- const testEmail = `test-user@${serverId}.mailosaur.net`;
319
-
320
- beforeEach(() => {
321
- // First test: Requests magic link
322
- // Subsequent tests: Reuses cached session (no email!)
323
- cy.authViaMagicLink(testEmail);
324
- });
325
-
326
- it('should display user dashboard', () => {
327
- cy.get('[data-cy="dashboard-content"]').should('be.visible');
328
- });
329
-
330
- it('should show user profile', () => {
331
- cy.get('[data-cy="user-email"]').should('contain', testEmail);
332
- });
333
-
334
- // Both tests share same session - only 1 email consumed!
335
- });
336
- ```
337
-
338
- **Key Points**:
339
-
340
- - **Session caching**: First test requests email, rest reuse session
341
- - **State preservation**: localStorage/cookies saved and restored
342
- - **Validation**: Check cached session is still valid
343
- - **Quota optimization**: Massive reduction in email consumption
344
- - **Fast tests**: Cached auth takes seconds vs. minutes
345
-
346
- ---
347
-
348
- ### Example 3: Negative Flow Tests (Expired, Invalid, Reused Links)
349
-
350
- **Context**: Comprehensive negative testing for email authentication edge cases.
351
-
352
- **Implementation**:
353
-
354
- ```typescript
355
- // tests/e2e/email-auth-negative.spec.ts
356
- import { test, expect } from '@playwright/test';
357
- import { getMagicLinkFromEmail } from '../support/mailosaur-helpers';
358
-
359
- const MAILOSAUR_SERVER_ID = process.env.MAILOSAUR_SERVER_ID!;
360
-
361
- test.describe('Email Auth Negative Flows', () => {
362
- test('should reject expired magic link', async ({ page }) => {
363
- // Generate expired link (simulate 24 hours ago)
364
- const expiredToken = Buffer.from(
365
- JSON.stringify({
366
- email: 'test@example.com',
367
- exp: Date.now() - 24 * 60 * 60 * 1000, // 24 hours ago
368
- }),
369
- ).toString('base64');
370
-
371
- const expiredLink = `http://localhost:3000/auth/verify?token=${expiredToken}`;
372
-
373
- // Visit expired link
374
- await page.goto(expiredLink);
375
-
376
- // Assert: Error displayed
377
- await expect(page.getByTestId('error-message')).toBeVisible();
378
- await expect(page.getByTestId('error-message')).toContainText(/link.*expired|expired.*link/i);
379
-
380
- // Assert: Link to request new one
381
- await expect(page.getByTestId('request-new-link')).toBeVisible();
382
-
383
- // Assert: User NOT authenticated
384
- await expect(page.getByTestId('user-menu')).not.toBeVisible();
385
- });
386
-
387
- test('should reject invalid magic link token', async ({ page }) => {
388
- const invalidLink = 'http://localhost:3000/auth/verify?token=invalid-garbage';
389
-
390
- await page.goto(invalidLink);
391
-
392
- // Assert: Error displayed
393
- await expect(page.getByTestId('error-message')).toBeVisible();
394
- await expect(page.getByTestId('error-message')).toContainText(/invalid.*link|link.*invalid/i);
395
-
396
- // Assert: User not authenticated
397
- await expect(page.getByTestId('user-menu')).not.toBeVisible();
398
- });
399
-
400
- test('should reject already-used magic link', async ({ page, context }) => {
401
- const randomId = Math.floor(Math.random() * 1000000);
402
- const testEmail = `user-${randomId}@${MAILOSAUR_SERVER_ID}.mailosaur.net`;
403
-
404
- // Request magic link
405
- await page.goto('/login');
406
- await page.getByTestId('email-input').fill(testEmail);
407
- await page.getByTestId('send-magic-link').click();
408
-
409
- const magicLink = await getMagicLinkFromEmail(testEmail);
410
-
411
- // Visit link FIRST time (success)
412
- await page.goto(magicLink);
413
- await expect(page.getByTestId('user-menu')).toBeVisible();
414
-
415
- // Sign out
416
- await page.getByTestId('user-menu').click();
417
- await page.getByTestId('sign-out').click();
418
- await expect(page.getByTestId('user-menu')).not.toBeVisible();
419
-
420
- // Try to reuse SAME link (should fail)
421
- await page.goto(magicLink);
422
-
423
- // Assert: Link already used error
424
- await expect(page.getByTestId('error-message')).toBeVisible();
425
- await expect(page.getByTestId('error-message')).toContainText(/already.*used|link.*used/i);
426
-
427
- // Assert: User not authenticated
428
- await expect(page.getByTestId('user-menu')).not.toBeVisible();
429
- });
430
-
431
- test('should handle rapid successive link requests', async ({ page }) => {
432
- const randomId = Math.floor(Math.random() * 1000000);
433
- const testEmail = `user-${randomId}@${MAILOSAUR_SERVER_ID}.mailosaur.net`;
434
-
435
- // Request magic link 3 times rapidly
436
- for (let i = 0; i < 3; i++) {
437
- await page.goto('/login');
438
- await page.getByTestId('email-input').fill(testEmail);
439
- await page.getByTestId('send-magic-link').click();
440
- await expect(page.getByTestId('check-email-message')).toBeVisible();
441
- }
442
-
443
- // Only the LATEST link should work
444
- const MailosaurClient = require('mailosaur');
445
- const mailosaur = new MailosaurClient(process.env.MAILOSAUR_API_KEY);
446
-
447
- const messages = await mailosaur.messages.list(MAILOSAUR_SERVER_ID, {
448
- sentTo: testEmail,
449
- });
450
-
451
- // Should receive 3 emails
452
- expect(messages.items.length).toBeGreaterThanOrEqual(3);
453
-
454
- // Get the LATEST magic link
455
- const latestMessage = messages.items[0]; // Most recent first
456
- const latestLink = latestMessage.html.links[0].href;
457
-
458
- // Latest link works
459
- await page.goto(latestLink);
460
- await expect(page.getByTestId('user-menu')).toBeVisible();
461
-
462
- // Older links should NOT work (if backend invalidates previous)
463
- await page.getByTestId('sign-out').click();
464
- const olderLink = messages.items[1].html.links[0].href;
465
-
466
- await page.goto(olderLink);
467
- await expect(page.getByTestId('error-message')).toBeVisible();
468
- });
469
-
470
- test('should rate-limit excessive magic link requests', async ({ page }) => {
471
- const randomId = Math.floor(Math.random() * 1000000);
472
- const testEmail = `user-${randomId}@${MAILOSAUR_SERVER_ID}.mailosaur.net`;
473
-
474
- // Request magic link 10 times rapidly (should hit rate limit)
475
- for (let i = 0; i < 10; i++) {
476
- await page.goto('/login');
477
- await page.getByTestId('email-input').fill(testEmail);
478
- await page.getByTestId('send-magic-link').click();
479
-
480
- // After N requests, should show rate limit error
481
- const errorVisible = await page
482
- .getByTestId('rate-limit-error')
483
- .isVisible({ timeout: 1000 })
484
- .catch(() => false);
485
-
486
- if (errorVisible) {
487
- console.log(`Rate limit hit after ${i + 1} requests`);
488
- await expect(page.getByTestId('rate-limit-error')).toContainText(/too many.*requests|rate.*limit/i);
489
- return;
490
- }
491
- }
492
-
493
- // If no rate limit after 10 requests, log warning
494
- console.warn('⚠️ No rate limit detected after 10 requests');
495
- });
496
- });
497
- ```
498
-
499
- **Key Points**:
500
-
501
- - **Expired links**: Test 24+ hour old tokens
502
- - **Invalid tokens**: Malformed or garbage tokens rejected
503
- - **Reuse prevention**: Same link can't be used twice
504
- - **Rapid requests**: Multiple requests handled gracefully
505
- - **Rate limiting**: Excessive requests blocked
506
-
507
- ---
508
-
509
- ### Example 4: Caching Strategy with cypress-data-session / Playwright Projects
510
-
511
- **Context**: Minimize email consumption by sharing authentication state across tests and specs.
512
-
513
- **Implementation**:
514
-
515
- ```javascript
516
- // cypress/support/commands/register-and-sign-in.js
517
- import { dataSession } from 'cypress-data-session';
518
-
519
- /**
520
- * Email Authentication Caching Strategy
521
- * - One email per test run (not per spec, not per test)
522
- * - First spec: Full registration flow (form → email → code → sign in)
523
- * - Subsequent specs: Only sign in (reuse user)
524
- * - Subsequent tests in same spec: Session already active (no sign in)
525
- */
526
-
527
- // Helper: Fill registration form
528
- function fillRegistrationForm({ fullName, userName, email, password }) {
529
- cy.intercept('POST', 'https://cognito-idp*').as('cognito');
530
- cy.contains('Register').click();
531
- cy.get('#reg-dialog-form').should('be.visible');
532
- cy.get('#first-name').type(fullName, { delay: 0 });
533
- cy.get('#last-name').type(lastName, { delay: 0 });
534
- cy.get('#email').type(email, { delay: 0 });
535
- cy.get('#username').type(userName, { delay: 0 });
536
- cy.get('#password').type(password, { delay: 0 });
537
- cy.contains('button', 'Create an account').click();
538
- cy.wait('@cognito').its('response.statusCode').should('equal', 200);
539
- }
540
-
541
- // Helper: Confirm registration with email code
542
- function confirmRegistration(email) {
543
- return cy
544
- .mailosaurGetMessage(Cypress.env('MAILOSAUR_SERVERID'), { sentTo: email })
545
- .its('html.codes.0.value') // Mailosaur auto-extracts codes!
546
- .then((code) => {
547
- cy.intercept('POST', 'https://cognito-idp*').as('cognito');
548
- cy.get('#verification-code').type(code, { delay: 0 });
549
- cy.contains('button', 'Confirm registration').click();
550
- cy.wait('@cognito');
551
- cy.contains('You are now registered!').should('be.visible');
552
- cy.contains('button', /ok/i).click();
553
- return cy.wrap(code); // Return code for reference
554
- });
555
- }
556
-
557
- // Helper: Full registration (form + email)
558
- function register({ fullName, userName, email, password }) {
559
- fillRegistrationForm({ fullName, userName, email, password });
560
- return confirmRegistration(email);
561
- }
562
-
563
- // Helper: Sign in
564
- function signIn({ userName, password }) {
565
- cy.intercept('POST', 'https://cognito-idp*').as('cognito');
566
- cy.contains('Sign in').click();
567
- cy.get('#sign-in-username').type(userName, { delay: 0 });
568
- cy.get('#sign-in-password').type(password, { delay: 0 });
569
- cy.contains('button', 'Sign in').click();
570
- cy.wait('@cognito');
571
- cy.contains('Sign out').should('be.visible');
572
- }
573
-
574
- /**
575
- * Register and sign in with email caching
576
- * ONE EMAIL PER MACHINE (cypress run or cypress open)
577
- */
578
- Cypress.Commands.add('registerAndSignIn', ({ fullName, userName, email, password }) => {
579
- return dataSession({
580
- name: email, // Unique session per email
581
-
582
- // First time: Full registration (form → email → code)
583
- init: () => register({ fullName, userName, email, password }),
584
-
585
- // Subsequent specs: Just check email exists (code already used)
586
- setup: () => confirmRegistration(email),
587
-
588
- // Always runs after init/setup: Sign in
589
- recreate: () => signIn({ userName, password }),
590
-
591
- // Share across ALL specs (one email for entire test run)
592
- shareAcrossSpecs: true,
593
- });
594
- });
595
- ```
596
-
597
- **Usage across multiple specs**:
598
-
599
- ```javascript
600
- // cypress/e2e/place-order.cy.ts
601
- describe('Place Order', () => {
602
- beforeEach(() => {
603
- cy.visit('/');
604
- cy.registerAndSignIn({
605
- fullName: Cypress.env('fullName'), // From cypress.config
606
- userName: Cypress.env('userName'),
607
- email: Cypress.env('email'), // SAME email across all specs
608
- password: Cypress.env('password'),
609
- });
610
- });
611
-
612
- it('should place order', () => {
613
- /* ... */
614
- });
615
- it('should view order history', () => {
616
- /* ... */
617
- });
618
- });
619
-
620
- // cypress/e2e/profile.cy.ts
621
- describe('User Profile', () => {
622
- beforeEach(() => {
623
- cy.visit('/');
624
- cy.registerAndSignIn({
625
- fullName: Cypress.env('fullName'),
626
- userName: Cypress.env('userName'),
627
- email: Cypress.env('email'), // SAME email - no new email sent!
628
- password: Cypress.env('password'),
629
- });
630
- });
631
-
632
- it('should update profile', () => {
633
- /* ... */
634
- });
635
- });
636
- ```
637
-
638
- **Playwright equivalent with storageState**:
639
-
640
- ```typescript
641
- // playwright.config.ts
642
- import { defineConfig } from '@playwright/test';
643
-
644
- export default defineConfig({
645
- projects: [
646
- {
647
- name: 'setup',
648
- testMatch: /global-setup\.ts/,
649
- },
650
- {
651
- name: 'authenticated',
652
- testMatch: /.*\.spec\.ts/,
653
- dependencies: ['setup'],
654
- use: {
655
- storageState: '.auth/user-session.json', // Reuse auth state
656
- },
657
- },
658
- ],
659
- });
660
- ```
661
-
662
- ```typescript
663
- // tests/global-setup.ts (runs once)
664
- import { test as setup } from '@playwright/test';
665
- import { getMagicLinkFromEmail } from './support/mailosaur-helpers';
666
-
667
- const authFile = '.auth/user-session.json';
668
-
669
- setup('authenticate via magic link', async ({ page }) => {
670
- const testEmail = process.env.TEST_USER_EMAIL!;
671
-
672
- // Request magic link
673
- await page.goto('/login');
674
- await page.getByTestId('email-input').fill(testEmail);
675
- await page.getByTestId('send-magic-link').click();
676
-
677
- // Get and visit magic link
678
- const magicLink = await getMagicLinkFromEmail(testEmail);
679
- await page.goto(magicLink);
680
-
681
- // Verify authenticated
682
- await expect(page.getByTestId('user-menu')).toBeVisible();
683
-
684
- // Save authenticated state (ONE TIME for all tests)
685
- await page.context().storageState({ path: authFile });
686
-
687
- console.log('✅ Authentication state saved to', authFile);
688
- });
689
- ```
690
-
691
- **Key Points**:
692
-
693
- - **One email per run**: Global setup authenticates once
694
- - **State reuse**: All tests use cached storageState
695
- - **cypress-data-session**: Intelligently manages cache lifecycle
696
- - **shareAcrossSpecs**: Session shared across all spec files
697
- - **Massive savings**: 500 tests = 1 email (not 500!)
698
-
699
- ---
700
-
701
- ## Email Authentication Testing Checklist
702
-
703
- Before implementing email auth tests, verify:
704
-
705
- - [ ] **Email service**: Mailosaur/Ethereal/MailHog configured with API keys
706
- - [ ] **Link extraction**: Use built-in parsing (html.links[0].href) over regex
707
- - [ ] **State preservation**: localStorage/session/cookies saved and restored
708
- - [ ] **Session caching**: cypress-data-session or storageState prevents redundant emails
709
- - [ ] **Negative flows**: Expired, invalid, reused, rapid requests tested
710
- - [ ] **Quota awareness**: One email per run (not per test)
711
- - [ ] **PII scrubbing**: Email IDs logged for debug, but scrubbed from artifacts
712
- - [ ] **Timeout handling**: 30 second email retrieval timeout configured
713
-
714
- ## Integration Points
715
-
716
- - Used in workflows: `*framework` (email auth setup), `*automate` (email auth test generation)
717
- - Related fragments: `fixture-architecture.md`, `test-quality.md`
718
- - Email services: Mailosaur (recommended), Ethereal (free), MailHog (self-hosted)
719
- - Plugins: cypress-mailosaur, cypress-data-session
720
-
721
- _Source: Email authentication blog, Murat testing toolkit, Mailosaur documentation_