workflow-ai 1.0.63 → 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 (494) hide show
  1. package/configs/config.yaml +134 -0
  2. package/configs/pipeline.yaml +884 -0
  3. package/configs/ticket-movement-rules.yaml +80 -0
  4. package/package.json +1 -1
  5. package/src/global-dir.mjs +25 -1
  6. package/src/scripts/run-skill-tests.js +348 -136
  7. package/src/skills/analyze-report/README.md +44 -0
  8. package/src/skills/analyze-report/SKILL.md +121 -0
  9. package/src/skills/analyze-report/algorithms/progress-assessment.md +108 -0
  10. package/src/skills/analyze-report/knowledge/analysis-frameworks.md +66 -0
  11. package/src/skills/analyze-report/knowledge/report-structure.md +61 -0
  12. package/src/skills/analyze-report/scripts/calc-plan-metrics.js +234 -0
  13. package/src/skills/analyze-report/templates/analysis-report.md +80 -0
  14. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +69 -0
  15. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +103 -0
  16. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +99 -0
  17. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +163 -0
  18. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +89 -0
  19. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +88 -0
  20. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +100 -0
  21. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +77 -0
  22. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +64 -0
  23. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +110 -0
  24. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +74 -0
  25. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +38 -0
  26. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +61 -0
  27. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +115 -0
  28. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +60 -0
  29. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +90 -0
  30. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +89 -0
  31. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +77 -0
  32. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +163 -0
  33. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +84 -0
  34. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +77 -0
  35. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +89 -0
  36. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +103 -0
  37. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +103 -0
  38. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +103 -0
  39. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +93 -0
  40. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +93 -0
  41. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +86 -0
  42. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +115 -0
  43. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +44 -0
  44. package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +27 -0
  45. package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +32 -0
  46. package/src/skills/analyze-report/tests/index.yaml +25 -0
  47. package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +22 -0
  48. package/src/skills/analyze-report/tests/rubrics/result-block-format.md +22 -0
  49. package/src/skills/analyze-report/workflows/progress.md +158 -0
  50. package/src/skills/analyze-report/workflows/retrospective.md +143 -0
  51. package/src/skills/coach/README.md +43 -0
  52. package/src/skills/coach/SKILL.md +166 -0
  53. package/src/skills/coach/SKILL.md.legacy +157 -0
  54. package/src/skills/coach/algorithms/gap-analysis.md +69 -0
  55. package/src/skills/coach/algorithms/improvement-prioritization.md +62 -0
  56. package/src/skills/coach/algorithms/skill-scoring.md +80 -0
  57. package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +11 -0
  58. package/src/skills/coach/knowledge/backlog-management.md +67 -0
  59. package/src/skills/coach/knowledge/backlog-management.md.legacy +90 -0
  60. package/src/skills/coach/knowledge/common-antipatterns.md +76 -0
  61. package/src/skills/coach/knowledge/prompt-engineering.md +45 -0
  62. package/src/skills/coach/knowledge/shared-knowledge-guide.md +44 -0
  63. package/src/skills/coach/knowledge/skill-anatomy.md +49 -0
  64. package/src/skills/coach/knowledge/test-authorship.md +141 -0
  65. package/src/skills/coach/templates/audit-report.md +39 -0
  66. package/src/skills/coach/templates/coach-backlog-init.yaml +14 -0
  67. package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +10 -0
  68. package/src/skills/coach/templates/improvement-plan.md +42 -0
  69. package/src/skills/coach/templates/new-skill.md +95 -0
  70. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +58 -0
  71. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +65 -0
  72. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +58 -0
  73. package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +151 -0
  74. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +46 -0
  75. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
  76. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +75 -0
  77. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +81 -0
  78. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +101 -0
  79. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +91 -0
  80. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +48 -0
  81. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +30 -0
  82. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +55 -0
  83. package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +95 -0
  84. package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +53 -0
  85. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +46 -0
  86. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +50 -0
  87. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +48 -0
  88. package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +151 -0
  89. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
  90. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +37 -0
  91. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +30 -0
  92. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +23 -0
  93. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +29 -0
  94. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +35 -0
  95. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +13 -0
  96. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +19 -0
  97. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +33 -0
  98. package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +95 -0
  99. package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +57 -0
  100. package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +77 -0
  101. package/src/skills/coach/tests/index.yaml +29 -0
  102. package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +13 -0
  103. package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +29 -0
  104. package/src/skills/coach/tests/rubrics/evidence-based.md +26 -0
  105. package/src/skills/coach/tests/rubrics/root-cause-first.md +21 -0
  106. package/src/skills/coach/workflows/analyze.md +79 -0
  107. package/src/skills/coach/workflows/analyze.md.legacy +64 -0
  108. package/src/skills/coach/workflows/audit.md +74 -0
  109. package/src/skills/coach/workflows/audit.md.legacy +59 -0
  110. package/src/skills/coach/workflows/create.md +80 -0
  111. package/src/skills/coach/workflows/create.md.legacy +67 -0
  112. package/src/skills/coach/workflows/improve.md +71 -0
  113. package/src/skills/coach/workflows/improve.md.legacy +60 -0
  114. package/src/skills/coach/workflows/research.md +55 -0
  115. package/src/skills/coach/workflows/review.md +52 -0
  116. package/src/skills/coach/workflows/review.md.legacy +48 -0
  117. package/src/skills/coach/workflows/test.md +97 -0
  118. package/src/skills/create-plan/README.md +39 -0
  119. package/src/skills/create-plan/SKILL.md +104 -0
  120. package/src/skills/create-plan/algorithms/risk-assessment.md +73 -0
  121. package/src/skills/create-plan/knowledge/plan-completeness.md +67 -0
  122. package/src/skills/create-plan/knowledge/plan-lifecycle.md +33 -0
  123. package/src/skills/create-plan/knowledge/task-verification-pairs.md +151 -0
  124. package/src/skills/create-plan/scripts/validate-completeness.js +182 -0
  125. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +5 -0
  126. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +39 -0
  127. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +35 -0
  128. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +167 -0
  129. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +5 -0
  130. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +10 -0
  131. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +5 -0
  132. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +26 -0
  133. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +86 -0
  134. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +5 -0
  135. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +11 -0
  136. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +15 -0
  137. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +14 -0
  138. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +119 -0
  139. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +41 -0
  140. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +25 -0
  141. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +30 -0
  142. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +37 -0
  143. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +164 -0
  144. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +3 -0
  145. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +11 -0
  146. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +13 -0
  147. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +44 -0
  148. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +5 -0
  149. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +49 -0
  150. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +6 -0
  151. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +11 -0
  152. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +16 -0
  153. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +116 -0
  154. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +39 -0
  155. package/src/skills/create-plan/tests/index.yaml +25 -0
  156. package/src/skills/create-plan/tests/rubrics/task-granularity.md +21 -0
  157. package/src/skills/create-plan/tests/rubrics/validate-completeness.md +21 -0
  158. package/src/skills/create-plan/workflows/create.md +136 -0
  159. package/src/skills/create-report/README.md +40 -0
  160. package/src/skills/create-report/SKILL.md +73 -0
  161. package/src/skills/create-report/algorithms/metric-calculation.md +93 -0
  162. package/src/skills/create-report/knowledge/report-metrics.md +82 -0
  163. package/src/skills/create-report/scripts/calc-metrics.js +383 -0
  164. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +25 -0
  165. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +26 -0
  166. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +28 -0
  167. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +163 -0
  168. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +4 -0
  169. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +3 -0
  170. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +6 -0
  171. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +8 -0
  172. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +12 -0
  173. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +7 -0
  174. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +12 -0
  175. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +22 -0
  176. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +13 -0
  177. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +115 -0
  178. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +57 -0
  179. package/src/skills/create-report/tests/index.yaml +20 -0
  180. package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +21 -0
  181. package/src/skills/create-report/workflows/standard.md +175 -0
  182. package/src/skills/decompose-gaps/README.md +39 -0
  183. package/src/skills/decompose-gaps/SKILL.md +78 -0
  184. package/src/skills/decompose-gaps/algorithms/scope-check.md +110 -0
  185. package/src/skills/decompose-gaps/knowledge/scope-validation.md +65 -0
  186. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +49 -0
  187. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +56 -0
  188. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +39 -0
  189. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +164 -0
  190. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +25 -0
  191. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +11 -0
  192. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +26 -0
  193. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +19 -0
  194. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +5 -0
  195. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +28 -0
  196. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +23 -0
  197. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +27 -0
  198. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +25 -0
  199. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +116 -0
  200. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +46 -0
  201. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +32 -0
  202. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +20 -0
  203. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +26 -0
  204. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +164 -0
  205. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +7 -0
  206. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +16 -0
  207. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +7 -0
  208. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +5 -0
  209. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +11 -0
  210. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +13 -0
  211. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +13 -0
  212. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +12 -0
  213. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +5 -0
  214. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +116 -0
  215. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +36 -0
  216. package/src/skills/decompose-gaps/tests/index.yaml +25 -0
  217. package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +21 -0
  218. package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +21 -0
  219. package/src/skills/decompose-gaps/workflows/decompose.md +120 -0
  220. package/src/skills/decompose-plan/README.md +43 -0
  221. package/src/skills/decompose-plan/SKILL.md +87 -0
  222. package/src/skills/decompose-plan/algorithms/deduplication.md +101 -0
  223. package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +113 -0
  224. package/src/skills/decompose-plan/knowledge/capabilities.md +44 -0
  225. package/src/skills/decompose-plan/knowledge/human-task-rules.md +67 -0
  226. package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +73 -0
  227. package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +47 -0
  228. package/src/skills/decompose-plan/scripts/check-duplicates.js +323 -0
  229. package/src/skills/decompose-plan/scripts/verify-atomicity.js +408 -0
  230. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +30 -0
  231. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +36 -0
  232. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +37 -0
  233. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +163 -0
  234. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +20 -0
  235. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +17 -0
  236. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +28 -0
  237. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +114 -0
  238. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +137 -0
  239. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +188 -0
  240. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
  241. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +32 -0
  242. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +110 -0
  243. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +115 -0
  244. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +56 -0
  245. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +47 -0
  246. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +54 -0
  247. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +43 -0
  248. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +163 -0
  249. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +15 -0
  250. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +5 -0
  251. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +12 -0
  252. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +34 -0
  253. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +30 -0
  254. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +35 -0
  255. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
  256. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +31 -0
  257. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
  258. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +115 -0
  259. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +44 -0
  260. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +21 -0
  261. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +38 -0
  262. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +30 -0
  263. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +163 -0
  264. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +31 -0
  265. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +35 -0
  266. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +48 -0
  267. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +167 -0
  268. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +62 -0
  269. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +174 -0
  270. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
  271. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
  272. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
  273. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +115 -0
  274. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +42 -0
  275. package/src/skills/decompose-plan/tests/index.yaml +30 -0
  276. package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +21 -0
  277. package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +21 -0
  278. package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +21 -0
  279. package/src/skills/decompose-plan/workflows/decompose.md +272 -0
  280. package/src/skills/deep-research/README.md +36 -0
  281. package/src/skills/deep-research/SKILL.md +106 -0
  282. package/src/skills/deep-research/algorithms/source-scoring.md +63 -0
  283. package/src/skills/deep-research/algorithms/synthesis.md +67 -0
  284. package/src/skills/deep-research/knowledge/data-validation.md +44 -0
  285. package/src/skills/deep-research/knowledge/perplexity-config.md +30 -0
  286. package/src/skills/deep-research/knowledge/research-methodology.md +54 -0
  287. package/src/skills/deep-research/knowledge/source-evaluation.md +33 -0
  288. package/src/skills/deep-research/scripts/perplexity-research.js +315 -0
  289. package/src/skills/deep-research/templates/brief-summary.md +25 -0
  290. package/src/skills/deep-research/templates/research-report.md +76 -0
  291. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +48 -0
  292. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +88 -0
  293. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +56 -0
  294. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +163 -0
  295. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +58 -0
  296. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +249 -0
  297. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +44 -0
  298. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +96 -0
  299. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +56 -0
  300. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +94 -0
  301. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +11 -0
  302. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +1 -0
  303. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +1 -0
  304. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +115 -0
  305. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +58 -0
  306. package/src/skills/deep-research/tests/index.yaml +20 -0
  307. package/src/skills/deep-research/tests/rubrics/self-check-url.md +34 -0
  308. package/src/skills/deep-research/workflows/base-checklist.md +19 -0
  309. package/src/skills/deep-research/workflows/benchmark.md +38 -0
  310. package/src/skills/deep-research/workflows/competitor.md +44 -0
  311. package/src/skills/deep-research/workflows/custom.md +32 -0
  312. package/src/skills/deep-research/workflows/market.md +44 -0
  313. package/src/skills/deep-research/workflows/technology.md +40 -0
  314. package/src/skills/deep-research/workflows/trend.md +40 -0
  315. package/src/skills/execute-task/README.md +44 -0
  316. package/src/skills/execute-task/SKILL.md +292 -0
  317. package/src/skills/execute-task/algorithms/execution-strategy.md +136 -0
  318. package/src/skills/execute-task/knowledge/context-checkpoints.md +75 -0
  319. package/src/skills/execute-task/knowledge/ticket-structure.md +70 -0
  320. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +5 -0
  321. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +5 -0
  322. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +5 -0
  323. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +124 -0
  324. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +4 -0
  325. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +4 -0
  326. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +4 -0
  327. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +4 -0
  328. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +4 -0
  329. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +11 -0
  330. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +89 -0
  331. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +48 -0
  332. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +5 -0
  333. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +6 -0
  334. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +5 -0
  335. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +124 -0
  336. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +4 -0
  337. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +4 -0
  338. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +8 -0
  339. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +9 -0
  340. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +26 -0
  341. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +4 -0
  342. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +89 -0
  343. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +44 -0
  344. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +5 -0
  345. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +5 -0
  346. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +5 -0
  347. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +46 -0
  348. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +37 -0
  349. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +46 -0
  350. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +18 -0
  351. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +16 -0
  352. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +14 -0
  353. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +124 -0
  354. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +5 -0
  355. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +5 -0
  356. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +1 -0
  357. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +8 -0
  358. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +5 -0
  359. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +4 -0
  360. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +89 -0
  361. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +50 -0
  362. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +5 -0
  363. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +5 -0
  364. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +5 -0
  365. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +124 -0
  366. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +15 -0
  367. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +4 -0
  368. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +5 -0
  369. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +11 -0
  370. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +11 -0
  371. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +4 -0
  372. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +89 -0
  373. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +39 -0
  374. package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +41 -0
  375. package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +40 -0
  376. package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +42 -0
  377. package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +41 -0
  378. package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +40 -0
  379. package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +36 -0
  380. package/src/skills/execute-task/tests/index.yaml +39 -0
  381. package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +22 -0
  382. package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +20 -0
  383. package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +21 -0
  384. package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +23 -0
  385. package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +22 -0
  386. package/src/skills/execute-task/workflows/execute.md +104 -0
  387. package/src/skills/manual-testing/README.md +63 -0
  388. package/src/skills/manual-testing/SKILL.md +174 -0
  389. package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +74 -0
  390. package/src/skills/manual-testing/algorithms/bug-severity.md +73 -0
  391. package/src/skills/manual-testing/algorithms/mcp-budget.md +97 -0
  392. package/src/skills/manual-testing/algorithms/test-prioritization.md +69 -0
  393. package/src/skills/manual-testing/knowledge/browser-extension-testing.md +102 -0
  394. package/src/skills/manual-testing/knowledge/browser-tools.md +114 -0
  395. package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +92 -0
  396. package/src/skills/manual-testing/knowledge/desktop-tools-core.md +76 -0
  397. package/src/skills/manual-testing/knowledge/sandbox-advanced.md +83 -0
  398. package/src/skills/manual-testing/knowledge/sandbox-core.md +67 -0
  399. package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +69 -0
  400. package/src/skills/manual-testing/knowledge/test-case-design.md +107 -0
  401. package/src/skills/manual-testing/knowledge/testing-types.md +45 -0
  402. package/src/skills/manual-testing/templates/bug-report.md +52 -0
  403. package/src/skills/manual-testing/templates/test-case.md +34 -0
  404. package/src/skills/manual-testing/templates/test-plan.md +97 -0
  405. package/src/skills/manual-testing/templates/test-session-report.md +56 -0
  406. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +21 -0
  407. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +65 -0
  408. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +35 -0
  409. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +163 -0
  410. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
  411. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +7 -0
  412. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
  413. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +4 -0
  414. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +15 -0
  415. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +8 -0
  416. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +5 -0
  417. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +7 -0
  418. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +7 -0
  419. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +114 -0
  420. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +38 -0
  421. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +47 -0
  422. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +39 -0
  423. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +40 -0
  424. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +163 -0
  425. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +19 -0
  426. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +15 -0
  427. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +24 -0
  428. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +19 -0
  429. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +13 -0
  430. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +18 -0
  431. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +21 -0
  432. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +15 -0
  433. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +14 -0
  434. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +114 -0
  435. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +37 -0
  436. package/src/skills/manual-testing/tests/index.yaml +25 -0
  437. package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +140 -0
  438. package/src/skills/manual-testing/tests/last-run-tc002.log +1 -0
  439. package/src/skills/manual-testing/tests/last-run.log +1469 -0
  440. package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +20 -0
  441. package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +21 -0
  442. package/src/skills/manual-testing/workflows/acceptance.md +80 -0
  443. package/src/skills/manual-testing/workflows/exploratory.md +84 -0
  444. package/src/skills/manual-testing/workflows/regression.md +76 -0
  445. package/src/skills/manual-testing/workflows/smoke.md +109 -0
  446. package/src/skills/manual-testing/workflows/test-plan.md +75 -0
  447. package/src/skills/review-result/README.md +59 -0
  448. package/src/skills/review-result/SKILL.md +138 -0
  449. package/src/skills/review-result/algorithms/verification.md +112 -0
  450. package/src/skills/review-result/knowledge/dod-patterns.md +115 -0
  451. package/src/skills/review-result/scripts/verify-artifacts.js +354 -0
  452. package/src/skills/review-result/templates/verdict.md +153 -0
  453. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +22 -0
  454. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +7 -0
  455. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +21 -0
  456. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +6 -0
  457. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +6 -0
  458. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +18 -0
  459. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +164 -0
  460. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +5 -0
  461. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +7 -0
  462. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +6 -0
  463. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +49 -0
  464. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +28 -0
  465. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +37 -0
  466. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +22 -0
  467. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +13 -0
  468. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +21 -0
  469. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +116 -0
  470. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +51 -0
  471. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +23 -0
  472. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +22 -0
  473. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +28 -0
  474. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +4 -0
  475. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +36 -0
  476. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +4 -0
  477. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +163 -0
  478. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +4 -0
  479. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
  480. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +4 -0
  481. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +39 -0
  482. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +25 -0
  483. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +32 -0
  484. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +34 -0
  485. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +8 -0
  486. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +23 -0
  487. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +115 -0
  488. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +39 -0
  489. package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +43 -0
  490. package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +46 -0
  491. package/src/skills/review-result/tests/index.yaml +25 -0
  492. package/src/skills/review-result/tests/rubrics/path-line-suffix.md +19 -0
  493. package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +19 -0
  494. package/src/skills/review-result/workflows/review.md +209 -0
