workflow-ai 1.0.62 → 1.0.64

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 (505) hide show
  1. package/README.md +61 -0
  2. package/agent-templates/CLAUDE.md.tpl +2 -0
  3. package/agent-templates/QWEN.md.tpl +2 -0
  4. package/configs/config.yaml +134 -0
  5. package/configs/pipeline.yaml +884 -0
  6. package/configs/ticket-movement-rules.yaml +80 -0
  7. package/package.json +2 -1
  8. package/src/global-dir.mjs +25 -1
  9. package/src/init.mjs +5 -4
  10. package/src/lib/agent-spawner.mjs +338 -0
  11. package/src/runner.mjs +15 -14
  12. package/src/scripts/get-next-test-id.js +94 -0
  13. package/src/scripts/migrate-backlog-to-tests.js +406 -0
  14. package/src/scripts/run-skill-tests.js +1703 -0
  15. package/src/scripts/scan-fixtures-for-secrets.js +248 -0
  16. package/src/scripts/tests/timeout-cascade.test.js +28 -0
  17. package/src/skills/analyze-report/README.md +44 -0
  18. package/src/skills/analyze-report/SKILL.md +121 -0
  19. package/src/skills/analyze-report/algorithms/progress-assessment.md +108 -0
  20. package/src/skills/analyze-report/knowledge/analysis-frameworks.md +66 -0
  21. package/src/skills/analyze-report/knowledge/report-structure.md +61 -0
  22. package/src/skills/analyze-report/scripts/calc-plan-metrics.js +234 -0
  23. package/src/skills/analyze-report/templates/analysis-report.md +80 -0
  24. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +69 -0
  25. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +103 -0
  26. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +99 -0
  27. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +163 -0
  28. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +89 -0
  29. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +88 -0
  30. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +100 -0
  31. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +77 -0
  32. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +64 -0
  33. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +110 -0
  34. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +74 -0
  35. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +38 -0
  36. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +61 -0
  37. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +115 -0
  38. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +60 -0
  39. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +90 -0
  40. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +89 -0
  41. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +77 -0
  42. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +163 -0
  43. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +84 -0
  44. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +77 -0
  45. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +89 -0
  46. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +103 -0
  47. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +103 -0
  48. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +103 -0
  49. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +93 -0
  50. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +93 -0
  51. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +86 -0
  52. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +115 -0
  53. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +44 -0
  54. package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +27 -0
  55. package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +32 -0
  56. package/src/skills/analyze-report/tests/index.yaml +25 -0
  57. package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +22 -0
  58. package/src/skills/analyze-report/tests/rubrics/result-block-format.md +22 -0
  59. package/src/skills/analyze-report/workflows/progress.md +158 -0
  60. package/src/skills/analyze-report/workflows/retrospective.md +143 -0
  61. package/src/skills/coach/README.md +43 -0
  62. package/src/skills/coach/SKILL.md +166 -0
  63. package/src/skills/coach/SKILL.md.legacy +157 -0
  64. package/src/skills/coach/algorithms/gap-analysis.md +69 -0
  65. package/src/skills/coach/algorithms/improvement-prioritization.md +62 -0
  66. package/src/skills/coach/algorithms/skill-scoring.md +80 -0
  67. package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +11 -0
  68. package/src/skills/coach/knowledge/backlog-management.md +67 -0
  69. package/src/skills/coach/knowledge/backlog-management.md.legacy +90 -0
  70. package/src/skills/coach/knowledge/common-antipatterns.md +76 -0
  71. package/src/skills/coach/knowledge/prompt-engineering.md +45 -0
  72. package/src/skills/coach/knowledge/shared-knowledge-guide.md +44 -0
  73. package/src/skills/coach/knowledge/skill-anatomy.md +49 -0
  74. package/src/skills/coach/knowledge/test-authorship.md +141 -0
  75. package/src/skills/coach/templates/audit-report.md +39 -0
  76. package/src/skills/coach/templates/coach-backlog-init.yaml +14 -0
  77. package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +10 -0
  78. package/src/skills/coach/templates/improvement-plan.md +42 -0
  79. package/src/skills/coach/templates/new-skill.md +95 -0
  80. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +58 -0
  81. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +65 -0
  82. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +58 -0
  83. package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +151 -0
  84. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +46 -0
  85. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
  86. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +75 -0
  87. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +81 -0
  88. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +101 -0
  89. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +91 -0
  90. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +48 -0
  91. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +30 -0
  92. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +55 -0
  93. package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +95 -0
  94. package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +53 -0
  95. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +46 -0
  96. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +50 -0
  97. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +48 -0
  98. package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +151 -0
  99. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
  100. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +37 -0
  101. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +30 -0
  102. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +23 -0
  103. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +29 -0
  104. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +35 -0
  105. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +13 -0
  106. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +19 -0
  107. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +33 -0
  108. package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +95 -0
  109. package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +57 -0
  110. package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +77 -0
  111. package/src/skills/coach/tests/index.yaml +29 -0
  112. package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +13 -0
  113. package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +29 -0
  114. package/src/skills/coach/tests/rubrics/evidence-based.md +26 -0
  115. package/src/skills/coach/tests/rubrics/root-cause-first.md +21 -0
  116. package/src/skills/coach/workflows/analyze.md +79 -0
  117. package/src/skills/coach/workflows/analyze.md.legacy +64 -0
  118. package/src/skills/coach/workflows/audit.md +74 -0
  119. package/src/skills/coach/workflows/audit.md.legacy +59 -0
  120. package/src/skills/coach/workflows/create.md +80 -0
  121. package/src/skills/coach/workflows/create.md.legacy +67 -0
  122. package/src/skills/coach/workflows/improve.md +71 -0
  123. package/src/skills/coach/workflows/improve.md.legacy +60 -0
  124. package/src/skills/coach/workflows/research.md +55 -0
  125. package/src/skills/coach/workflows/review.md +52 -0
  126. package/src/skills/coach/workflows/review.md.legacy +48 -0
  127. package/src/skills/coach/workflows/test.md +97 -0
  128. package/src/skills/create-plan/README.md +39 -0
  129. package/src/skills/create-plan/SKILL.md +104 -0
  130. package/src/skills/create-plan/algorithms/risk-assessment.md +73 -0
  131. package/src/skills/create-plan/knowledge/plan-completeness.md +67 -0
  132. package/src/skills/create-plan/knowledge/plan-lifecycle.md +33 -0
  133. package/src/skills/create-plan/knowledge/task-verification-pairs.md +151 -0
  134. package/src/skills/create-plan/scripts/validate-completeness.js +182 -0
  135. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +5 -0
  136. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +39 -0
  137. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +35 -0
  138. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +167 -0
  139. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +5 -0
  140. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +10 -0
  141. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +5 -0
  142. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +26 -0
  143. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +86 -0
  144. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +5 -0
  145. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +11 -0
  146. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +15 -0
  147. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +14 -0
  148. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +119 -0
  149. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +41 -0
  150. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +25 -0
  151. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +30 -0
  152. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +37 -0
  153. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +164 -0
  154. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +3 -0
  155. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +11 -0
  156. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +13 -0
  157. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +44 -0
  158. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +5 -0
  159. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +49 -0
  160. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +6 -0
  161. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +11 -0
  162. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +16 -0
  163. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +116 -0
  164. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +39 -0
  165. package/src/skills/create-plan/tests/index.yaml +25 -0
  166. package/src/skills/create-plan/tests/rubrics/task-granularity.md +21 -0
  167. package/src/skills/create-plan/tests/rubrics/validate-completeness.md +21 -0
  168. package/src/skills/create-plan/workflows/create.md +136 -0
  169. package/src/skills/create-report/README.md +40 -0
  170. package/src/skills/create-report/SKILL.md +73 -0
  171. package/src/skills/create-report/algorithms/metric-calculation.md +93 -0
  172. package/src/skills/create-report/knowledge/report-metrics.md +82 -0
  173. package/src/skills/create-report/scripts/calc-metrics.js +383 -0
  174. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +25 -0
  175. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +26 -0
  176. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +28 -0
  177. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +163 -0
  178. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +4 -0
  179. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +3 -0
  180. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +6 -0
  181. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +8 -0
  182. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +12 -0
  183. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +7 -0
  184. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +12 -0
  185. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +22 -0
  186. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +13 -0
  187. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +115 -0
  188. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +57 -0
  189. package/src/skills/create-report/tests/index.yaml +20 -0
  190. package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +21 -0
  191. package/src/skills/create-report/workflows/standard.md +175 -0
  192. package/src/skills/decompose-gaps/README.md +39 -0
  193. package/src/skills/decompose-gaps/SKILL.md +78 -0
  194. package/src/skills/decompose-gaps/algorithms/scope-check.md +110 -0
  195. package/src/skills/decompose-gaps/knowledge/scope-validation.md +65 -0
  196. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +49 -0
  197. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +56 -0
  198. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +39 -0
  199. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +164 -0
  200. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +25 -0
  201. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +11 -0
  202. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +26 -0
  203. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +19 -0
  204. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +5 -0
  205. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +28 -0
  206. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +23 -0
  207. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +27 -0
  208. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +25 -0
  209. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +116 -0
  210. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +46 -0
  211. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +32 -0
  212. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +20 -0
  213. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +26 -0
  214. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +164 -0
  215. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +7 -0
  216. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +16 -0
  217. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +7 -0
  218. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +5 -0
  219. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +11 -0
  220. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +13 -0
  221. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +13 -0
  222. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +12 -0
  223. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +5 -0
  224. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +116 -0
  225. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +36 -0
  226. package/src/skills/decompose-gaps/tests/index.yaml +25 -0
  227. package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +21 -0
  228. package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +21 -0
  229. package/src/skills/decompose-gaps/workflows/decompose.md +120 -0
  230. package/src/skills/decompose-plan/README.md +43 -0
  231. package/src/skills/decompose-plan/SKILL.md +87 -0
  232. package/src/skills/decompose-plan/algorithms/deduplication.md +101 -0
  233. package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +113 -0
  234. package/src/skills/decompose-plan/knowledge/capabilities.md +44 -0
  235. package/src/skills/decompose-plan/knowledge/human-task-rules.md +67 -0
  236. package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +73 -0
  237. package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +47 -0
  238. package/src/skills/decompose-plan/scripts/check-duplicates.js +323 -0
  239. package/src/skills/decompose-plan/scripts/verify-atomicity.js +408 -0
  240. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +30 -0
  241. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +36 -0
  242. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +37 -0
  243. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +163 -0
  244. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +20 -0
  245. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +17 -0
  246. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +28 -0
  247. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +114 -0
  248. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +137 -0
  249. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +188 -0
  250. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
  251. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +32 -0
  252. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +110 -0
  253. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +115 -0
  254. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +56 -0
  255. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +47 -0
  256. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +54 -0
  257. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +43 -0
  258. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +163 -0
  259. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +15 -0
  260. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +5 -0
  261. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +12 -0
  262. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +34 -0
  263. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +30 -0
  264. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +35 -0
  265. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
  266. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +31 -0
  267. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
  268. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +115 -0
  269. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +44 -0
  270. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +21 -0
  271. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +38 -0
  272. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +30 -0
  273. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +163 -0
  274. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +31 -0
  275. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +35 -0
  276. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +48 -0
  277. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +167 -0
  278. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +62 -0
  279. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +174 -0
  280. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
  281. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
  282. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
  283. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +115 -0
  284. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +42 -0
  285. package/src/skills/decompose-plan/tests/index.yaml +30 -0
  286. package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +21 -0
  287. package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +21 -0
  288. package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +21 -0
  289. package/src/skills/decompose-plan/workflows/decompose.md +272 -0
  290. package/src/skills/deep-research/README.md +36 -0
  291. package/src/skills/deep-research/SKILL.md +106 -0
  292. package/src/skills/deep-research/algorithms/source-scoring.md +63 -0
  293. package/src/skills/deep-research/algorithms/synthesis.md +67 -0
  294. package/src/skills/deep-research/knowledge/data-validation.md +44 -0
  295. package/src/skills/deep-research/knowledge/perplexity-config.md +30 -0
  296. package/src/skills/deep-research/knowledge/research-methodology.md +54 -0
  297. package/src/skills/deep-research/knowledge/source-evaluation.md +33 -0
  298. package/src/skills/deep-research/scripts/perplexity-research.js +315 -0
  299. package/src/skills/deep-research/templates/brief-summary.md +25 -0
  300. package/src/skills/deep-research/templates/research-report.md +76 -0
  301. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +48 -0
  302. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +88 -0
  303. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +56 -0
  304. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +163 -0
  305. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +58 -0
  306. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +249 -0
  307. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +44 -0
  308. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +96 -0
  309. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +56 -0
  310. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +94 -0
  311. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +11 -0
  312. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +1 -0
  313. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +1 -0
  314. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +115 -0
  315. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +58 -0
  316. package/src/skills/deep-research/tests/index.yaml +20 -0
  317. package/src/skills/deep-research/tests/rubrics/self-check-url.md +34 -0
  318. package/src/skills/deep-research/workflows/base-checklist.md +19 -0
  319. package/src/skills/deep-research/workflows/benchmark.md +38 -0
  320. package/src/skills/deep-research/workflows/competitor.md +44 -0
  321. package/src/skills/deep-research/workflows/custom.md +32 -0
  322. package/src/skills/deep-research/workflows/market.md +44 -0
  323. package/src/skills/deep-research/workflows/technology.md +40 -0
  324. package/src/skills/deep-research/workflows/trend.md +40 -0
  325. package/src/skills/execute-task/README.md +44 -0
  326. package/src/skills/execute-task/SKILL.md +292 -0
  327. package/src/skills/execute-task/algorithms/execution-strategy.md +136 -0
  328. package/src/skills/execute-task/knowledge/context-checkpoints.md +75 -0
  329. package/src/skills/execute-task/knowledge/ticket-structure.md +70 -0
  330. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +5 -0
  331. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +5 -0
  332. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +5 -0
  333. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +124 -0
  334. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +4 -0
  335. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +4 -0
  336. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +4 -0
  337. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +4 -0
  338. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +4 -0
  339. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +11 -0
  340. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +89 -0
  341. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +48 -0
  342. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +5 -0
  343. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +6 -0
  344. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +5 -0
  345. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +124 -0
  346. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +4 -0
  347. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +4 -0
  348. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +8 -0
  349. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +9 -0
  350. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +26 -0
  351. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +4 -0
  352. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +89 -0
  353. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +44 -0
  354. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +5 -0
  355. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +5 -0
  356. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +5 -0
  357. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +46 -0
  358. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +37 -0
  359. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +46 -0
  360. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +18 -0
  361. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +16 -0
  362. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +14 -0
  363. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +124 -0
  364. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +5 -0
  365. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +5 -0
  366. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +1 -0
  367. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +8 -0
  368. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +5 -0
  369. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +4 -0
  370. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +89 -0
  371. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +50 -0
  372. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +5 -0
  373. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +5 -0
  374. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +5 -0
  375. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +124 -0
  376. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +15 -0
  377. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +4 -0
  378. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +5 -0
  379. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +11 -0
  380. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +11 -0
  381. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +4 -0
  382. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +89 -0
  383. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +39 -0
  384. package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +41 -0
  385. package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +40 -0
  386. package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +42 -0
  387. package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +41 -0
  388. package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +40 -0
  389. package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +36 -0
  390. package/src/skills/execute-task/tests/index.yaml +39 -0
  391. package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +22 -0
  392. package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +20 -0
  393. package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +21 -0
  394. package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +23 -0
  395. package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +22 -0
  396. package/src/skills/execute-task/workflows/execute.md +104 -0
  397. package/src/skills/manual-testing/README.md +63 -0
  398. package/src/skills/manual-testing/SKILL.md +174 -0
  399. package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +74 -0
  400. package/src/skills/manual-testing/algorithms/bug-severity.md +73 -0
  401. package/src/skills/manual-testing/algorithms/mcp-budget.md +97 -0
  402. package/src/skills/manual-testing/algorithms/test-prioritization.md +69 -0
  403. package/src/skills/manual-testing/knowledge/browser-extension-testing.md +102 -0
  404. package/src/skills/manual-testing/knowledge/browser-tools.md +114 -0
  405. package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +92 -0
  406. package/src/skills/manual-testing/knowledge/desktop-tools-core.md +76 -0
  407. package/src/skills/manual-testing/knowledge/sandbox-advanced.md +83 -0
  408. package/src/skills/manual-testing/knowledge/sandbox-core.md +67 -0
  409. package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +69 -0
  410. package/src/skills/manual-testing/knowledge/test-case-design.md +107 -0
  411. package/src/skills/manual-testing/knowledge/testing-types.md +45 -0
  412. package/src/skills/manual-testing/templates/bug-report.md +52 -0
  413. package/src/skills/manual-testing/templates/test-case.md +34 -0
  414. package/src/skills/manual-testing/templates/test-plan.md +97 -0
  415. package/src/skills/manual-testing/templates/test-session-report.md +56 -0
  416. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +21 -0
  417. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +65 -0
  418. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +35 -0
  419. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +163 -0
  420. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
  421. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +7 -0
  422. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
  423. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +4 -0
  424. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +15 -0
  425. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +8 -0
  426. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +5 -0
  427. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +7 -0
  428. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +7 -0
  429. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +114 -0
  430. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +38 -0
  431. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +47 -0
  432. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +39 -0
  433. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +40 -0
  434. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +163 -0
  435. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +19 -0
  436. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +15 -0
  437. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +24 -0
  438. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +19 -0
  439. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +13 -0
  440. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +18 -0
  441. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +21 -0
  442. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +15 -0
  443. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +14 -0
  444. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +114 -0
  445. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +37 -0
  446. package/src/skills/manual-testing/tests/index.yaml +25 -0
  447. package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +140 -0
  448. package/src/skills/manual-testing/tests/last-run-tc002.log +1 -0
  449. package/src/skills/manual-testing/tests/last-run.log +1469 -0
  450. package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +20 -0
  451. package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +21 -0
  452. package/src/skills/manual-testing/workflows/acceptance.md +80 -0
  453. package/src/skills/manual-testing/workflows/exploratory.md +84 -0
  454. package/src/skills/manual-testing/workflows/regression.md +76 -0
  455. package/src/skills/manual-testing/workflows/smoke.md +109 -0
  456. package/src/skills/manual-testing/workflows/test-plan.md +75 -0
  457. package/src/skills/review-result/README.md +59 -0
  458. package/src/skills/review-result/SKILL.md +138 -0
  459. package/src/skills/review-result/algorithms/verification.md +112 -0
  460. package/src/skills/review-result/knowledge/dod-patterns.md +115 -0
  461. package/src/skills/review-result/scripts/verify-artifacts.js +354 -0
  462. package/src/skills/review-result/templates/verdict.md +153 -0
  463. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +22 -0
  464. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +7 -0
  465. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +21 -0
  466. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +6 -0
  467. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +6 -0
  468. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +18 -0
  469. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +164 -0
  470. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +5 -0
  471. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +7 -0
  472. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +6 -0
  473. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +49 -0
  474. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +28 -0
  475. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +37 -0
  476. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +22 -0
  477. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +13 -0
  478. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +21 -0
  479. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +116 -0
  480. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +51 -0
  481. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +23 -0
  482. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +22 -0
  483. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +28 -0
  484. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +4 -0
  485. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +36 -0
  486. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +4 -0
  487. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +163 -0
  488. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +4 -0
  489. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
  490. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +4 -0
  491. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +39 -0
  492. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +25 -0
  493. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +32 -0
  494. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +34 -0
  495. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +8 -0
  496. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +23 -0
  497. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +115 -0
  498. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +39 -0
  499. package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +43 -0
  500. package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +46 -0
  501. package/src/skills/review-result/tests/index.yaml +25 -0
  502. package/src/skills/review-result/tests/rubrics/path-line-suffix.md +19 -0
  503. package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +19 -0
  504. package/src/skills/review-result/workflows/review.md +209 -0
  505. package/templates/plan-template.md +1 -0
