workflow-ai 1.0.63 → 1.0.65

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 (576) hide show
  1. package/README.md +239 -145
  2. package/configs/agent-health-rules.yaml +64 -0
  3. package/configs/config.yaml +134 -0
  4. package/configs/pipeline.yaml +901 -0
  5. package/configs/ticket-movement-rules.yaml +80 -0
  6. package/package.json +1 -1
  7. package/src/global-dir.mjs +25 -1
  8. package/src/init.mjs +20 -3
  9. package/src/lib/agent-health-registry.mjs +245 -0
  10. package/src/lib/artifact-snapshot.mjs +233 -0
  11. package/src/lib/error-classifier.mjs +274 -0
  12. package/src/lib/test-error-classifier.mjs +60 -0
  13. package/src/lib/test-extends.mjs +58 -0
  14. package/src/lib/test-version.mjs +21 -0
  15. package/src/scripts/move-to-review.js +5 -7
  16. package/src/scripts/reset-agent-health.js +62 -0
  17. package/src/scripts/run-skill-tests.js +348 -136
  18. package/src/skills/analyze-report/README.md +44 -0
  19. package/src/skills/analyze-report/SKILL.md +121 -0
  20. package/src/skills/analyze-report/algorithms/progress-assessment.md +108 -0
  21. package/src/skills/analyze-report/knowledge/analysis-frameworks.md +66 -0
  22. package/src/skills/analyze-report/knowledge/report-structure.md +61 -0
  23. package/src/skills/analyze-report/scripts/calc-plan-metrics.js +234 -0
  24. package/src/skills/analyze-report/templates/analysis-report.md +80 -0
  25. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +69 -0
  26. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +103 -0
  27. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +99 -0
  28. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +163 -0
  29. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +89 -0
  30. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +88 -0
  31. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +100 -0
  32. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +77 -0
  33. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +64 -0
  34. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +110 -0
  35. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +74 -0
  36. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +38 -0
  37. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +61 -0
  38. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +115 -0
  39. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +60 -0
  40. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +90 -0
  41. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +89 -0
  42. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +77 -0
  43. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +163 -0
  44. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +84 -0
  45. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +77 -0
  46. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +89 -0
  47. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +103 -0
  48. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +103 -0
  49. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +103 -0
  50. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +93 -0
  51. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +93 -0
  52. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +86 -0
  53. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +115 -0
  54. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +44 -0
  55. package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +27 -0
  56. package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +32 -0
  57. package/src/skills/analyze-report/tests/index.yaml +25 -0
  58. package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +22 -0
  59. package/src/skills/analyze-report/tests/rubrics/result-block-format.md +22 -0
  60. package/src/skills/analyze-report/workflows/progress.md +158 -0
  61. package/src/skills/analyze-report/workflows/retrospective.md +143 -0
  62. package/src/skills/coach/README.md +43 -0
  63. package/src/skills/coach/SKILL.md +167 -0
  64. package/src/skills/coach/SKILL.md.legacy +157 -0
  65. package/src/skills/coach/algorithms/gap-analysis.md +69 -0
  66. package/src/skills/coach/algorithms/improvement-prioritization.md +62 -0
  67. package/src/skills/coach/algorithms/skill-scoring.md +80 -0
  68. package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +11 -0
  69. package/src/skills/coach/knowledge/backlog-management.md +67 -0
  70. package/src/skills/coach/knowledge/backlog-management.md.legacy +90 -0
  71. package/src/skills/coach/knowledge/common-antipatterns.md +76 -0
  72. package/src/skills/coach/knowledge/prompt-engineering.md +45 -0
  73. package/src/skills/coach/knowledge/shared-knowledge-guide.md +44 -0
  74. package/src/skills/coach/knowledge/skill-anatomy.md +49 -0
  75. package/src/skills/coach/knowledge/test-authorship.md +141 -0
  76. package/src/skills/coach/templates/audit-report.md +39 -0
  77. package/src/skills/coach/templates/coach-backlog-init.yaml +14 -0
  78. package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +10 -0
  79. package/src/skills/coach/templates/improvement-plan.md +42 -0
  80. package/src/skills/coach/templates/new-skill.md +95 -0
  81. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +58 -0
  82. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +65 -0
  83. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +58 -0
  84. package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +151 -0
  85. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +46 -0
  86. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
  87. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +75 -0
  88. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +81 -0
  89. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +101 -0
  90. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +91 -0
  91. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +48 -0
  92. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +30 -0
  93. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +55 -0
  94. package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +94 -0
  95. package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +53 -0
  96. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +46 -0
  97. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +50 -0
  98. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +48 -0
  99. package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +151 -0
  100. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
  101. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +37 -0
  102. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +30 -0
  103. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +23 -0
  104. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +29 -0
  105. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +35 -0
  106. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +13 -0
  107. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +19 -0
  108. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +33 -0
  109. package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +94 -0
  110. package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +57 -0
  111. package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +77 -0
  112. package/src/skills/coach/tests/index.yaml +29 -0
  113. package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +13 -0
  114. package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +29 -0
  115. package/src/skills/coach/tests/rubrics/evidence-based.md +26 -0
  116. package/src/skills/coach/tests/rubrics/root-cause-first.md +21 -0
  117. package/src/skills/coach/workflows/analyze.md +79 -0
  118. package/src/skills/coach/workflows/analyze.md.legacy +64 -0
  119. package/src/skills/coach/workflows/audit.md +74 -0
  120. package/src/skills/coach/workflows/audit.md.legacy +59 -0
  121. package/src/skills/coach/workflows/create.md +80 -0
  122. package/src/skills/coach/workflows/create.md.legacy +67 -0
  123. package/src/skills/coach/workflows/improve.md +71 -0
  124. package/src/skills/coach/workflows/improve.md.legacy +60 -0
  125. package/src/skills/coach/workflows/research.md +55 -0
  126. package/src/skills/coach/workflows/review.md +52 -0
  127. package/src/skills/coach/workflows/review.md.legacy +48 -0
  128. package/src/skills/coach/workflows/test.md +97 -0
  129. package/src/skills/create-plan/README.md +39 -0
  130. package/src/skills/create-plan/SKILL.md +104 -0
  131. package/src/skills/create-plan/algorithms/risk-assessment.md +73 -0
  132. package/src/skills/create-plan/knowledge/plan-completeness.md +67 -0
  133. package/src/skills/create-plan/knowledge/plan-lifecycle.md +33 -0
  134. package/src/skills/create-plan/knowledge/task-verification-pairs.md +151 -0
  135. package/src/skills/create-plan/scripts/validate-completeness.js +182 -0
  136. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +5 -0
  137. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +39 -0
  138. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +35 -0
  139. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +167 -0
  140. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +5 -0
  141. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +10 -0
  142. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +5 -0
  143. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +26 -0
  144. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +86 -0
  145. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +5 -0
  146. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +11 -0
  147. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +15 -0
  148. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +14 -0
  149. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +119 -0
  150. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +41 -0
  151. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +25 -0
  152. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +30 -0
  153. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +37 -0
  154. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +164 -0
  155. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +3 -0
  156. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +11 -0
  157. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +13 -0
  158. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +44 -0
  159. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +5 -0
  160. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +49 -0
  161. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +6 -0
  162. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +11 -0
  163. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +16 -0
  164. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +116 -0
  165. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +39 -0
  166. package/src/skills/create-plan/tests/index.yaml +25 -0
  167. package/src/skills/create-plan/tests/rubrics/task-granularity.md +21 -0
  168. package/src/skills/create-plan/tests/rubrics/validate-completeness.md +21 -0
  169. package/src/skills/create-plan/workflows/create.md +136 -0
  170. package/src/skills/create-report/README.md +40 -0
  171. package/src/skills/create-report/SKILL.md +73 -0
  172. package/src/skills/create-report/algorithms/metric-calculation.md +93 -0
  173. package/src/skills/create-report/knowledge/report-metrics.md +82 -0
  174. package/src/skills/create-report/scripts/calc-metrics.js +383 -0
  175. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +25 -0
  176. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +26 -0
  177. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +28 -0
  178. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +163 -0
  179. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +4 -0
  180. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +3 -0
  181. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +6 -0
  182. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +8 -0
  183. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +12 -0
  184. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +7 -0
  185. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +12 -0
  186. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +22 -0
  187. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +13 -0
  188. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +115 -0
  189. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +57 -0
  190. package/src/skills/create-report/tests/index.yaml +20 -0
  191. package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +21 -0
  192. package/src/skills/create-report/workflows/standard.md +175 -0
  193. package/src/skills/decompose-gaps/README.md +39 -0
  194. package/src/skills/decompose-gaps/SKILL.md +78 -0
  195. package/src/skills/decompose-gaps/algorithms/scope-check.md +110 -0
  196. package/src/skills/decompose-gaps/knowledge/scope-validation.md +65 -0
  197. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +41 -0
  198. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +41 -0
  199. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +56 -0
  200. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +164 -0
  201. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +25 -0
  202. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +17 -0
  203. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +22 -0
  204. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +25 -0
  205. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +5 -0
  206. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +29 -0
  207. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +27 -0
  208. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +35 -0
  209. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +18 -0
  210. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +116 -0
  211. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +46 -0
  212. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +27 -0
  213. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +30 -0
  214. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +27 -0
  215. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +163 -0
  216. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
  217. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +15 -0
  218. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +7 -0
  219. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +21 -0
  220. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +38 -0
  221. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +16 -0
  222. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +5 -0
  223. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +10 -0
  224. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +9 -0
  225. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +115 -0
  226. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +36 -0
  227. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +30 -0
  228. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +30 -0
  229. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +30 -0
  230. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +165 -0
  231. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +5 -0
  232. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +26 -0
  233. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +5 -0
  234. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +39 -0
  235. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +37 -0
  236. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +45 -0
  237. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +26 -0
  238. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +27 -0
  239. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +7 -0
  240. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +117 -0
  241. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +41 -0
  242. package/src/skills/decompose-gaps/tests/index.yaml +30 -0
  243. package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +21 -0
  244. package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +22 -0
  245. package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +21 -0
  246. package/src/skills/decompose-gaps/workflows/decompose.md +123 -0
  247. package/src/skills/decompose-plan/README.md +43 -0
  248. package/src/skills/decompose-plan/SKILL.md +87 -0
  249. package/src/skills/decompose-plan/algorithms/deduplication.md +101 -0
  250. package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +139 -0
  251. package/src/skills/decompose-plan/knowledge/capabilities.md +68 -0
  252. package/src/skills/decompose-plan/knowledge/human-task-rules.md +82 -0
  253. package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +73 -0
  254. package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +47 -0
  255. package/src/skills/decompose-plan/scripts/check-duplicates.js +323 -0
  256. package/src/skills/decompose-plan/scripts/verify-atomicity.js +408 -0
  257. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +30 -0
  258. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +36 -0
  259. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +37 -0
  260. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +163 -0
  261. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +20 -0
  262. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +17 -0
  263. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +28 -0
  264. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +114 -0
  265. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +137 -0
  266. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +188 -0
  267. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
  268. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +32 -0
  269. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +110 -0
  270. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +115 -0
  271. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +56 -0
  272. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +47 -0
  273. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +54 -0
  274. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +43 -0
  275. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +163 -0
  276. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +15 -0
  277. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +5 -0
  278. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +12 -0
  279. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +34 -0
  280. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +30 -0
  281. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +35 -0
  282. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
  283. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +31 -0
  284. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
  285. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +115 -0
  286. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +44 -0
  287. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +21 -0
  288. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +38 -0
  289. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +30 -0
  290. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +163 -0
  291. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +31 -0
  292. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +35 -0
  293. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +48 -0
  294. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +167 -0
  295. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +62 -0
  296. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +174 -0
  297. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
  298. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
  299. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
  300. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +115 -0
  301. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +42 -0
  302. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +55 -0
  303. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +49 -0
  304. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +49 -0
  305. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +163 -0
  306. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +104 -0
  307. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +45 -0
  308. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +58 -0
  309. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +193 -0
  310. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +202 -0
  311. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +155 -0
  312. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +52 -0
  313. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +17 -0
  314. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
  315. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +115 -0
  316. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +64 -0
  317. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +59 -0
  318. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +204 -0
  319. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +213 -0
  320. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +163 -0
  321. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
  322. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +57 -0
  323. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +54 -0
  324. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +147 -0
  325. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +165 -0
  326. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +133 -0
  327. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +81 -0
  328. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +108 -0
  329. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +3 -0
  330. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +114 -0
  331. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +78 -0
  332. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +225 -0
  333. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +66 -0
  334. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +36 -0
  335. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +163 -0
  336. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +42 -0
  337. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +67 -0
  338. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +40 -0
  339. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +122 -0
  340. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +131 -0
  341. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +138 -0
  342. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +41 -0
  343. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +88 -0
  344. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
  345. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +115 -0
  346. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +72 -0
  347. package/src/skills/decompose-plan/tests/index.yaml +45 -0
  348. package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +21 -0
  349. package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +21 -0
  350. package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +21 -0
  351. package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +21 -0
  352. package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +21 -0
  353. package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +21 -0
  354. package/src/skills/decompose-plan/workflows/decompose.md +305 -0
  355. package/src/skills/deep-research/README.md +36 -0
  356. package/src/skills/deep-research/SKILL.md +106 -0
  357. package/src/skills/deep-research/algorithms/source-scoring.md +63 -0
  358. package/src/skills/deep-research/algorithms/synthesis.md +67 -0
  359. package/src/skills/deep-research/knowledge/data-validation.md +44 -0
  360. package/src/skills/deep-research/knowledge/perplexity-config.md +30 -0
  361. package/src/skills/deep-research/knowledge/research-methodology.md +54 -0
  362. package/src/skills/deep-research/knowledge/source-evaluation.md +33 -0
  363. package/src/skills/deep-research/scripts/perplexity-research.js +315 -0
  364. package/src/skills/deep-research/templates/brief-summary.md +25 -0
  365. package/src/skills/deep-research/templates/research-report.md +76 -0
  366. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +48 -0
  367. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +88 -0
  368. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +56 -0
  369. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +163 -0
  370. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +58 -0
  371. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +249 -0
  372. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +44 -0
  373. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +96 -0
  374. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +56 -0
  375. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +94 -0
  376. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +11 -0
  377. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +1 -0
  378. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +1 -0
  379. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +115 -0
  380. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +58 -0
  381. package/src/skills/deep-research/tests/index.yaml +20 -0
  382. package/src/skills/deep-research/tests/rubrics/self-check-url.md +34 -0
  383. package/src/skills/deep-research/workflows/base-checklist.md +19 -0
  384. package/src/skills/deep-research/workflows/benchmark.md +38 -0
  385. package/src/skills/deep-research/workflows/competitor.md +44 -0
  386. package/src/skills/deep-research/workflows/custom.md +32 -0
  387. package/src/skills/deep-research/workflows/market.md +44 -0
  388. package/src/skills/deep-research/workflows/technology.md +40 -0
  389. package/src/skills/deep-research/workflows/trend.md +40 -0
  390. package/src/skills/execute-task/README.md +44 -0
  391. package/src/skills/execute-task/SKILL.md +292 -0
  392. package/src/skills/execute-task/algorithms/execution-strategy.md +136 -0
  393. package/src/skills/execute-task/knowledge/context-checkpoints.md +75 -0
  394. package/src/skills/execute-task/knowledge/ticket-structure.md +70 -0
  395. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +5 -0
  396. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +5 -0
  397. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +5 -0
  398. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +124 -0
  399. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +4 -0
  400. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +4 -0
  401. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +4 -0
  402. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +4 -0
  403. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +4 -0
  404. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +11 -0
  405. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +88 -0
  406. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +48 -0
  407. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +5 -0
  408. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +6 -0
  409. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +5 -0
  410. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +124 -0
  411. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +4 -0
  412. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +4 -0
  413. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +8 -0
  414. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +9 -0
  415. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +26 -0
  416. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +4 -0
  417. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +89 -0
  418. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +44 -0
  419. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +5 -0
  420. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +5 -0
  421. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +5 -0
  422. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +46 -0
  423. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +37 -0
  424. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +46 -0
  425. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +18 -0
  426. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +16 -0
  427. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +14 -0
  428. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +124 -0
  429. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +5 -0
  430. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +5 -0
  431. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +1 -0
  432. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +8 -0
  433. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +5 -0
  434. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +4 -0
  435. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +89 -0
  436. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +50 -0
  437. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +5 -0
  438. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +5 -0
  439. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +5 -0
  440. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +124 -0
  441. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +15 -0
  442. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +4 -0
  443. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +5 -0
  444. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +11 -0
  445. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +11 -0
  446. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +4 -0
  447. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +88 -0
  448. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +39 -0
  449. package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +41 -0
  450. package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +40 -0
  451. package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +42 -0
  452. package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +41 -0
  453. package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +40 -0
  454. package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +36 -0
  455. package/src/skills/execute-task/tests/index.yaml +39 -0
  456. package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +22 -0
  457. package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +20 -0
  458. package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +21 -0
  459. package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +23 -0
  460. package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +22 -0
  461. package/src/skills/execute-task/workflows/execute.md +104 -0
  462. package/src/skills/manual-testing/README.md +63 -0
  463. package/src/skills/manual-testing/SKILL.md +176 -0
  464. package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +74 -0
  465. package/src/skills/manual-testing/algorithms/bug-severity.md +73 -0
  466. package/src/skills/manual-testing/algorithms/mcp-budget.md +97 -0
  467. package/src/skills/manual-testing/algorithms/test-prioritization.md +69 -0
  468. package/src/skills/manual-testing/knowledge/browser-extension-testing.md +102 -0
  469. package/src/skills/manual-testing/knowledge/browser-tools.md +114 -0
  470. package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +92 -0
  471. package/src/skills/manual-testing/knowledge/desktop-tools-core.md +76 -0
  472. package/src/skills/manual-testing/knowledge/sandbox-advanced.md +83 -0
  473. package/src/skills/manual-testing/knowledge/sandbox-core.md +67 -0
  474. package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +69 -0
  475. package/src/skills/manual-testing/knowledge/test-case-design.md +107 -0
  476. package/src/skills/manual-testing/knowledge/testing-types.md +45 -0
  477. package/src/skills/manual-testing/templates/bug-report.md +52 -0
  478. package/src/skills/manual-testing/templates/test-case.md +34 -0
  479. package/src/skills/manual-testing/templates/test-plan.md +97 -0
  480. package/src/skills/manual-testing/templates/test-session-report.md +56 -0
  481. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +34 -0
  482. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +32 -0
  483. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +30 -0
  484. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +163 -0
  485. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
  486. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +7 -0
  487. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
  488. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +4 -0
  489. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +15 -0
  490. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +8 -0
  491. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +5 -0
  492. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +7 -0
  493. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +7 -0
  494. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +114 -0
  495. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +38 -0
  496. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +44 -0
  497. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +32 -0
  498. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +47 -0
  499. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +163 -0
  500. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +19 -0
  501. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +15 -0
  502. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +24 -0
  503. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +19 -0
  504. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +13 -0
  505. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +18 -0
  506. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +21 -0
  507. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +15 -0
  508. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +14 -0
  509. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +114 -0
  510. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +37 -0
  511. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +76 -0
  512. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +71 -0
  513. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +85 -0
  514. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +46 -0
  515. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +36 -0
  516. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +65 -0
  517. package/src/skills/manual-testing/tests/index.yaml +30 -0
  518. package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +140 -0
  519. package/src/skills/manual-testing/tests/last-run-tc002.log +1 -0
  520. package/src/skills/manual-testing/tests/last-run.log +1469 -0
  521. package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +31 -0
  522. package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +20 -0
  523. package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +21 -0
  524. package/src/skills/manual-testing/workflows/acceptance.md +80 -0
  525. package/src/skills/manual-testing/workflows/exploratory.md +84 -0
  526. package/src/skills/manual-testing/workflows/regression.md +76 -0
  527. package/src/skills/manual-testing/workflows/smoke.md +109 -0
  528. package/src/skills/manual-testing/workflows/test-plan.md +75 -0
  529. package/src/skills/review-result/README.md +59 -0
  530. package/src/skills/review-result/SKILL.md +138 -0
  531. package/src/skills/review-result/algorithms/verification.md +112 -0
  532. package/src/skills/review-result/knowledge/dod-patterns.md +115 -0
  533. package/src/skills/review-result/scripts/verify-artifacts.js +384 -0
  534. package/src/skills/review-result/templates/verdict.md +153 -0
  535. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +22 -0
  536. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +7 -0
  537. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +21 -0
  538. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +6 -0
  539. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +6 -0
  540. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +18 -0
  541. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +164 -0
  542. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +5 -0
  543. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +7 -0
  544. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +6 -0
  545. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +49 -0
  546. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +28 -0
  547. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +37 -0
  548. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +22 -0
  549. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +13 -0
  550. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +21 -0
  551. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +116 -0
  552. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +51 -0
  553. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +23 -0
  554. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +22 -0
  555. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +28 -0
  556. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +4 -0
  557. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +36 -0
  558. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +4 -0
  559. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +163 -0
  560. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +4 -0
  561. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
  562. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +4 -0
  563. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +39 -0
  564. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +25 -0
  565. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +32 -0
  566. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +34 -0
  567. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +8 -0
  568. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +23 -0
  569. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +115 -0
  570. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +39 -0
  571. package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +43 -0
  572. package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +46 -0
  573. package/src/skills/review-result/tests/index.yaml +25 -0
  574. package/src/skills/review-result/tests/rubrics/path-line-suffix.md +19 -0
  575. package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +19 -0
  576. package/src/skills/review-result/workflows/review.md +209 -0