@@ -0,0 +1,141 @@
1
+ # Авторство тест-кейсов регрессионных тестов скилов
2
+
3
+ Руководство для коуча по написанию тест-кейсов при работе с регрессионными тестами скилов.
4
+
5
+ ---
6
+
7
+ ## 1. Дерево выбора слоя (L0 / L1 / L2)
8
+
9
+ Выбери слой по первому подходящему условию:
10
+
11
+ | Слой | Название | Когда использовать |
12
+ |------|----------|-------------------|
13
+ | **L0** | static | **Всегда** — если нужно проверить, что агент записал конкретный инвариант в файл (наличие раздела, запрета, поля). Не зависит от модели. |
14
+ | **L1** | deterministic | Когда у output есть наблюдаемая сигнатура: структура YAML/JSON, наличие обязательных ключей, формат ID. Подходит, если ответ детерминирован при заданном входе. |
15
+ | **L2** | rubric | Когда нужно проверить **принцип рассуждения** агента: правильно ли выбрана root cause, корректно ли применён принцип. Оценивается поведение, а не текст. |
16
+
17
+ Правило: если сомневаешься между L0 и L1 — выбирай L0. L2 только тогда, когда L0/L1 физически не применимы.
18
+
19
+ ---
20
+
21
+ ## 2. Правила написания static-anchor
22
+
23
+ **Семантический инвариант, не дословный текст:**
24
+
25
+ - Anchor должен выражать *правило*, нарушение которого тест должен поймать.
26
+ - Anchor **отвергает** любое поведение, нарушающее правило, а не просто проверяет «строка существует в файле».
27
+ - Один anchor — одно правило. Несколько правил → несколько anchor'ов.
28
+
29
+ **Пример плохого anchor:** `"git commit"` — существует в любом упоминании темы.
30
+
31
+ **Пример хорошего anchor:** `"коуч не выполняет git commit ни при каких условиях"` — семантически проверяет запрет, а не присутствие слова.
32
+
33
+ ---
34
+
35
+ ## 3. Минимизация фикстуры
36
+
37
+ - Фикстура — реальный артефакт ±20 строк вокруг инцидента.
38
+ - **Не включай** в фикстуру весь лог или полный тикет.
39
+ - Критерий минимума: убери строку → тест перестаёт проверять нужное поведение? Если нет — строка лишняя.
40
+ - Для log-фикстур: вырезай только те шаги, где произошёл инцидент + 5 строк контекста до и после.
41
+
42
+ ---
43
+
44
+ ## 4. Формулировка rubric-критерия
45
+
46
+ Rubric проверяет **процесс рассуждения**, а не конкретный текст ответа:
47
+
48
+ - Формулируй как: «Агент должен [определить / выбрать / проверить] [что именно] [по какому признаку]».
49
+ - Не указывай конкретные слова, которые агент должен произнести — указывай логический шаг.
50
+ - Rubric должен оставаться валидным при переформулировке инструкций скила.
51
+
52
+ **Пример плохого rubric:** «Ответ содержит слово "root cause"».
53
+
54
+ **Пример хорошего rubric:** «Агент идентифицировал физический скил-источник артефакта, а не предметный владелец».
55
+
56
+ ---
57
+
58
+ ## 5. Выбор `target_agents[]` на уровне скила
59
+
60
+ Заполняется автором-коучем вручную при первой настройке, сверяясь с `pipeline.yaml` проекта.
61
+
62
+ Перечислить как минимум все модели, на которых скил реально гоняется в пайплайне:
63
+ - основная модель скила,
64
+ - fallback-модель (если задана),
65
+ - модели из секций `agent_by_type` и `agent_by_attempt`.
66
+
67
+ **Дополнительные модели для сравнения разрешены.** `target_agents[]` может включать модели сверх pipeline-набора — они выступают как «контрольная группа» для выявления регрессий формулировок скила на более широкой выборке. Такие модели помечаются комментарием (см. пример в `coach/tests/index.yaml`). Наличие «лишних» моделей — не ошибка и не повод сокращать список.
68
+
69
+ Заполняется один раз в `tests/index.yaml` и наследуется всеми тест-кейсами скила. Не дублировать в каждом кейсе отдельно.
70
+
71
+ **⛔ Сокращать `target_agents[]` (на уровне `index.yaml` или через per-case override) коуч не имеет права без явного согласия стейкхолдера.** Это относится к любому удалению модели из списка, включая случай «модель не используется в pipeline.yaml». Обоснование: `target_agents[]` — это заявленная сфера регрессии скила, а не техническая конфигурация; сокращение сужает покрытие тестов. См. подробный запрет ниже в секции «Override на уровне кейса».
72
+
73
+ **Сверка с pipeline.yaml:**
74
+
75
+ Runner автоматически проверяет каждый agent-id из `target_agents[]` против списка `agents` в `pipeline.yaml`. Если агент не найден — fail-fast с сообщением:
76
+
77
+ ```
78
+ Agent 'invalid-agent-id' from target_agents[] not found in pipeline.yaml → agents[]
79
+ ```
80
+
81
+ Порядок резолва `pipeline.yaml`:
82
+ 1. Приоритет: `<project_root>/.workflow/config/pipeline.yaml` (через `find-root.mjs`)
83
+ 2. Fallback: `<package_root>/configs/pipeline.yaml`
84
+
85
+ Путь к используемому файлу логируется при старте runner'а.
86
+
87
+ **Override на уровне кейса:**
88
+
89
+ Точечный override допустим — если конкретный тест-кейс требует другую модель, укажи `execution.target_agents[]` в файле кейса. Это переопределит значение из `index.yaml` для данного кейса.
90
+
91
+ **⛔ Override target_agents — это решение стейкхолдера, не коуча.** Убирать модель из списка или сужать его — **изменение сферы тестирования**, не техническая правка. Коуч **не имеет права** проактивно применять per-case override target_agents при провале модели на тесте, даже если:
92
+ - модель выдаёт нестабильные/обрезанные ответы;
93
+ - есть прецедент в бэклоге, где похожий override уже применялся;
94
+ - формально «модель физически не может пройти тест».
95
+
96
+ Все эти случаи — повод **явно согласовать** с стейкхолдером в отдельном сообщении, показав: (а) диагностику, что именно модель не может сделать, (б) три варианта действий (оставить как есть с honest baseline / исследовать глубже / исключить), (в) дождаться выбора. Применение override без явного согласия — перекладывание решения стейкхолдера на коуча и нарушение **границ компетенции** (см. SKILL.md, раздел «Границы компетенции»).
97
+
98
+ **Антипаттерн:** «в прецеденте X модель была исключена, применяю тот же паттерн молча». Прецедент — это не карт-бланш. Проверь: стейкхолдер явно запросил исключение в прецеденте или коуч предложил и получил согласие? Если второе — всегда повторяй согласование для нового случая, даже если кажется аналогичным.
99
+
100
+ **CLI-флаги для запуска:**
101
+
102
+ - `--agent <id>` — прогон только на конкретной модели из `target_agents[]`
103
+ - `--primary-only` — только первая модель из `target_agents[]` (без fallback)
104
+
105
+ ---
106
+
107
+ ## 6. Сравнение прогонов через git
108
+
109
+ Для отслеживания регрессий между прогонами используй стандартные git-инструменты:
110
+
111
+ | Задача | Команда |
112
+ |--------|---------|
113
+ | Посмотреть изменения в мета-файле | `git diff current/meta.json` |
114
+ | История прогонов | `git log current/meta.json` |
115
+ | Кто изменил конкретную строку | `git blame current/meta.json` |
116
+
117
+ Никакой специальной инфраструктуры не требуется — `current/meta.json` версионируется как обычный файл.
118
+
119
+ ---
120
+
121
+ ## 7. Кто делает commit
122
+
123
+ **⛔ Коуч не выполняет `git add`, `git commit`, `git push`, `git checkout`, `git reset` ни при каких условиях.**
124
+
125
+ Коммит `current/` делает **исключительно пользователь**.
126
+
127
+ Роль коуча после прогона тестов:
128
+ 1. Сообщить verdict runner'а (pass / fail / error).
129
+ 2. Перечислить затронутые файлы.
130
+ 3. Остановиться — дальнейшие git-операции выполняет пользователь.
131
+
132
+ ---
133
+
134
+ ## 8. Антипаттерны авторства
135
+
136
+ | Антипаттерн | Почему плохо | Как правильно |
137
+ |-------------|-------------|---------------|
138
+ | Тестировать дословную формулировку инструкции | Хрупко: переформулировка инструкции ломает тест, не меняя поведение | Тестировать семантический инвариант правила |
139
+ | Over-specifying expected output | Привязка к конкретным словам делает тест зависимым от стиля модели | Проверять принцип, а не точный текст |
140
+ | Фикстура = полный лог/тикет | Тест медленный, нечитаемый, хрупкий к несвязанным изменениям | Минимальная фикстура ±20 строк вокруг инцидента |
141
+ | L2 вместо L0 для проверки файла | L2 дороже и недетерминирован; если можно проверить файл — используй L0 | Выбирай наименьший подходящий слой |
@@ -0,0 +1,39 @@
1
+ # Шаблон: Отчёт аудита скила
2
+
3
+ ```markdown
4
+ # Аудит скила: {skill-name}
5
+
6
+ **Дата:** {YYYY-MM-DD}
7
+ **Тикет:** {COACH-NNN}
8
+
9
+ ## Общая оценка
10
+
11
+ | Категория | Балл | Макс |
12
+ |-----------|------|------|
13
+ | Структура | {N} | 20 |
14
+ | Полнота SKILL.md | {N} | 20 |
15
+ | Качество воркфлоу | {N} | 20 |
16
+ | Качество знаний и алгоритмов | {N} | 20 |
17
+ | Связность и консистентность | {N} | 20 |
18
+ | **Итого** | **{N}** | **100** |
19
+
20
+ **Оценка:** {EXCELLENT / GOOD / NEEDS_WORK / POOR}
21
+
22
+ ## Найденные проблемы
23
+
24
+ | # | Приоритет | Файл | Проблема | Рекомендация |
25
+ |---|-----------|------|----------|-------------|
26
+ | 1 | {CRITICAL/HIGH/MEDIUM/LOW} | {path} | {описание} | {что сделать} |
27
+
28
+ ## Антипаттерны / Gap-анализ
29
+
30
+ | # | Тип | Описание | Где / Приоритет |
31
+ |---|-----|----------|----------------|
32
+ | 1 | {Антипаттерн/Gap} | {описание} | {файл:секция / приоритет} |
33
+
34
+ ## Сильные стороны (топ-3) / План улучшений
35
+
36
+ | # | Сильная сторона | Улучшение | Приоритет | Трудозатраты |
37
+ |---|----------------|-----------|-----------|-------------|
38
+ | 1 | {что хорошо} | {что сделать} | {приоритет} | {быстро/средне/долго} |
39
+ ```
@@ -0,0 +1,14 @@
1
+ version: 2
2
+ last_updated: ""
3
+
4
+ # Защита от повторного анализа тикетов/логов, не приведших к правке скила.
5
+ # (Те, что привели к правке, имеют тест-кейс в src/skills/*/tests/cases/ — туда и смотрим.)
6
+ analyzed_tickets: []
7
+
8
+ # Snapshot scores скилов на момент аудита (trajectory во времени).
9
+ audited_skills: []
10
+
11
+ # История правок скилов — в git, не в этом файле:
12
+ # git log -- src/skills/<name>/ # все правки скила
13
+ # git log -- src/skills/<name>/tests/cases/ # тест-кейсы
14
+ # git log --follow -- src/skills/<name>/SKILL.md # история файла
@@ -0,0 +1,10 @@
1
+ # Шаблон инициализации бэклога коуча
2
+ # Скопировать в .workflow/coach-backlog.yaml при первом запуске
3
+ version: 1
4
+ last_updated: ""
5
+
6
+ analyzed_tickets: []
7
+
8
+ applied_changes: []
9
+
10
+ audited_skills: []
@@ -0,0 +1,42 @@
1
+ # Шаблон: План улучшений скила
2
+
3
+ ```markdown
4
+ # План улучшений: {skill-name}
5
+
6
+ **Дата:** {YYYY-MM-DD}
7
+ **Тикет:** {COACH-NNN}
8
+ **Основание:** {ссылка на аудит / анализ / запрос}
9
+
10
+ ## Цель
11
+
12
+ {Что хотим улучшить и почему — 1-2 предложения.}
13
+
14
+ ## Изменения
15
+
16
+ | # | Название | Приоритет | Файлы | Проблема → Решение | Ожидаемый эффект |
17
+ |---|----------|-----------|-------|--------------------|-----------------|
18
+ | 1 | {название} | {CRITICAL/HIGH/MEDIUM/LOW} | {файлы} | {проблема → решение} | {эффект} |
19
+
20
+ ## Порядок выполнения
21
+
22
+ {Последовательность: что делать первым, какие зависимости.}
23
+
24
+ 1. {Шаг 1} — зависит от: нет
25
+ 2. {Шаг 2} — зависит от: шаг 1
26
+ ...
27
+
28
+ ## Критерии успеха
29
+
30
+ - [ ] {Критерий 1 — как проверить что улучшение работает}
31
+ - [ ] {Критерий 2}
32
+ - [ ] Все ссылки в SKILL.md валидны
33
+ - [ ] Scoring скила вырос на {N} баллов
34
+
35
+ ## Источники
36
+
37
+ {Если использовались внешние знания — ссылки с описанием.}
38
+
39
+ | Источник | Что взято | Дата |
40
+ |----------|----------|------|
41
+ | {URL/название} | {что именно} | {YYYY-MM-DD} |
42
+ ```
@@ -0,0 +1,95 @@
1
+ # Шаблон: Структура нового скила
2
+
3
+ ## SKILL.md
4
+
5
+ ```markdown
6
+ ---
7
+ name: {skill-name}
8
+ description: >
9
+ {2-3 предложения: кто агент, что делает, в каком контексте}
10
+ ticket_prefix: {PREFIX}
11
+ ---
12
+
13
+ # {Skill Name} — Agent Skill
14
+
15
+ ## Роль
16
+
17
+ {Роль, контекст, ограничения}
18
+
19
+ **Ты делаешь:** {перечисление}
20
+ **Ты НЕ делаешь:** {перечисление → куда направить}
21
+
22
+ ## Маршрутизация тикетов {PREFIX}-*
23
+
24
+ | Тип | Триггеры | Воркфлоу |
25
+ |-----|----------|----------|
26
+ | **TYPE1** | «ключевые слова» | → `workflows/type1.md` |
27
+
28
+ ## Загрузка знаний
29
+
30
+ | Модуль | Когда загружать |
31
+ |--------|----------------|
32
+ | `knowledge/module.md` | Условие |
33
+
34
+ ## Загрузка алгоритмов
35
+
36
+ | Алгоритм | Когда загружать |
37
+ |----------|----------------|
38
+ | `algorithms/algo.md` | Условие |
39
+
40
+ ## Шаблоны вывода
41
+
42
+ | Шаблон | Когда использовать |
43
+ |--------|-------------------|
44
+ | `templates/template.md` | Условие |
45
+
46
+ ## Принципы
47
+
48
+ 1. **Принцип** — описание.
49
+ {3-7 принципов}
50
+
51
+ ## Формат вывода
52
+
53
+ - Язык, стиль, конкретность
54
+
55
+ ## Границы компетенции
56
+
57
+ - **Зона X** → куда направить
58
+ ```
59
+
60
+ ## Workflow файл
61
+
62
+ ```markdown
63
+ # Воркфлоу: {TYPE}
64
+
65
+ ## Алгоритм
66
+ ### 1. {Действие}
67
+ {Пояснение, ссылки на knowledge/algorithms}
68
+ ### N. Валидация
69
+ - [ ] Критерий 1
70
+ ```
71
+
72
+ ## Knowledge файл
73
+
74
+ ```markdown
75
+ # {Модуль знаний}
76
+
77
+ ## {Категория}
78
+ | Параметр | Значение | Описание |
79
+ |----------|----------|----------|
80
+ <!-- РАСШИРЕНИЕ: добавляй {что} ниже -->
81
+ ```
82
+
83
+ ## Algorithm файл
84
+
85
+ ```markdown
86
+ # Алгоритм: {Название}
87
+ ## Вход
88
+ {Входные данные}
89
+ ## Алгоритм
90
+ ### 1. {Шаг}
91
+ ## Выход
92
+ {Результат}
93
+ ## Пример
94
+ {Конкретный пример}
95
+ ```
@@ -0,0 +1,58 @@
1
+ Тест пройден. Relevant case TC-DECOMPOSE-PLAN-004: **passed**.
2
+
3
+ **Verdict: `no_baseline_failures`** (режим no-baseline — история отсутствует, это первый прогон). Все 4 статических assertion прошли.
4
+
5
+ ---
6
+
7
+ ## Итог анализа пайплайна PLAN-003
8
+
9
+ ### Findings
10
+
11
+ | # | Приоритет | Проблема | Статус |
12
+ |---|-----------|---------|--------|
13
+ | 1 | CRITICAL | ID-коллизия IMPL-002/IMPL-003: заархивированы из PLAN-002, пересозданы для PLAN-003 | ✅ Fix в пайплайне (`allocate-ticket-ids`) |
14
+ | 2 | CRITICAL | STOP-GATE 9.B нарушен: декомпозитор назначил ID «из головы» при отсутствии `id_ranges_json` | ✅ STOP-GATE уже добавлен в `decompose.md` |
15
+ | 3 | HIGH | `ids_allocated_from` отсутствует в RESULT | ✅ Требование зафиксировано в `decompose.md` |
16
+ | 4 | MEDIUM | STOP-GATE не определял явный формат вывода ошибки — пайплайн не мог отличить infra-ошибку от нормального завершения | **CHG-2026-04-19-001: добавлен `status: infra_error`** |
17
+
18
+ ### Ключевой паттерн коллизии
19
+
20
+ ```
21
+ 16:36:02 auto-correction: IMPL-002 (PLAN-002) → archive/
22
+ 16:36:02 auto-correction: IMPL-003 (PLAN-002) → archive/
23
+ [check-plan-decomposition → decompose-plan БЕЗ allocate-ticket-ids]
24
+ 16:40:31 decompose-plan создаёт IMPL-002 для PLAN-003 → backlog/
25
+ 16:40:31 decompose-plan создаёт IMPL-003 для PLAN-003 → backlog/
26
+ ↑ tasks_completed в pick-next-task.js находит старый IMPL-002 в archive/
27
+ и ошибочно считает зависимость QA-001 выполненной
28
+ ```
29
+
30
+ ### Правка скила (CHG-2026-04-19-001)
31
+
32
+ **Файл:** `skills/decompose-plan/workflows/decompose.md`, шаг 9.B пункт 3
33
+
34
+ **Добавлен явный формат вывода при срабатывании STOP-GATE:**
35
+ ```
36
+ ---RESULT---
37
+ status: infra_error
38
+ error: <описание: что отсутствует или некорректно в id_ranges_json>
39
+ ---RESULT---
40
+ ```
41
+
42
+ **Тест:** `TC-DECOMPOSE-PLAN-004` — verdict `no_baseline_failures`, relevant case passed.
43
+
44
+ ### Рекомендуемый тикет (вне scope коуча)
45
+
46
+ Добавить в `pipeline.yaml` обработчик `infra_error` для стадии `decompose-plan`:
47
+ ```yaml
48
+ decompose-plan:
49
+ goto:
50
+ default: check-atomicity-limit
51
+ infra_error: check-conditions # ← добавить
52
+ ```
53
+
54
+ **Затронутые файлы:**
55
+ - `D:/Dev/workflowAi/src/skills/decompose-plan/workflows/decompose.md`
56
+ - `D:/Dev/workflowAi/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-stopgate-infra-error-format.yaml` (новый)
57
+ - `D:/Dev/workflowAi/src/skills/decompose-plan/tests/index.yaml`
58
+ - `.workflow/coach-backlog.yaml`
@@ -0,0 +1,65 @@
1
+ ---
2
+
3
+ ## Итоговый отчёт findings
4
+
5
+ ### Временны́е диаграммы повторяющихся ID
6
+
7
+ **IMPL-002** (коллизия):
8
+ ```
9
+ 16:36:02 ARCHIVE tickets/done/IMPL-002.md → tickets/archive/IMPL-002.md
10
+ (pick-next-task auto-correction: PLAN-002 archived)
11
+ 16:40:31 CREATE tickets/backlog/IMPL-002.md
12
+ (decompose-plan: "Конфиг tickets/**: protected_files + trusted_stages")
13
+ ⚠️ КОЛЛИЗИЯ: tickets/archive/IMPL-002.md и tickets/backlog/IMPL-002.md
14
+ ```
15
+
16
+ **IMPL-003** (коллизия):
17
+ ```
18
+ 16:36:02 ARCHIVE tickets/done/IMPL-003.md → tickets/archive/IMPL-003.md
19
+ (pick-next-task auto-correction: PLAN-002 archived)
20
+ 16:40:31 CREATE tickets/backlog/IMPL-003.md
21
+ (decompose-plan: "Дедупликация в pick-next-task")
22
+ ⚠️ КОЛЛИЗИЯ: tickets/archive/IMPL-003.md и tickets/backlog/IMPL-003.md
23
+ ```
24
+
25
+ ---
26
+
27
+ ### Findings (приоритизированы)
28
+
29
+ | # | Приоритет | Finding |
30
+ |---|-----------|---------|
31
+ | F1 | CRITICAL | **ID коллизия.** IMPL-002 и IMPL-003 существуют одновременно в `archive/` и `backlog/`. Нарушена ссылочная целостность: `check-conditions` считает тикет "завершённым" (archive), пока новый тикет с тем же ID активен в backlog. |
32
+ | F2 | CRITICAL | **Отсутствие `allocate-ticket-ids` в пайплайне PLAN-003.** GOTO: `check-plan-decomposition → decompose-plan` напрямую, без выделения `id_ranges_json`. Агент-декомпозитор запущен без источника нумерации. |
33
+ | F3 | CRITICAL | **Нарушение stop-gate.** Старая версия `decompose-plan` не остановилась при отсутствии `id_ranges_json`; применила fallback (нумерация с 001). Признак: `ids_allocated_from` отсутствует в `---RESULT---`. |
34
+ | F4 | HIGH | **`decompose-gaps` использует агент-driven ID-генерацию без hard stop-gate** — тот же класс риска. Инструкция «найди все файлы... прибавь 1» без ⛔-нотации могла быть проигнорирована fallback-агентом так же, как в PLAN-003. |
35
+
36
+ **Root cause chain:**
37
+ ```
38
+ Нет allocate-ticket-ids в пайплайне → id_ranges_json = absent
39
+ → Агент применил fallback (нумерация с 001)
40
+ → Пост-валидация уникальности не выполнена
41
+ → ID IMPL-002, IMPL-003 коллизируют с archive/
42
+ ```
43
+
44
+ ---
45
+
46
+ ### Статус исправлений
47
+
48
+ | Компонент | Статус |
49
+ |-----------|--------|
50
+ | `pipeline.yaml`: стадия `allocate-ticket-ids` | ✅ Уже существует (добавлена по итогам инцидента) |
51
+ | `decompose-plan/workflows/decompose.md`: stop-gate 9.B | ✅ Уже существует + CHG-2026-04-19-001/002 применены ранее |
52
+ | `decompose-gaps/workflows/decompose.md`: СТОП-ГЕЙТ | ✅ **CHG-2026-04-19-003 применён в этой сессии** |
53
+
54
+ ### Применённое изменение (CHG-2026-04-19-003)
55
+
56
+ **Файл:** `D:\Dev\workflowAi\src\skills\decompose-gaps\workflows\decompose.md`
57
+
58
+ **Изменения:**
59
+ 1. Шаг 9 — определение следующего ID: заменена формулировка «найди все файлы... во всех папках» на явный Glob-вызов с подчёркиванием `archive/` и `done/`; добавлено `⛔ Не угадывай номер`
60
+ 2. Шаг 9 — добавлен блок `⛔ СТОП-ГЕЙТ: проверка уникальности ID` с антипаттерном
61
+ 3. Чеклист завершения — добавлен пункт: `Для каждого созданного тикета выполнен СТОП-ГЕЙТ проверки уникальности ID`
62
+
63
+ ### Тест
64
+
65
+ Воркфлоу `workflows/test.md` имеет статус **DRAFT (не активирован)**. Существующий тест `TC-DECOMPOSE-GAPS-002` уже покрывает glob-before-write поведение (проверяет обнаружение файла в `ready/`). Изменение усиливает инструкцию, не меняя требуемое поведение — регрессии не ожидается.
@@ -0,0 +1,58 @@
1
+ Тест прошёл. Финальный вывод:
2
+
3
+ ---
4
+
5
+ ## Результат анализа
6
+
7
+ ### Временны́е диаграммы — ID с коллизиями
8
+
9
+ **IMPL-002:**
10
+ | 16:36:02 | done → archive (PLAN-002 archived) | pick-next-task auto-correction |
11
+ | 16:40:31 | **CREATED NEW** для PLAN-003 | decompose-plan |
12
+ → **Коллизия**: два разных тикета с одним ID в разных планах.
13
+
14
+ **IMPL-003:**
15
+ | 16:36:02 | done → archive (PLAN-002 archived) | pick-next-task auto-correction |
16
+ | 16:40:31 | **CREATED NEW** для PLAN-003 | decompose-plan |
17
+ → **Коллизия**.
18
+
19
+ **Ключевое доказательство из лога:** контекст, переданный в `decompose-plan` на шаге 4, содержал только `plan_id` и `plan_file`. `id_ranges_json` — отсутствует. Стадии `allocate-ticket-ids` в пайплайне на тот момент не было.
20
+
21
+ ---
22
+
23
+ ### Findings
24
+
25
+ | # | Severity | Описание | Статус |
26
+ |---|----------|---------|--------|
27
+ | F1 | CRITICAL | Стадия `allocate-ticket-ids` отсутствовала → `decompose-plan` не получил `id_ranges_json` → нумерация с 001 → коллизия с архивными IMPL-002, IMPL-003 | **Уже исправлено** (pipeline.yaml + шаг 9.B decompose.md) |
28
+ | F2 | CRITICAL | Агент не остановился при отсутствии `id_ranges_json` (нарушение шаг 9.B) + output без `ids_allocated_from` | **Уже исправлено** (стоп-гейт 9.B, инцидент 2026-04-08/PLAN-008) |
29
+ | F3 | HIGH | **TC-DECOMPOSE-PLAN-002 инвертирован:** assertion `output_contains_all:["get-next-id"]` проваливал правильно работающего агента | **ИСПРАВЛЕНО CHG-079** |
30
+ | F4 | MEDIUM | `verify-atomicity.js` не проверяет наличие `ids_allocated_from` в выводе декомпозитора — нет машинного гейта | Зафиксировано, инфраструктура |
31
+
32
+ ---
33
+
34
+ ### CHG-079: правка TC-DECOMPOSE-PLAN-002
35
+
36
+ **Проблема:** тест тестировал старый контракт (агент *должен* вызывать `get-next-id.js`), тогда как с момента введения `allocate-ticket-ids` стадии контракт противоположен (агент *не должен* вызывать скрипт — получает готовые диапазоны через `id_ranges_json`).
37
+
38
+ **Изменения:**
39
+ - Заменён `output_contains_all: ["get-next-id"]` → `output_contains_all: ["ids_allocated_from"]`
40
+ - Заменены static assertions: проверяют `id_ranges_json`, `не вызывает.*get-next-id`, `ids_allocated_from`
41
+ - Добавлен `output_does_not_contain` на прямой вызов скрипта
42
+ - Обновлён сценарий: теперь предоставляет `id_ranges_json` на входе + минимальный план
43
+
44
+ ---
45
+
46
+ ### Verdict теста
47
+
48
+ ```
49
+ status: passed
50
+ skill: decompose-plan
51
+ total: 1
52
+ current_run.passed: 1
53
+ verdict: no_baseline_failures
54
+ ```
55
+
56
+ **Затронутые файлы:**
57
+ - `src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml`
58
+ - `src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json`