@@ -0,0 +1,76 @@
1
+ # Desktop-инструменты: Core
2
+
3
+ Справочник по основным командам Windows-MCP для тестирования desktop-приложений через Accessibility Tree.
4
+
5
+ ## Основные команды
6
+
7
+ | Команда | Описание | Ключевые параметры |
8
+ |---------|----------|--------------------|
9
+ | `screenshot` | Быстрый скриншот рабочего стола | `display: [0]` (опционально) |
10
+ | `snapshot` | A11y tree + скриншот (дорогой) | `use_vision: bool`, `use_dom: bool` |
11
+ | `click` | Клик по элементу | `loc: [x,y]` или `label: int`, `button`, `double` |
12
+ | `type` | Ввод текста | `loc`/`label` (обязательно), `text`, `press_enter`, `clear` |
13
+ | `scroll` | Прокрутка | `direction`, `wheel_times: int`, `loc: [x,y]` (предпочтительно) |
14
+ | `shortcut` | Клавиатурная комбинация | `shortcut: "ctrl+shift+p"` |
15
+ | `scrape` | Извлечение текста окна | — |
16
+ | `wait` | Пауза | `duration: float` |
17
+
18
+ > **Типы параметров:** `loc` — массив `[x, y]`, не строка. `label` — int. `wheel_times` — int. Нативные типы, без кавычек.
19
+
20
+ > **click/type/scroll требуют `loc` или `label`.** Для scroll предпочитай `loc` — label-ID устаревают между Snapshot-ами.
21
+
22
+ ## Label-based навигация (ПРИОРИТЕТ)
23
+
24
+ **Всегда предпочитай `Click(label=N)` вместо `Click(loc=[x,y])`** — координаты нестабильны при resize/collapse.
25
+
26
+ - `label` — **числовой ID** из столбца `# id` в Snapshot. Текстовые имена (`Click(label="Save")`) вызовут ошибку `int_parsing`
27
+ - **Label-ID ОДНОРАЗОВЫЕ** — валидны только сразу после Snapshot. Любое действие между Snapshot и Click может сдвинуть ID
28
+ - При ошибке «Label N out of range» — **не повторяй**, сделай новый Snapshot и найди элемент по текстовому имени
29
+
30
+ **Паттерн:** запомни текстовое имя элемента → при каждом Snapshot ищи его числовой ID → передавай в Click(label=N).
31
+
32
+ ## Snapshot budget
33
+
34
+ Snapshot — ~5-10k tokens. Чрезмерное использование вызывает context overflow.
35
+
36
+ | Когда делать | Когда НЕ делать |
37
+ |-------------|-----------------|
38
+ | Первый раз — ориентация в UI | После Escape/закрытия меню |
39
+ | После действия, меняющего набор элементов | Если label уже известен |
40
+ | Верификация появления/исчезновения элемента | «Проверка что ничего не сломалось» |
41
+
42
+ **Лимиты:** 1-2 Snapshot/TC, максимум 6/сессию. После нового Snapshot все предыдущие label-ID невалидны.
43
+
44
+ **`use_vision: false`** по умолчанию (экономия токенов). `true` — только когда нужна визуальная интерпретация.
45
+
46
+ ## Minimal Thinking
47
+
48
+ Между MCP-вызовами — максимум 1 короткая строка. Анализ и выводы — в тикет.
49
+
50
+ ## Прокрутка списков
51
+
52
+ Перед выводом «элемент отсутствует» — прокрути в обоих направлениях:
53
+ 1. Snapshot → найти scrollable element, проверить `vertical_scroll_percent`
54
+ 2. Scroll up до `scroll_percent = 0` → Snapshot → проверить
55
+ 3. Scroll down до конца → Snapshot → проверить
56
+ 4. Только после полной прокрутки можно утверждать «элемента нет»
57
+
58
+ **Антипаттерн:** dropdown может быть открыт в середине списка — элемент может быть выше видимой области.
59
+
60
+ ## Выбор MCP-сервера
61
+
62
+ **⛔ Desktop-приложения тестируются ТОЛЬКО через Sandbox.** Используй `sandbox-desktop`.
63
+
64
+ | Среда | MCP-сервер | Префикс вызова |
65
+ |-------|-----------|----------------|
66
+ | Windows Sandbox (обязательно) | `sandbox-desktop` | `mcp__sandbox-desktop__*` |
67
+
68
+ Проверь `.mcp.json` проекта. В Sandbox **не используй `Wait`** — латентность MCP (3-10 сек) достаточна для обновления UI.
69
+
70
+ ## Ключевые ограничения
71
+
72
+ - **Ctrl+Click невозможен** через MCP (нет модификаторов). Альтернативы: F12, Command Palette, Ctrl+P
73
+ - A11y tree не всегда гранулярен до символа
74
+ - В Sandbox начинай с `snapshot` — a11y tree надёжнее для верификации
75
+
76
+ <!-- РАСШИРЕНИЕ: добавляй новые core-паттерны ниже -->
@@ -0,0 +1,83 @@
1
+ # Тестирование в Windows Sandbox — Advanced
2
+
3
+ Расширенные сценарии: настройка .wsb, паттерны тестирования, MCP disconnect, управление контекстом. Базовые знания → `knowledge/sandbox-core.md`.
4
+
5
+ ## Конфигурация .wsb файла
6
+
7
+ ```xml
8
+ <Configuration>
9
+ <MappedFolders>
10
+ <MappedFolder>
11
+ <HostFolder><!-- путь к проекту --></HostFolder>
12
+ <SandboxFolder><!-- путь в Sandbox --></SandboxFolder>
13
+ <ReadOnly>false</ReadOnly>
14
+ </MappedFolder>
15
+ </MappedFolders>
16
+ <Networking>Enable</Networking>
17
+ <vGPU>Enable</vGPU>
18
+ <ClipboardRedirection>Enable</ClipboardRedirection>
19
+ <LogonCommand><Command><!-- путь к setup.cmd --></Command></LogonCommand>
20
+ </Configuration>
21
+ ```
22
+
23
+ Конкретные пути — см. `CLAUDE.md` и `.wsb`-файл в sandbox-директории. Офлайн-пакет содержит портативные Python, Node.js и wheels для `windows-mcp`. Копируй Python на `C:\sandbox\` (mapped folders могут быть read-only для pip).
24
+
25
+ ## Паттерны тестирования
26
+
27
+ **Полный цикл:** Sandbox → LogonCommand → MCP подключение → запуск приложения → тест-кейсы → evidence в mapped folder → закрытие.
28
+
29
+ **Сравнение окружений:** один и тот же TC на хосте и в Sandbox — расхождения указывают на зависимость от окружения.
30
+
31
+ **Регрессия двух версий:** Sandbox 1 (текущая) → скриншоты → закрыть → Sandbox 2 (новая) → те же TC → сравнить.
32
+
33
+ ## Приоритизация TC по длительности
34
+
35
+ | Фаза | Тип TC | MCP-вызовов |
36
+ |------|--------|-------------|
37
+ | Сначала | Быстрые (Snapshot + визуальная верификация) | 2-3 |
38
+ | Затем | Действие + проверка | 4-6 |
39
+ | В конце | Длительные с ожиданием | 6-10 |
40
+
41
+ Чем дольше TC — тем выше риск MCP disconnect. Быстрые TC первыми.
42
+
43
+ ## MCP disconnect
44
+
45
+ ### Sandbox закрылся
46
+
47
+ 1. Немедленно зафиксируй результаты в тикет
48
+ 2. Не пытайся переподключиться — Sandbox закрыт
49
+ 3. Evidence на хосте сохранены (mapped folder пишет на диск хоста)
50
+
51
+ ### MCP-прокси умер, Sandbox жив
52
+
53
+ MCP-инструменты возвращают «server not connected», но окно Sandbox видно. **Не реализуй HTTP-клиент** — это rabbit hole.
54
+
55
+ 1. Зафиксируй выполненные TC
56
+ 2. Пометь оставшиеся TC как BLOCKED: «MCP proxy disconnected»
57
+ 3. Завершай тикет — следующая сессия продолжит
58
+
59
+ ## Управление контекстом и continuation
60
+
61
+ ### Планирование continuation
62
+
63
+ Рассчитай `max_TC_per_session` по формуле из `algorithms/mcp-budget.md`. Если TC больше — запланируй разбивку по сессиям до начала тестирования.
64
+
65
+ ### Признаки context overflow
66
+
67
+ - Контекст >70% заполнен — завершай текущий TC
68
+ - 6+ Snapshot за сессию — переключись на Screenshot
69
+ - Модель «забывает» ранние TC — немедленно фиксируй прогресс
70
+
71
+ ### Действия при overflow
72
+
73
+ 1. Завершай текущий TC (PASS/FAIL/BLOCKED)
74
+ 2. Запиши результаты, evidence paths, оставшиеся TC
75
+ 3. Заверши сессию — не пытайся «успеть ещё один TC»
76
+
77
+ ### Антипаттерн: ожидание смены UI-состояния
78
+
79
+ Не трать MCP-вызовы на цикл `Wait → Screenshot → «не сменилось»`. Запускай действие сразу:
80
+ ```
81
+ # ❌ Wait(5) → Screenshot → "ещё Completed" → Wait(8) → Screenshot
82
+ # ✅ Shortcut(ctrl+shift+p) → Type("<команда>") → Snapshot
83
+ ```
@@ -0,0 +1,67 @@
1
+ # Тестирование в Windows Sandbox — Core
2
+
3
+ Справочник по тестированию desktop-приложений в изолированном окружении Windows Sandbox.
4
+
5
+ ## Архитектура
6
+
7
+ ```
8
+ ┌─────────────────────┐ ┌──────────────────────────┐
9
+ │ Хост (Claude Code) │ HTTP │ Windows Sandbox │
10
+ │ MCP Client │◄──────►│ windows-mcp (HTTP :8000) │
11
+ │ (sandbox-desktop) │ │ ↓ управляет UI │
12
+ └─────────────────────┘ └──────────────────────────┘
13
+ ```
14
+
15
+ Инструменты: `mcp__sandbox-desktop__*` (screenshot, click, type, snapshot и т.д.). Подключение — `.mcp.json` → `"url": "http://<sandbox-ip>:8000/mcp"`. Пути и конфигурация .wsb — см. `CLAUDE.md` проекта. Расширенная настройка .wsb → `knowledge/sandbox-advanced.md`.
16
+
17
+ ## Quick-start checklist
18
+
19
+ Минимальный набор проверок перед тест-кейсами (3-4 MCP-вызова):
20
+
21
+ ```
22
+ 1. Screenshot → MCP работает, Sandbox активен
23
+ 2. PowerShell → Test-Path "<path-to-portable-vscode>"
24
+ 3. PowerShell → Test-Path "<path-to-test-workspace>"
25
+ 4. → Запускай VSCode и тест-кейсы
26
+ ```
27
+
28
+ **⛔ Hard gate:** если к 5-му MCP-вызову не начал первый TC — СТОП, пересмотри план.
29
+
30
+ **Антипаттерны:**
31
+ - 10+ MCP-вызовов на разведку (`Get-ChildItem`, `Test-Path`, `echo test`) до первого TC
32
+ - Установка/запуск продукта из CLI вместо UI — тестирует другой code path
33
+ - Перезапись конфигов без проверки существующих
34
+ - **BOM-кодировка:** PowerShell 5.x `Set-Content -Encoding utf8` пишет с BOM. Используй `[System.IO.File]::WriteAllText($path, $content)` или `-Encoding utf8NoBOM` (PS 7+)
35
+ - **Backslash в JSON:** используй `ConvertTo-Json` для hashtable, не собирай JSON строками
36
+ - **Parent directory traversal:** приложения ищут конфиг в parent dirs. Для теста «нет конфига» нужен workspace вне дерева проекта. Если невозможно за 3-5 вызовов — TC = BLOCKED
37
+
38
+ ## Персистенция evidence
39
+
40
+ **Sandbox эфемерен — всё удаляется при закрытии.** Сохраняй evidence на хост.
41
+
42
+ ### ReadOnly: false (рекомендуемый)
43
+
44
+ Сохраняй скриншоты напрямую в `reports/` — они пишутся на хост (1 MCP-вызов):
45
+
46
+ ```
47
+ PowerShell → "Add-Type -AssemblyName System.Windows.Forms,System.Drawing; $b = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; $bmp = New-Object System.Drawing.Bitmap($b.Width,$b.Height); $g = [System.Drawing.Graphics]::FromImage($bmp); $g.CopyFromScreen(0,0,0,0,$b.Size); $bmp.Save('<sandbox-project-path>\reports\TICKET-ID-screenshot-TC-NNN.png'); $g.Dispose(); $bmp.Dispose()"
48
+ ```
49
+
50
+ ### ReadOnly: true (fallback — 2 MCP-вызова)
51
+
52
+ Бинарная запись в ReadOnly mapped folder заблокирована. Сохрани в writable folder внутри Sandbox, затем скопируй на хост через Bash.
53
+
54
+ ### Self-check
55
+
56
+ После сохранения **проверь на хосте** (не в Sandbox): `ls reports/*.png`. Если 0 файлов — evidence потеряны.
57
+
58
+ ## Ключевые ограничения
59
+
60
+ | Ограничение | Обходной путь |
61
+ |------------|---------------|
62
+ | Одноразовость | Сохранять через mapped folders (ReadOnly: false) |
63
+ | Один экземпляр | Последовательное тестирование |
64
+ | FileSystem events не пробрасываются | TC с FileWatcher → BLOCKED |
65
+ | Латентность MCP 3-10 сек | `Wait` обычно не нужен |
66
+
67
+ Расширенные сценарии (MCP disconnect, continuation, .wsb конфигурация) → `knowledge/sandbox-advanced.md`.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: stateful-edge-cases
3
+ description: >
4
+ Edge-cases stateful-приложений для manual-testing. Помогает тестировщику
5
+ распознавать пропущенные паттерны в ходе тестирования, не перечисляет ТС явно.
6
+ load_strategy: lazy
7
+ load_when: "task.type == 'qa' AND app.type == 'stateful'"
8
+ ---
9
+
10
+ # Edge-cases stateful-приложений
11
+
12
+ ## Когда загружать
13
+
14
+ Загружай этот модуль, если тестируемое приложение хранит состояние между сессиями (история, настройки, данные, логи).
15
+
16
+ ## Ключевые паттерны
17
+
18
+ ### 1. Persistence после перезапуска
19
+
20
+ **Признак:** приложение сохраняет данные между сессиями.
21
+
22
+ **Что проверять:**
23
+ - После перезапуска приложения — данные из предыдущей сессии присутствуют
24
+ - Частичные данные (незавершённая операция) — корректно восстановлены или отброшены
25
+ - После принудительного завершения (crash, kill) — приложение запускается без ошибок
26
+
27
+ **Сигнал:** любой TC, создающий/изменяющий данные → проверь: данные есть после перезапуска.
28
+
29
+ ---
30
+
31
+ ### 2. Накопление данных (multi-run)
32
+
33
+ **Признак:** функция создаёт записи при каждом запуске (история, логи, очередь).
34
+
35
+ **Что проверять:**
36
+ - После N запусков операции — в хранилище ровно N записей (не 1 перезаписанная)
37
+ - При ожидаемом порядке (FIFO/LIFO) — порядок соответствует
38
+ - При достижении лимита хранилища — поведение определено (обрезка, ошибка, очистка)
39
+
40
+ **Сигнал:** TC использует слова «история», «журнал», «список» → запусти операцию дважды и проверь количество записей.
41
+
42
+ ---
43
+
44
+ ### 3. Нестандартные конфигурации
45
+
46
+ **Признак:** поведение приложения зависит от конфигурационного файла или настроек.
47
+
48
+ **Что проверять:**
49
+ - Отсутствующий конфиг — приложение применяет значения по умолчанию без ошибок
50
+ - Неполный конфиг (часть полей отсутствует) — незаданные поля заполняются дефолтами
51
+ - Граничные значения в конфиге — приложение корректно обрабатывает минимум/максимум
52
+
53
+ **Сигнал:** TC ссылается на конфиг → дополнительно проверь: что если конфиг отсутствует или одно поле удалено.
54
+
55
+ ---
56
+
57
+ ## Что НЕ входит в этот модуль
58
+
59
+ - **Data assertions** (конкретные ожидаемые значения) → ответственность create-plan
60
+ - **Перечисление entry points** → ответственность create-plan
61
+ - **Генерация тест-кейсов** → используй `knowledge/test-case-design.md`
62
+
63
+ ## Таблица применимости
64
+
65
+ | Признак в тикете/задаче | Применимый паттерн |
66
+ |-------------------------|--------------------|
67
+ | «сохраняет состояние», «история», «настройки» | Persistence (п.1) |
68
+ | «каждый запуск», «накапливается», «лог», «список» | Multi-run (п.2) |
69
+ | «конфиг», «настройки», «config» | Config variations (п.3) |
@@ -0,0 +1,107 @@
1
+ # Техники проектирования тест-кейсов
2
+
3
+ Справочник по техникам проектирования тест-кейсов для обеспечения полноты покрытия.
4
+
5
+ ## Основные техники
6
+
7
+ ### Equivalence Partitioning (классы эквивалентности)
8
+
9
+ Разделение входных данных на группы, где поведение системы одинаково.
10
+
11
+ | Класс | Описание | Пример (поле «Возраст», допустимо 18-99) |
12
+ |-------|----------|------------------------------------------|
13
+ | Валидный | Данные в допустимом диапазоне | 25, 50, 75 |
14
+ | Невалидный (ниже) | Ниже минимума | -1, 0, 17 |
15
+ | Невалидный (выше) | Выше максимума | 100, 999 |
16
+ | Невалидный (тип) | Неправильный тип данных | "abc", "", null |
17
+
18
+ **Правило:** достаточно одного значения из каждого класса.
19
+
20
+ ### Boundary Value Analysis (граничные значения)
21
+
22
+ Проверка значений на границах допустимых диапазонов.
23
+
24
+ | Граница | Значения для проверки | Пример (18-99) |
25
+ |---------|----------------------|----------------|
26
+ | Min - 1 | Чуть ниже минимума | 17 |
27
+ | Min | Минимальное допустимое | 18 |
28
+ | Min + 1 | Чуть выше минимума | 19 |
29
+ | Max - 1 | Чуть ниже максимума | 98 |
30
+ | Max | Максимальное допустимое | 99 |
31
+ | Max + 1 | Чуть выше максимума | 100 |
32
+
33
+ ### Decision Table (таблица решений)
34
+
35
+ Для комбинаций условий и ожидаемых действий.
36
+
37
+ | Условие 1 | Условие 2 | Условие 3 | Ожидаемое действие |
38
+ |-----------|-----------|-----------|-------------------|
39
+ | Да | Да | Да | Действие A |
40
+ | Да | Да | Нет | Действие B |
41
+ | Да | Нет | — | Действие C |
42
+ | Нет | — | — | Действие D |
43
+
44
+ **Применять когда:** бизнес-логика зависит от комбинации нескольких условий.
45
+
46
+ ### State Transition (переходы состояний)
47
+
48
+ Для объектов с жизненным циклом.
49
+
50
+ ```
51
+ [Создан] → оплата → [Оплачен] → доставка → [Доставлен]
52
+ ↓ ↓
53
+ отмена возврат
54
+ ↓ ↓
55
+ [Отменён] [Возвращён]
56
+ ```
57
+
58
+ Проверяй:
59
+ - Все допустимые переходы
60
+ - Попытки недопустимых переходов (отменённый → оплачен)
61
+ - Состояние данных после каждого перехода
62
+
63
+ ### Error Guessing (угадывание ошибок)
64
+
65
+ Основано на опыте — типичные места возникновения багов:
66
+
67
+ | Категория | Что проверять |
68
+ |-----------|-------------|
69
+ | **Пустые значения** | Пустые поля, null, undefined, пустые массивы |
70
+ | **Спецсимволы** | `<script>`, `'; DROP TABLE`, `../`, `%00` |
71
+ | **Unicode** | Эмодзи, RTL-текст, иероглифы, диакритика |
72
+ | **Длинные строки** | 1000+ символов, переполнение UI |
73
+ | **Числа** | 0, -1, MAX_INT, дробные, NaN |
74
+ | **Даты** | 29 февраля, 31 ноября, смена часовых поясов |
75
+ | **Файлы** | 0 байт, огромные файлы, неправильный формат |
76
+ | **Параллельность** | Два пользователя редактируют одно, двойной клик |
77
+ | **Сеть** | Медленная сеть, обрыв, повтор запроса |
78
+
79
+ ## Структура тест-кейса
80
+
81
+ ```
82
+ ID: QA-TC-001
83
+ Название: Авторизация с валидным email и паролем
84
+ Приоритет: P0
85
+ Предусловия: Пользователь зарегистрирован (email: test@example.com, пароль: Test123!)
86
+ Шаги:
87
+ 1. Открыть /login
88
+ 2. Ввести email: test@example.com
89
+ 3. Ввести пароль: Test123!
90
+ 4. Нажать кнопку «Войти»
91
+ Ожидаемый результат:
92
+ - Редирект на /dashboard
93
+ - Отображается имя пользователя в хедере
94
+ - Cookie/токен сессии установлен
95
+ Постусловия: Пользователь авторизован
96
+ ```
97
+
98
+ ## Чеклист полноты тест-кейсов
99
+
100
+ - [ ] Есть happy path (позитивный сценарий)
101
+ - [ ] Есть негативные сценарии (невалидные данные)
102
+ - [ ] Граничные значения проверены
103
+ - [ ] Тестовые данные конкретные (не «валидный email», а «user@test.com»)
104
+ - [ ] Шаги однозначны и воспроизводимы
105
+ - [ ] Ожидаемый результат конкретен и проверяем
106
+
107
+ <!-- РАСШИРЕНИЕ: добавляй новые техники проектирования тест-кейсов ниже -->
@@ -0,0 +1,45 @@
1
+ # Типы тестирования
2
+
3
+ Справочник по типам тестирования, их целям и применимости.
4
+
5
+ ## Основные типы
6
+
7
+ | Тип | Цель | Когда применять | Охват |
8
+ |-----|------|----------------|-------|
9
+ | **Smoke** | Базовая работоспособность | После каждого деплоя | 5-15 критических сценариев |
10
+ | **Regression** | Нет регрессии от изменений | Перед релизом, после крупных изменений | Полный набор тест-кейсов |
11
+ | **Exploratory** | Поиск неочевидных багов | После стабилизации фичи | Свободное исследование |
12
+ | **Acceptance (UAT)** | Соответствие бизнес-требованиям | Финальная стадия перед релизом | По acceptance criteria |
13
+ | **Sanity** | Узкая проверка конкретного фикса | После hotfix | 1-3 сценария вокруг фикса |
14
+
15
+ ## Дополнительные типы
16
+
17
+ | Тип | Цель | Когда применять |
18
+ |-----|------|----------------|
19
+ | **Cross-browser** | Работа в разных браузерах | Для web-приложений с широкой аудиторией |
20
+ | **Accessibility (a11y)** | Доступность для людей с ограничениями | Всегда для публичных интерфейсов, WCAG 2.1 |
21
+ | **Usability** | Удобство использования | При новых фичах, редизайне |
22
+ | **Visual** | Корректность отображения UI | При изменениях в стилях, вёрстке |
23
+ | **Negative** | Поведение при невалидных данных | Для форм, API, полей ввода |
24
+
25
+ ## Подходы к тестированию
26
+
27
+ | Подход | Описание | Когда использовать |
28
+ |--------|----------|-------------------|
29
+ | **Risk-Based** | Приоритизация по бизнес-риску | Ограниченное время, нужна максимальная отдача |
30
+ | **Context-Driven** | Адаптация под контекст проекта | Всегда — нет универсального подхода |
31
+ | **Shift-Left** | Тестирование на ранних стадиях | Интеграция QA с момента требований |
32
+ | **Session-Based (SBTM)** | Таймбоксированные сессии исследования | Исследовательское тестирование |
33
+
34
+ ## Матрица выбора типа тестирования
35
+
36
+ | Ситуация | Рекомендуемый тип |
37
+ |----------|------------------|
38
+ | Только что задеплоили | Smoke |
39
+ | Готовимся к релизу | Regression |
40
+ | Новая фича готова | Acceptance + Exploratory |
41
+ | Исправили баг | Sanity + Smoke |
42
+ | Жалобы на UX | Usability + Exploratory |
43
+ | Новый дизайн | Visual + Cross-browser |
44
+
45
+ <!-- РАСШИРЕНИЕ: добавляй новые типы тестирования и подходы ниже -->
@@ -0,0 +1,52 @@
1
+ # Шаблон: Баг-репорт (секция внутри QA-тикета)
2
+
3
+ > **⛔ Не создавай отдельный тикет для дефекта.** Этот шаблон — формат секции FAIL внутри QA-тикета.
4
+
5
+ ```markdown
6
+ ## DEFECT: [{Модуль}] {Краткое описание проблемы}
7
+
8
+ **Severity:** CRITICAL / HIGH / MEDIUM / LOW
9
+ **Priority:** P0 / P1 / P2 / P3 / P4
10
+ **Найден при:** {ID тест-кейса или описание сессии}
11
+
12
+ ### Окружение
13
+
14
+ | Параметр | Значение |
15
+ |----------|----------|
16
+ | URL | {URL страницы} |
17
+ | Браузер | {Chrome 120 / Firefox 121 / Safari 17 / ...} |
18
+ | ОС | {Windows 11 / macOS 14 / ...} |
19
+ | Разрешение | {1920×1080 / 375×667 / ...} |
20
+ | Стенд | {production / staging / dev} |
21
+
22
+ ### Шаги воспроизведения
23
+
24
+ 1. {Конкретный шаг 1}
25
+ 2. {Конкретный шаг 2}
26
+ 3. {Конкретный шаг 3}
27
+ 4. ...
28
+
29
+ ### Фактический результат
30
+
31
+ {Что происходит на самом деле}
32
+
33
+ ### Ожидаемый результат
34
+
35
+ {Что должно происходить}
36
+
37
+ ### Скриншоты / Видео
38
+
39
+ - {screenshot_1.png — описание}
40
+ - {screenshot_2.png — описание}
41
+
42
+ ### Дополнительная информация
43
+
44
+ - **Console errors:** {JS-ошибки из консоли, если есть}
45
+ - **Network:** {Проблемные запросы: статус-код, URL}
46
+ - **Частота воспроизведения:** Always / Often / Sometimes / Rarely
47
+ - **Workaround:** {Обходной путь, если есть}
48
+
49
+ ### Обоснование Severity
50
+
51
+ {1-2 предложения: почему именно такая серьёзность}
52
+ ```
@@ -0,0 +1,34 @@
1
+ # Шаблон: Тест-кейс
2
+
3
+ ```markdown
4
+ ## QA-TC-{NNN}: {Название тест-кейса}
5
+
6
+ **Приоритет:** P0 / P1 / P2 / P3
7
+ **Тип:** Functional / Negative / Boundary / Cross-browser / Accessibility
8
+ **Связь:** {ID требования или user story}
9
+
10
+ ### Предусловия
11
+
12
+ - {Состояние системы перед началом теста}
13
+ - {Тестовые данные, аккаунты, окружение}
14
+
15
+ ### Шаги
16
+
17
+ | # | Действие | Ожидаемый результат |
18
+ |---|----------|-------------------|
19
+ | 1 | {Конкретное действие} | {Конкретный ожидаемый результат} |
20
+ | 2 | {Конкретное действие} | {Конкретный ожидаемый результат} |
21
+ | 3 | ... | ... |
22
+
23
+ ### Тестовые данные
24
+
25
+ | Параметр | Значение |
26
+ |----------|----------|
27
+ | {Поле 1} | {Конкретное значение} |
28
+ | {Поле 2} | {Конкретное значение} |
29
+
30
+ ### Постусловия
31
+
32
+ - {Состояние системы после теста}
33
+ - {Что нужно очистить / откатить}
34
+ ```
@@ -0,0 +1,97 @@
1
+ # Шаблон: Тест-план
2
+
3
+ ```markdown
4
+ # Тест-план: {Название фичи / релиза}
5
+
6
+ **Дата:** {YYYY-MM-DD}
7
+ **Автор:** QA
8
+ **Версия:** 1.0
9
+
10
+ ## 1. Цели тестирования
11
+
12
+ {Что проверяем и зачем}
13
+
14
+ ## 2. Scope
15
+
16
+ ### В скоупе
17
+
18
+ - {Модуль / фича 1}
19
+ - {Модуль / фича 2}
20
+
21
+ ### Вне скоупа
22
+
23
+ - {Что НЕ тестируем и почему}
24
+
25
+ ## 3. Стратегия тестирования
26
+
27
+ | Тип тестирования | Применяется | Обоснование |
28
+ |-----------------|-------------|-------------|
29
+ | Smoke | Да / Нет | {Почему} |
30
+ | Functional | Да / Нет | {Почему} |
31
+ | Regression | Да / Нет | {Почему} |
32
+ | Cross-browser | Да / Нет | {Почему} |
33
+ | Accessibility | Да / Нет | {Почему} |
34
+ | Exploratory | Да / Нет | {Почему} |
35
+
36
+ ## 4. Окружение
37
+
38
+ ### Браузеры
39
+
40
+ | Браузер | Версия | Приоритет |
41
+ |---------|--------|-----------|
42
+ | {Chrome} | {latest} | {P0} |
43
+ | ... | ... | ... |
44
+
45
+ ### Устройства / Разрешения
46
+
47
+ | Устройство | Разрешение | Приоритет |
48
+ |-----------|-----------|-----------|
49
+ | {Desktop} | {1920×1080} | {P0} |
50
+ | {Mobile} | {375×667} | {P1} |
51
+
52
+ ### Стенды
53
+
54
+ | Стенд | URL | Назначение |
55
+ |-------|-----|-----------|
56
+ | {staging} | {URL} | {Основное тестирование} |
57
+
58
+ ## 5. Тест-кейсы
59
+
60
+ ### P0 — Critical Path
61
+
62
+ | ID | Название | Тип | Статус |
63
+ |----|----------|-----|--------|
64
+ | QA-TC-001 | {Название} | {Functional} | {Pending} |
65
+ | ... | ... | ... | ... |
66
+
67
+ ### P1 — Major Flows
68
+
69
+ | ID | Название | Тип | Статус |
70
+ |----|----------|-----|--------|
71
+ | ... | ... | ... | ... |
72
+
73
+ ### P2 — Edge Cases
74
+
75
+ | ID | Название | Тип | Статус |
76
+ |----|----------|-----|--------|
77
+ | ... | ... | ... | ... |
78
+
79
+ ## 6. Критерии входа
80
+
81
+ - [ ] Фича задеплоена на тестовый стенд
82
+ - [ ] Тестовые данные подготовлены
83
+ - [ ] Нет блокирующих багов из предыдущих итераций
84
+
85
+ ## 7. Критерии выхода
86
+
87
+ - [ ] Все P0 тест-кейсы: PASS
88
+ - [ ] Все P1 тест-кейсы: PASS (или обоснован SKIP)
89
+ - [ ] Нет открытых CRITICAL/HIGH багов
90
+ - [ ] Отчёт о тестировании сформирован
91
+
92
+ ## 8. Риски
93
+
94
+ | Риск | Вероятность | Влияние | Митигация |
95
+ |------|-------------|---------|-----------|
96
+ | {Описание} | {High/Med/Low} | {High/Med/Low} | {Как снизить} |
97
+ ```