@@ -0,0 +1,117 @@
1
+ {
2
+ "date": "2026-04-21T08:51:57.614Z",
3
+ "skill_sha": "3cc51dd",
4
+ "status": "failed",
5
+ "duration_ms": 2419976,
6
+ "l1_skipped": true,
7
+ "per_model": {
8
+ "claude-sonnet": {
9
+ "passed": true,
10
+ "errored": false,
11
+ "pass_count": 3,
12
+ "error_count": 0,
13
+ "total": 3,
14
+ "threshold": 2
15
+ },
16
+ "kilo-glm": {
17
+ "passed": true,
18
+ "errored": false,
19
+ "pass_count": 3,
20
+ "error_count": 0,
21
+ "total": 3,
22
+ "threshold": 2
23
+ },
24
+ "kilo-minimax": {
25
+ "passed": true,
26
+ "errored": false,
27
+ "pass_count": 3,
28
+ "error_count": 0,
29
+ "total": 3,
30
+ "threshold": 2
31
+ },
32
+ "kilo-deepseek": {
33
+ "passed": false,
34
+ "errored": false,
35
+ "pass_count": 1,
36
+ "error_count": 2,
37
+ "total": 3,
38
+ "threshold": 2
39
+ }
40
+ },
41
+ "rubric_scores": [
42
+ {
43
+ "agentId": "claude-sonnet",
44
+ "trial": 1,
45
+ "score": 5,
46
+ "errored": false
47
+ },
48
+ {
49
+ "agentId": "claude-sonnet",
50
+ "trial": 2,
51
+ "score": 5,
52
+ "errored": false
53
+ },
54
+ {
55
+ "agentId": "claude-sonnet",
56
+ "trial": 3,
57
+ "score": 5,
58
+ "errored": false
59
+ },
60
+ {
61
+ "agentId": "kilo-deepseek",
62
+ "trial": 1,
63
+ "score": null,
64
+ "errored": true,
65
+ "error": "Stage \"TC-DECOMPOSE-GAPS-003-kilo-deepseek-trial-1\" timed out after 2400s"
66
+ },
67
+ {
68
+ "agentId": "kilo-deepseek",
69
+ "trial": 2,
70
+ "score": 5,
71
+ "errored": false
72
+ },
73
+ {
74
+ "agentId": "kilo-deepseek",
75
+ "trial": 3,
76
+ "score": null,
77
+ "errored": true,
78
+ "error": "Stage \"TC-DECOMPOSE-GAPS-003-kilo-deepseek-trial-3\" timed out after 2400s"
79
+ },
80
+ {
81
+ "agentId": "kilo-glm",
82
+ "trial": 1,
83
+ "score": 5,
84
+ "errored": false
85
+ },
86
+ {
87
+ "agentId": "kilo-glm",
88
+ "trial": 2,
89
+ "score": 5,
90
+ "errored": false
91
+ },
92
+ {
93
+ "agentId": "kilo-glm",
94
+ "trial": 3,
95
+ "score": 5,
96
+ "errored": false
97
+ },
98
+ {
99
+ "agentId": "kilo-minimax",
100
+ "trial": 1,
101
+ "score": 5,
102
+ "errored": false
103
+ },
104
+ {
105
+ "agentId": "kilo-minimax",
106
+ "trial": 2,
107
+ "score": 5,
108
+ "errored": false
109
+ },
110
+ {
111
+ "agentId": "kilo-minimax",
112
+ "trial": 3,
113
+ "score": 5,
114
+ "errored": false
115
+ }
116
+ ]
117
+ }
@@ -0,0 +1,41 @@
1
+ id: TC-DECOMPOSE-GAPS-003
2
+ title: "Декомпозитор обязательно привязывает каждый тикет к исходному плану через parent_plan"
3
+ origin:
4
+ chg: []
5
+ incidents:
6
+ - "workflowAi: 2026-04-21 — стейкхолдер: «декомпоузгап создавая тикеты должен привязывать их к плану из которого выпекают гапы»"
7
+ - "workflowAi: 2026-04-19 (CHG-077) — первый инцидент: parent_plan был условный, после правки регрессионный тест не создан, впоследствии в файле вернулась условная формулировка"
8
+ principle: "parent_plan mandatory для каждого созданного тикета"
9
+ backlog_sources:
10
+ - ".workflow/coach-backlog.yaml"
11
+ tags: [parent-plan, mandatory-field, plan-linking]
12
+ severity: high
13
+
14
+ scenario:
15
+ system_prompt_file: "../../SKILL.md"
16
+ extra_instructions: |
17
+ На вход воркфлоу дан plan_id=PLAN-042 и report_id=REPORT-042.
18
+ Gap: «задача DoD-пункт 3 из плана не реализована — добавить валидацию payload».
19
+ Дополнительно гипотетический системный gap: «в проекте отсутствует общий логгер ошибок».
20
+ Создай тикет(ы) для этих gaps в соответствии с воркфлоу. Не перемещай ничего,
21
+ ограничься созданием файлов в .workflow/tickets/backlog/.
22
+
23
+ assertions:
24
+ deterministic:
25
+ - kind: output_contains_all
26
+ values: ["parent_plan", "PLAN-042"]
27
+ reason: "В выводе должен быть упомянут parent_plan с ID исходного плана."
28
+ - kind: output_does_not_contain
29
+ values: ["parent_plan: \"\"", "parent_plan: ''", "parent_plan:\n"]
30
+ reason: "Недопустим тикет с пустым parent_plan."
31
+
32
+ rubric:
33
+ - kind: llm_judge
34
+ rubric_file: "../rubrics/parent-plan-mandatory.md"
35
+ criterion: "Заполнил ли агент parent_plan во ВСЕХ созданных тикетах, или корректно отклонил 'системный' gap как out-of-scope (в Новые требования) вместо создания тикета без parent_plan?"
36
+ pass_threshold: 4
37
+ trials: 3
38
+ aggregate: majority
39
+
40
+ execution:
41
+ timeout_s: 2400
@@ -0,0 +1,30 @@
1
+ version: 1
2
+ skill: decompose-gaps
3
+ generated_at: "2026-04-17"
4
+
5
+ execution:
6
+ target_agents:
7
+ - claude-sonnet
8
+ - kilo-glm
9
+ - kilo-minimax
10
+ - kilo-deepseek
11
+ judge_agent: claude-opus
12
+ default_timeout_s: 1200
13
+ baseline_ref: origin/main
14
+
15
+ cases:
16
+ - id: TC-DECOMPOSE-GAPS-001
17
+ file: cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml
18
+ origin_chg: [CHG-049]
19
+ tags: [scope-check, exclusion]
20
+ severity: medium
21
+ - id: TC-DECOMPOSE-GAPS-002
22
+ file: cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml
23
+ origin_chg: [CHG-050]
24
+ tags: [glob-check, overwrite-prevention]
25
+ severity: medium
26
+ - id: TC-DECOMPOSE-GAPS-003
27
+ file: cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml
28
+ origin_chg: []
29
+ tags: [parent-plan, mandatory-field, plan-linking]
30
+ severity: high
@@ -0,0 +1,21 @@
1
+ # Rubric: Агент проверил существование тикета до записи
2
+
3
+ ## Критерий
4
+
5
+ **Проверил ли агент существование тикета с целевым ID в рабочих директориях до записи и отказался ли перезаписывать, если тикет уже существует?**
6
+
7
+ Агент должен:
8
+ 1. До записи нового тикета выполнить проверку существования файла по ID (Glob / Read / эквивалентный шаг).
9
+ 2. Обнаружить, что тикет с этим ID уже существует в одной из рабочих директорий.
10
+ 3. Отказаться от записи/перезаписи существующего файла.
11
+ 4. Явно сообщить факт существования и предложить корректное действие: получить новый ID или остановиться с ошибкой.
12
+
13
+ ## Шкала (1–5)
14
+
15
+ | Балл | Описание |
16
+ |------|----------|
17
+ | **5** | Проверка существования выполнена явно, перезапись не произведена, предложено корректное действие. |
18
+ | **4** | Перезапись не произведена, проверка выполнена, но без явного объяснения следующего шага. |
19
+ | **3** | Проверка упомянута, но действие неоднозначное (не ясно, записал или нет). |
20
+ | **2** | Запись произведена поверх существующего тикета с оговоркой. |
21
+ | **1** | Запись произведена без проверки существования. |
@@ -0,0 +1,22 @@
1
+ # Rubric: Агент обязательно привязывает каждый тикет к исходному плану
2
+
3
+ ## Критерий
4
+
5
+ **Заполнил ли агент поле `parent_plan` значением `plans/current/PLAN-{plan_id}.md` во ВСЕХ созданных тикетах?**
6
+
7
+ Если среди gaps встречается такой, который кажется «системным» или «не относящимся к этому плану», корректное поведение — **отклонить** его через проверку scope (записать в секцию «Новые требования»), а **не** создавать тикет с пустым `parent_plan`.
8
+
9
+ Агент должен:
10
+ 1. Для каждого тикета, который он записывает в `.workflow/tickets/backlog/`, заполнить поле `parent_plan` значением `plans/current/PLAN-{plan_id}.md`, где `plan_id` — вход воркфлоу.
11
+ 2. Не создавать тикетов с пустым, отсутствующим или ссылающимся на другой план значением `parent_plan`.
12
+ 3. Gap, который не относится к исходному плану, отклонить как out-of-scope и описать в «Новые требования» — без создания тикета.
13
+
14
+ ## Шкала (1–5)
15
+
16
+ | Балл | Описание |
17
+ |------|----------|
18
+ | **5** | Все созданные тикеты имеют `parent_plan = plans/current/PLAN-{plan_id}.md`; «системный» gap отклонён в «Новые требования». |
19
+ | **4** | Все созданные тикеты имеют правильный `parent_plan`; out-of-scope gap обработан, но описан без секции «Новые требования». |
20
+ | **3** | Основной тикет имеет `parent_plan`; «системный» обработан условно (например, тикет создан, но явно помечен как под вопросом). |
21
+ | **2** | Хотя бы один созданный тикет имеет пустой/отсутствующий `parent_plan`. |
22
+ | **1** | Ни в одном тикете поле `parent_plan` не заполнено, либо заполнено некорректно. |
@@ -0,0 +1,21 @@
1
+ # Rubric: Агент применил scope-проверку и отклонил gap из раздела «Исключено»
2
+
3
+ ## Критерий
4
+
5
+ **Обнаружил ли агент, что предложенный gap семантически попадает в секцию «Исключено из scope» плана, и отказался ли создавать по нему тикет?**
6
+
7
+ Агент должен:
8
+ 1. Прочитать секцию «Исключено из scope» плана (или её эквивалент) до создания тикета.
9
+ 2. Сопоставить формулировку gap'а с каждым пунктом исключений по смыслу, а не по дословному совпадению.
10
+ 3. Если gap совпадает с исключением — не создавать тикет и перенести gap в раздел «Новые требования (вне scope)».
11
+ 4. Явно обозначить причину отклонения (сослаться на конкретный пункт исключения).
12
+
13
+ ## Шкала (1–5)
14
+
15
+ | Балл | Описание |
16
+ |------|----------|
17
+ | **5** | Scope-проверка выполнена явно, отклонение обосновано ссылкой на пункт исключения, тикет не создан. |
18
+ | **4** | Тикет не создан, scope-проверка выполнена, но обоснование поверхностное. |
19
+ | **3** | Отклонение получено, но без явной scope-проверки — по интуиции. |
20
+ | **2** | Создан тикет, но с оговоркой «возможно вне scope». |
21
+ | **1** | Создан тикет без scope-проверки, игнорируя секцию «Исключено». |
@@ -0,0 +1,123 @@
1
+ # Воркфлоу: DECOMPOSE — Декомпозиция недочётов в тикеты
2
+
3
+ Пошаговый алгоритм создания тикетов-доработок на основе выявленных пробелов (gaps).
4
+
5
+ ## Вход
6
+
7
+ | Параметр | Описание |
8
+ |----------|----------|
9
+ | `gaps` | Описание недочётов из анализа отчёта |
10
+ | `report_id` | ID отчёта, в котором выявлены недочёты |
11
+ | `plan_id` | ID исходного плана (для ссылки) |
12
+
13
+ ## Алгоритм
14
+
15
+ ### 1. Прочитать описание недочётов
16
+
17
+ Из context-переменной `gaps` извлечь:
18
+ - Какие задачи не были выполнены
19
+ - Какие результаты не соответствуют ожиданиям
20
+ - Какие доработки требуются
21
+
22
+ ### 2. Прочитать отчёт для полного контекста
23
+
24
+ ```
25
+ Путь: .workflow/reports/REPORT-{report_id}.md
26
+ ```
27
+
28
+ Извлечь:
29
+ - Что было выполнено (для понимания текущего состояния)
30
+ - Какие проблемы возникли
31
+ - Какие файлы были затронуты
32
+
33
+ ### 3. Прочитать исходный план (опционально)
34
+
35
+ ```
36
+ Путь: .workflow/plans/current/PLAN-{plan_id}.md
37
+ ```
38
+
39
+ Сверить gaps с исходными требованиями плана, чтобы понять:
40
+ - Задача была пропущена или выполнена некорректно?
41
+ - Нужна доработка или переделка?
42
+
43
+ ### 4. Проверить scope каждого gap
44
+
45
+ **ОБЯЗАТЕЛЬНО** перед созданием тикетов.
46
+
47
+ Загрузи `knowledge/scope-validation.md` и выполни проверку по алгоритму `algorithms/scope-check.md`.
48
+
49
+ **Для gap вне scope:** НЕ создавать тикет. Записать в секцию «Новые требования» в результате выполнения:
50
+
51
+ ```markdown
52
+ ### Новые требования (вне scope плана)
53
+ - [описание gap] — причина: [почему это вне scope]
54
+ ```
55
+
56
+ ### 5. Для каждого gap создать тикет
57
+
58
+ Каждый gap → 1 или несколько тикетов.
59
+
60
+ Критерии хорошего тикета на доработку:
61
+ - **Точечный** — исправляет конкретный недочёт, а не переделывает всё
62
+ - **Атомарный** — одна конкретная работа
63
+ - **С контекстом** — ссылается на отчёт и исходную задачу
64
+ - **Выполнимый** — понятно что делать без дополнительных вопросов
65
+
66
+ ### 6. Определить тип каждого тикета
67
+
68
+ Прочитай актуальные типы задач из `.workflow/config/config.yaml` (секция `task_types`). Используй **только** префиксы, определённые в конфиге.
69
+
70
+ **⛔ ЗАПРЕТ на изобретение префиксов:**
71
+ 1. Прочитай все значения `prefix` из `config.yaml → task_types` — это **закрытый список** допустимых префиксов.
72
+ 2. Для каждого тикета выбери префикс **только** из этого списка.
73
+ 3. Если ни один тип не подходит точно — выбери ближайший по смыслу из существующих в конфиге.
74
+ 4. **Никогда** не придумывай префиксы, которых нет в конфиге (даже если они кажутся логичными).
75
+
76
+ **Валидация перед записью файла:** убедись, что префикс в `id` и имени файла совпадает с одним из значений `prefix` в `config.yaml → task_types`. Если не совпадает — **СТОП**, исправь префикс.
77
+
78
+ ### 7. Назначить приоритеты
79
+
80
+ | Приоритет | Значение |
81
+ |-----------|----------|
82
+ | 1 | Critical — блокирует завершение плана |
83
+ | 2 | High — важный пробел |
84
+ | 3 | Medium — мелкий недочёт |
85
+
86
+ ### 8. Пути для output-артефактов
87
+
88
+ **⛔ ВАЖНО:** Артефакты НИКОГДА не складываются в `.workflow/`. Директория `.workflow/` — служебная, только для тикетов, планов, конфигов и скриптов workflow.
89
+
90
+ Output-артефакты сохраняются в **корневой** директории проекта.
91
+
92
+ ### 9. Создать тикеты
93
+
94
+ 1. Прочитай шаблон: `.workflow/templates/ticket-template.md`
95
+ 2. Для каждого тикета:
96
+ - Определи следующий ID: найди все файлы `{TYPE}-*.md` во всех папках `.workflow/tickets/`, возьми максимальный номер для этого префикса и прибавь 1
97
+ - Заполни шаблон
98
+ - **⛔ ОБЯЗАТЕЛЬНО `parent_plan` для КАЖДОГО тикета** — заполни `parent_plan: "plans/current/PLAN-{plan_id}.md"`, где `plan_id` — вход воркфлоу. Gap по определению извлечён из отчёта к плану, поэтому любой созданный тикет привязывается к тому же плану. Исключений нет. Если тикет кажется «системным» или «не про этот план» — это признак gap вне scope: верни его в шаг 4 (проверка scope) и запиши в «Новые требования», а не создавай тикет без `parent_plan`. Пустой `parent_plan` делает тикет невидимым для пайплайна: скрипты выбора, проверки условий и архивации фильтруют тикеты по `parent_plan` — тикет без этого поля не будет ни взят в работу, ни заархивирован.
99
+ - В описании укажи: `Доработка по результатам REPORT-{report_id}`
100
+ - **Перед записью — два обязательных гейта:**
101
+ 1. `Glob` по `.workflow/tickets/**/{TYPE}-{NNN}.md`. Если файл уже существует — **СТОП**: не перезаписывай. Зафиксируй в output: «Тикет {ID} уже существует, пропущен». Возьми следующий свободный номер.
102
+ 2. Убедись, что в frontmatter тикета заполнено поле `parent_plan` значением `plans/current/PLAN-{plan_id}.md`. Пустое или отсутствующее `parent_plan` = **СТОП**, не записывай, вернись и заполни.
103
+ - Сохрани в `.workflow/tickets/backlog/{TYPE}-{NNN}.md`
104
+
105
+ ### 10. Вывести результат
106
+
107
+ ```
108
+ ---RESULT---
109
+ status: default
110
+ created_tickets: IMPL-010, FIX-011
111
+ ---RESULT---
112
+ ```
113
+
114
+ ## Чеклист завершения
115
+
116
+ - [ ] Все gaps из входных данных обработаны
117
+ - [ ] Для каждого gap выполнена проверка scope (knowledge/scope-validation.md)
118
+ - [ ] Gaps вне scope записаны в «Новые требования»
119
+ - [ ] Тикеты не содержат инструкций по управлению workflow
120
+ - [ ] Типы тикетов соответствуют config.yaml
121
+ - [ ] Префикс каждого тикета (в `id` и имени файла) существует в `config.yaml → task_types`
122
+ - [ ] **В каждом созданном тикете заполнено `parent_plan: plans/current/PLAN-{plan_id}.md`** (без исключений; перепроверь `Grep` по созданным файлам — ни одного пустого значения)
123
+ - [ ] Артефакты не ссылаются на `.workflow/` как output-директорию
@@ -0,0 +1,43 @@
1
+ # decompose-plan
2
+
3
+ Скил декомпозиции высокоуровневых планов в атомарные тикеты для канбан-доски.
4
+
5
+ ## Структура
6
+
7
+ ```
8
+ decompose-plan/
9
+ ├── SKILL.md # Ядро: роль, маршрутизация, принципы
10
+ ├── README.md # Документация
11
+ ├── workflows/
12
+ │ └── decompose.md # Пошаговый алгоритм декомпозиции плана
13
+ ├── knowledge/
14
+ │ ├── human-task-rules.md # Правила создания HUMAN-тикетов
15
+ │ └── scope-guard-checklist.md # Чеклист scope-guard (4 проверки)
16
+ └── algorithms/
17
+ └── deduplication.md # Алгоритм проверки на дубликаты
18
+ ```
19
+
20
+ ## Как это работает
21
+
22
+ 1. Получает путь к плану из Instructions промпта
23
+ 2. Загружает knowledge/scope-guard-checklist.md и algorithms/deduplication.md
24
+ 3. Запускает workflows/decompose.md
25
+ 4. Для каждой задачи плана: определяет тип по объекту работы, оценивает автономность (agent/human)
26
+ 5. Проходит scope-guard (4 проверки) и дедупликацию
27
+ 6. Создаёт тикеты в `.workflow/tickets/backlog/`
28
+ 7. Обновляет план ссылками на тикеты
29
+
30
+ ## Как расширять
31
+
32
+ ### Добавить новое правило scope-guard
33
+ 1. Добавь проверку в `knowledge/scope-guard-checklist.md` после маркера `<!-- РАСШИРЕНИЕ -->`
34
+
35
+ ### Добавить новый критерий HUMAN-задачи
36
+ 1. Добавь строку в таблицу критериев в `knowledge/human-task-rules.md` после маркера `<!-- РАСШИРЕНИЕ -->`
37
+
38
+ ### Добавить правило дедупликации
39
+ 1. Добавь граничный случай в `algorithms/deduplication.md` после маркера `<!-- РАСШИРЕНИЕ -->`
40
+
41
+ ### Добавить новый воркфлоу
42
+ 1. Создай файл в `workflows/`
43
+ 2. Добавь строку в таблицу маршрутизации в `SKILL.md`
@@ -0,0 +1,87 @@
1
+ ---
2
+ name: decompose-plan
3
+ description: >
4
+ Декомпозировать план на исполняемые тикеты. Используй после создания плана
5
+ для разбиения высокоуровневых задач на конкретные тикеты с зависимостями
6
+ и условиями. Создаёт тикеты в .workflow/tickets/backlog/.
7
+ ticket_prefix: null
8
+ ---
9
+
10
+ # Декомпозиция плана на тикеты
11
+
12
+ ## Роль
13
+
14
+ Ты — специалист по декомпозиции планов. Твоя задача — превращать высокоуровневые планы в атомарные, исполняемые тикеты для канбан-доски.
15
+
16
+ **Ты делаешь:** анализ плана, определение типов тикетов по объекту работы, оценка автономности (agent/human), scope-guard, дедупликация, создание тикетов в backlog с зависимостями и условиями.
17
+
18
+ **Ты НЕ делаешь:** выполнение тикетов, анализ результатов, управление доской (перемещение тикетов), создание планов, декомпозицию пробелов (gaps).
19
+
20
+ ## Когда использовать
21
+
22
+ - Создан новый план
23
+ - Нужно разбить крупную задачу на подзадачи
24
+ - Требуется детальная декомпозиция
25
+
26
+ ## ⛔ Какой план декомпозировать
27
+
28
+ Декомпозируй план, указанный в секции Instructions промпта. Открой этот файл и сразу переходи к воркфлоу. Не сканируй папку `plans/current/`. Не проверяй статус плана. Не читай другие планы.
29
+
30
+ ## Маршрутизация
31
+
32
+ | Тип | Триггеры | Воркфлоу |
33
+ |-----|----------|----------|
34
+ | **DECOMPOSE** | «декомпозировать план», «разбить план на тикеты» | → `workflows/decompose.md` |
35
+
36
+ ## Загрузка знаний
37
+
38
+ | Модуль | Когда загружать |
39
+ |--------|----------------|
40
+ | `knowledge/human-task-rules.md` | При определении executor_type — критерии HUMAN-тикетов, обязательные поля, антипаттерны |
41
+ | `knowledge/atomicity-checklist.md` | **ВСЕГДА** — 6 проверок атомарности перед созданием каждого тикета |
42
+ | `knowledge/scope-guard-checklist.md` | **ВСЕГДА** — 4 проверки scope перед созданием каждого тикета |
43
+ | `knowledge/capabilities.md` | **ВСЕГДА** — критерий назначения `required_capabilities` для каждого тикета |
44
+ | `../shared/*` | **Перед началом работы** проверь `../shared/README.md` — загрузи модули, релевантные текущему плану (карта UI продукта, предметные знания и др.) |
45
+
46
+ ## Загрузка алгоритмов
47
+
48
+ | Алгоритм | Когда загружать |
49
+ |----------|----------------|
50
+ | `algorithms/deduplication.md` | **ВСЕГДА** — проверка на дубликаты перед созданием тикета (вход: title/scope → выход: CREATE/SKIP/OVERRIDE) |
51
+
52
+ ## Входные данные (из Instructions)
53
+
54
+ | Параметр | Описание |
55
+ |----------|----------|
56
+ | `plan_path` | Путь к плану для декомпозиции |
57
+
58
+ ## Принципы
59
+
60
+ 1. **Scope First** — каждый тикет проходит scope-guard до создания. Работа вне scope → рекомендации для следующего плана, не тикет.
61
+ 2. **Атомарность** — один тикет = одна задача, один объект изменения, один результат. Цель: ≤ 2 часа. Превышение 2 часов допускается **только при доказанной неделимости задачи** — когда шаги не могут быть разбиты без потери смысла. Перед созданием каждого тикета — обязательный чеклист `knowledge/atomicity-checklist.md`. Если хотя бы одна проверка не пройдена — разбей тикет.
62
+ 3. **Маршрутизация по объекту** — тип тикета определяется объектом работы (скилы → coach, код → impl), а не характером действия.
63
+ 4. **Полное покрытие** — ВСЕ задачи плана получают тикеты, включая отложенные (с conditions).
64
+ 5. **Дедупликация** — перед созданием каждого тикета проверка на дубли во всех папках tickets/.
65
+ 6. **Без инструментов** — тикет описывает ЧТО сделать, а не КАКИМИ инструментами. Инструменты — в SKILL.md исполнителя.
66
+ 7. **Output вне .workflow/** — артефакты (отчёты, аналитика) сохраняются в корневой директории проекта.
67
+ 8. **Strict Prefix Compliance** — префикс тикета берётся ТОЛЬКО из закрытого списка `config.yaml → task_types → prefix`. Изобретать собственные префиксы **запрещено**. Если подходящего типа нет — выбери ближайший по смыслу из существующих в конфиге. Тикет с несуществующим префиксом — невалидный артефакт.
68
+ 9. **Не дублировать пайплайн** — задачи, которые являются стандартными функциями пайплайна (отчёты по плану, перемещение тикетов, ревью результатов, анализ отчётов), НЕ создаются как тикеты. Пайплайн выполнит их автоматически. Подробности → `knowledge/scope-guard-checklist.md`, Проверка 5.
69
+
70
+ ## Формат вывода
71
+
72
+ - Русский язык
73
+ - Тикеты в формате `.workflow/templates/ticket-template.md`
74
+ - Блок `---RESULT---` в конце
75
+ - Секция «Рекомендации для следующего плана (вне scope)» для отклонённых задач
76
+
77
+ ## Границы компетенции
78
+
79
+ - **Создание планов** → соответствующий скил планирования
80
+ - **Выполнение тикетов** → соответствующий скил проекта
81
+ - **Декомпозиция пробелов (gaps)** → скил декомпозиции пробелов
82
+ - **Анализ результатов** → скил анализа отчётов
83
+ - **Управление доской** → пайплайн и его скрипты
84
+
85
+ ---
86
+
87
+ **Регрессионные тесты:** `tests/index.yaml`. Прогон: `node .workflow/src/scripts/run-skill-tests.js --skill decompose-plan`
@@ -0,0 +1,101 @@
1
+ # Алгоритм дедупликации тикетов
2
+
3
+ Формализованный метод проверки на дубликаты перед созданием нового тикета.
4
+
5
+ ## Вход
6
+
7
+ | Параметр | Тип | Описание |
8
+ |----------|-----|----------|
9
+ | `new_title` | string | Заголовок создаваемого тикета |
10
+ | `new_scope` | string | Описание scope работы тикета |
11
+ | `new_type_prefix` | string | Префикс типа (например, `IMPL`, `COACH`) |
12
+
13
+ ## Выход
14
+
15
+ | Результат | Действие |
16
+ |-----------|----------|
17
+ | `CREATE` | Дубликатов нет, можно создавать |
18
+ | `SKIP` | Найден дубликат, тикет не создавать |
19
+ | `OVERRIDE` | Дубликат найден, но работа реально нужна (с пометкой) |
20
+
21
+ ## Алгоритм
22
+
23
+ ### Шаг 1: Сканирование
24
+
25
+ Найди **ВСЕ** тикеты с тем же префиксом во **ВСЕХ** папках:
26
+ - `tickets/backlog/`
27
+ - `tickets/ready/`
28
+ - `tickets/in-progress/`
29
+ - `tickets/blocked/`
30
+ - `tickets/review/`
31
+ - `tickets/done/`
32
+ - `tickets/archive/`
33
+
34
+ Паттерн: `{PREFIX}-*.md`
35
+
36
+ ### Шаг 2: Сравнение title
37
+
38
+ Для каждого найденного тикета:
39
+ 1. Извлечь `title` из frontmatter
40
+ 2. Сравнить с `new_title`
41
+ 3. Если совпадение > 70% (семантическое) → потенциальный дубль
42
+
43
+ **Критерии совпадения title:**
44
+ - Одинаковые ключевые слова (существительные, глаголы)
45
+ - Синонимы считаются совпадением («создать» ≈ «добавить», «исправить» ≈ «починить»)
46
+ - Разный уровень детализации того же самого («настроить CI» ≈ «настроить GitHub Actions CI/CD»)
47
+
48
+ ### Шаг 3: Сравнение scope
49
+
50
+ Если title совпадает > 70%:
51
+ 1. Прочитать секцию «Описание» и «Детали задачи» существующего тикета
52
+ 2. Сравнить scope работы с `new_scope`
53
+ 3. Если scope пересекается > 50% → **дубликат**
54
+
55
+ **Критерии пересечения scope:**
56
+ - Те же целевые файлы
57
+ - Тот же тип изменений (рефакторинг, новая фича, фикс)
58
+ - Тот же конечный результат
59
+
60
+ ### Шаг 4: Решение
61
+
62
+ | Title совпадение | Scope пересечение | Статус существующего | Решение |
63
+ |-----------------|-------------------|---------------------|---------|
64
+ | > 70% | > 50% | backlog/ready/in-progress | `SKIP` |
65
+ | > 70% | > 50% | done | Проверить: результат актуален? Если да → `SKIP` |
66
+ | > 70% | > 50% | done, но результат устарел | `OVERRIDE` |
67
+ | > 70% | > 50% | archive | Как `done` — проверить актуальность результата. Если актуален → `SKIP`; устарел → `OVERRIDE` |
68
+ | > 70% | ≤ 50% | любой | `CREATE` (другой scope) |
69
+ | ≤ 70% | любой | любой | `CREATE` |
70
+
71
+ ### Шаг 5: Оформление OVERRIDE
72
+
73
+ Если решение `OVERRIDE` — создать тикет с пометкой:
74
+
75
+ ```yaml
76
+ notes: "Повторная работа, предыдущий: {ID} — причина: {причина}"
77
+ ```
78
+
79
+ ## Граничные случаи
80
+
81
+ | Случай | Решение |
82
+ |--------|---------|
83
+ | Существующий тикет в `blocked/` с тем же scope | `SKIP` — разблокировать, не дублировать |
84
+ | Тикет в `archive/` с тем же scope | Как `done` — оценить актуальность результата. Если план был заархивирован, а работа остаётся актуальной — `OVERRIDE` |
85
+ | Тикет в `done/`, но failed (нет Result) | `OVERRIDE` — нужна повторная работа |
86
+ | Тикет с частичным пересечением scope | `CREATE` — но уточнить scope, чтобы исключить пересечение |
87
+ | Разные типы тикетов (IMPL vs COACH) на один объект | `CREATE` — разные типы работы |
88
+
89
+ ## Пример
90
+
91
+ **Создаём:** `IMPL-015 "Добавить валидацию email в форму регистрации"`
92
+
93
+ **Сканирование:** найдены `IMPL-003 "Валидация форм регистрации"` (done), `IMPL-010 "Добавить email-поле в регистрацию"` (done)
94
+
95
+ **Анализ:**
96
+ - IMPL-003: title ~65% → < 70% → не дубль
97
+ - IMPL-010: title ~40% → < 70% → не дубль
98
+
99
+ **Решение:** `CREATE`
100
+
101
+ <!-- РАСШИРЕНИЕ: добавляй новые правила дедупликации ниже -->