workflow-ai 1.0.68 → 1.2.1

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 (585) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/README.md +105 -7
  3. package/configs/pipeline.yaml +23 -2
  4. package/package.json +44 -41
  5. package/src/lib/operations/plans.mjs +85 -0
  6. package/src/lib/operations/skills.mjs +124 -0
  7. package/src/lib/operations/tickets.mjs +430 -0
  8. package/src/lib/utils.mjs +286 -286
  9. package/src/runner.mjs +314 -34
  10. package/src/scripts/check-conditions.js +2 -2
  11. package/src/scripts/get-next-id.js +8 -31
  12. package/src/scripts/pick-next-task.js +3 -9
  13. package/src/skills/coach/SKILL.md +1 -1
  14. package/src/skills/manual-testing/SKILL.md +2 -0
  15. package/src/skills/review-result/SKILL.md +1 -0
  16. package/src/scripts/tests/timeout-cascade.test.js +0 -28
  17. package/src/skills/analyze-report/README.md +0 -44
  18. package/src/skills/analyze-report/algorithms/progress-assessment.md +0 -108
  19. package/src/skills/analyze-report/knowledge/analysis-frameworks.md +0 -66
  20. package/src/skills/analyze-report/knowledge/report-structure.md +0 -61
  21. package/src/skills/analyze-report/scripts/calc-plan-metrics.js +0 -234
  22. package/src/skills/analyze-report/templates/analysis-report.md +0 -80
  23. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +0 -69
  24. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -103
  25. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +0 -99
  26. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +0 -163
  27. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -89
  28. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -88
  29. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -100
  30. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +0 -77
  31. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +0 -64
  32. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +0 -110
  33. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +0 -74
  34. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +0 -38
  35. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +0 -61
  36. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +0 -115
  37. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +0 -60
  38. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +0 -90
  39. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +0 -89
  40. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +0 -77
  41. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +0 -163
  42. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +0 -84
  43. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +0 -77
  44. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +0 -89
  45. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +0 -103
  46. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +0 -103
  47. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +0 -103
  48. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +0 -93
  49. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +0 -93
  50. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +0 -86
  51. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +0 -115
  52. package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +0 -44
  53. package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +0 -27
  54. package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +0 -32
  55. package/src/skills/analyze-report/tests/index.yaml +0 -25
  56. package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +0 -22
  57. package/src/skills/analyze-report/tests/rubrics/result-block-format.md +0 -22
  58. package/src/skills/analyze-report/workflows/progress.md +0 -158
  59. package/src/skills/analyze-report/workflows/retrospective.md +0 -143
  60. package/src/skills/coach/README.md +0 -43
  61. package/src/skills/coach/SKILL.md.legacy +0 -157
  62. package/src/skills/coach/algorithms/gap-analysis.md +0 -69
  63. package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
  64. package/src/skills/coach/algorithms/skill-scoring.md +0 -80
  65. package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +0 -11
  66. package/src/skills/coach/knowledge/backlog-management.md +0 -67
  67. package/src/skills/coach/knowledge/backlog-management.md.legacy +0 -90
  68. package/src/skills/coach/knowledge/common-antipatterns.md +0 -76
  69. package/src/skills/coach/knowledge/prompt-engineering.md +0 -45
  70. package/src/skills/coach/knowledge/shared-knowledge-guide.md +0 -44
  71. package/src/skills/coach/knowledge/skill-anatomy.md +0 -49
  72. package/src/skills/coach/knowledge/test-authorship.md +0 -141
  73. package/src/skills/coach/templates/audit-report.md +0 -39
  74. package/src/skills/coach/templates/coach-backlog-init.yaml +0 -14
  75. package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +0 -10
  76. package/src/skills/coach/templates/improvement-plan.md +0 -42
  77. package/src/skills/coach/templates/new-skill.md +0 -95
  78. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +0 -58
  79. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +0 -65
  80. package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +0 -58
  81. package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +0 -151
  82. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +0 -46
  83. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
  84. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +0 -75
  85. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +0 -81
  86. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +0 -101
  87. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +0 -91
  88. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +0 -48
  89. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +0 -30
  90. package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +0 -55
  91. package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +0 -94
  92. package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +0 -53
  93. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +0 -46
  94. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +0 -50
  95. package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +0 -48
  96. package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +0 -151
  97. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
  98. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +0 -37
  99. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +0 -30
  100. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +0 -23
  101. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +0 -29
  102. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +0 -35
  103. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +0 -13
  104. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +0 -19
  105. package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +0 -33
  106. package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +0 -94
  107. package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +0 -57
  108. package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +0 -77
  109. package/src/skills/coach/tests/index.yaml +0 -29
  110. package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +0 -13
  111. package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +0 -29
  112. package/src/skills/coach/tests/rubrics/evidence-based.md +0 -26
  113. package/src/skills/coach/tests/rubrics/root-cause-first.md +0 -21
  114. package/src/skills/coach/workflows/analyze.md +0 -79
  115. package/src/skills/coach/workflows/analyze.md.legacy +0 -64
  116. package/src/skills/coach/workflows/audit.md +0 -74
  117. package/src/skills/coach/workflows/audit.md.legacy +0 -59
  118. package/src/skills/coach/workflows/create.md +0 -80
  119. package/src/skills/coach/workflows/create.md.legacy +0 -67
  120. package/src/skills/coach/workflows/improve.md +0 -71
  121. package/src/skills/coach/workflows/improve.md.legacy +0 -60
  122. package/src/skills/coach/workflows/research.md +0 -55
  123. package/src/skills/coach/workflows/review.md +0 -52
  124. package/src/skills/coach/workflows/review.md.legacy +0 -48
  125. package/src/skills/coach/workflows/test.md +0 -97
  126. package/src/skills/create-plan/README.md +0 -39
  127. package/src/skills/create-plan/algorithms/risk-assessment.md +0 -73
  128. package/src/skills/create-plan/knowledge/plan-completeness.md +0 -67
  129. package/src/skills/create-plan/knowledge/plan-lifecycle.md +0 -33
  130. package/src/skills/create-plan/knowledge/task-verification-pairs.md +0 -151
  131. package/src/skills/create-plan/knowledge/test-hygiene.md +0 -47
  132. package/src/skills/create-plan/scripts/validate-completeness.js +0 -182
  133. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +0 -5
  134. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +0 -39
  135. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +0 -35
  136. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +0 -167
  137. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -5
  138. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -10
  139. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -5
  140. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +0 -26
  141. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +0 -86
  142. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +0 -5
  143. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +0 -11
  144. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +0 -15
  145. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +0 -14
  146. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +0 -119
  147. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +0 -41
  148. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +0 -25
  149. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +0 -30
  150. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +0 -37
  151. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +0 -164
  152. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -3
  153. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -11
  154. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -13
  155. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +0 -44
  156. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +0 -5
  157. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +0 -49
  158. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +0 -6
  159. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +0 -11
  160. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +0 -16
  161. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +0 -116
  162. package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +0 -39
  163. package/src/skills/create-plan/tests/index.yaml +0 -25
  164. package/src/skills/create-plan/tests/rubrics/task-granularity.md +0 -21
  165. package/src/skills/create-plan/tests/rubrics/validate-completeness.md +0 -21
  166. package/src/skills/create-plan/workflows/create.md +0 -136
  167. package/src/skills/create-report/README.md +0 -40
  168. package/src/skills/create-report/algorithms/metric-calculation.md +0 -93
  169. package/src/skills/create-report/knowledge/report-metrics.md +0 -82
  170. package/src/skills/create-report/scripts/calc-metrics.js +0 -383
  171. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +0 -25
  172. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +0 -26
  173. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +0 -28
  174. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +0 -163
  175. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -4
  176. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -3
  177. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -6
  178. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +0 -8
  179. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +0 -12
  180. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +0 -7
  181. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +0 -12
  182. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +0 -22
  183. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +0 -13
  184. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +0 -115
  185. package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +0 -57
  186. package/src/skills/create-report/tests/index.yaml +0 -20
  187. package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +0 -21
  188. package/src/skills/create-report/workflows/standard.md +0 -175
  189. package/src/skills/decompose-gaps/README.md +0 -39
  190. package/src/skills/decompose-gaps/algorithms/scope-check.md +0 -110
  191. package/src/skills/decompose-gaps/knowledge/scope-validation.md +0 -65
  192. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +0 -41
  193. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +0 -41
  194. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +0 -56
  195. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +0 -164
  196. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +0 -25
  197. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +0 -17
  198. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +0 -22
  199. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +0 -25
  200. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +0 -5
  201. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +0 -29
  202. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +0 -27
  203. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +0 -35
  204. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +0 -18
  205. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +0 -116
  206. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +0 -46
  207. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +0 -27
  208. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +0 -30
  209. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +0 -27
  210. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +0 -163
  211. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
  212. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +0 -15
  213. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +0 -7
  214. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +0 -21
  215. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +0 -38
  216. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +0 -16
  217. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +0 -5
  218. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +0 -10
  219. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +0 -9
  220. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +0 -115
  221. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +0 -36
  222. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +0 -30
  223. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +0 -30
  224. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +0 -30
  225. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +0 -165
  226. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +0 -5
  227. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +0 -26
  228. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +0 -5
  229. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +0 -39
  230. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +0 -37
  231. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +0 -45
  232. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +0 -26
  233. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +0 -27
  234. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +0 -7
  235. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +0 -117
  236. package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +0 -41
  237. package/src/skills/decompose-gaps/tests/index.yaml +0 -30
  238. package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +0 -21
  239. package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +0 -22
  240. package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +0 -21
  241. package/src/skills/decompose-gaps/workflows/decompose.md +0 -123
  242. package/src/skills/decompose-plan/README.md +0 -43
  243. package/src/skills/decompose-plan/algorithms/deduplication.md +0 -101
  244. package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +0 -139
  245. package/src/skills/decompose-plan/knowledge/capabilities.md +0 -68
  246. package/src/skills/decompose-plan/knowledge/human-task-rules.md +0 -82
  247. package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +0 -73
  248. package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +0 -47
  249. package/src/skills/decompose-plan/scripts/check-duplicates.js +0 -323
  250. package/src/skills/decompose-plan/scripts/verify-atomicity.js +0 -408
  251. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +0 -30
  252. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +0 -36
  253. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +0 -37
  254. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +0 -163
  255. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -20
  256. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -17
  257. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -28
  258. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +0 -114
  259. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +0 -137
  260. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +0 -188
  261. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
  262. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +0 -32
  263. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +0 -110
  264. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +0 -115
  265. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +0 -56
  266. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +0 -47
  267. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +0 -54
  268. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +0 -43
  269. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +0 -163
  270. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -15
  271. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -5
  272. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -12
  273. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +0 -34
  274. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +0 -30
  275. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +0 -35
  276. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
  277. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +0 -31
  278. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
  279. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +0 -115
  280. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +0 -44
  281. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +0 -21
  282. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +0 -38
  283. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +0 -30
  284. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +0 -163
  285. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +0 -31
  286. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +0 -35
  287. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +0 -48
  288. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +0 -167
  289. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +0 -62
  290. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +0 -174
  291. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
  292. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
  293. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
  294. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +0 -115
  295. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +0 -42
  296. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +0 -55
  297. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +0 -49
  298. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +0 -49
  299. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +0 -163
  300. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +0 -104
  301. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +0 -45
  302. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +0 -58
  303. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +0 -193
  304. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +0 -202
  305. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +0 -155
  306. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +0 -52
  307. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +0 -17
  308. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
  309. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +0 -115
  310. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +0 -64
  311. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +0 -59
  312. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +0 -204
  313. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +0 -213
  314. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +0 -163
  315. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
  316. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +0 -57
  317. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +0 -54
  318. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +0 -147
  319. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +0 -165
  320. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +0 -133
  321. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +0 -81
  322. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +0 -108
  323. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +0 -3
  324. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +0 -114
  325. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +0 -78
  326. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +0 -225
  327. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +0 -66
  328. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +0 -36
  329. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +0 -163
  330. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +0 -42
  331. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +0 -67
  332. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +0 -40
  333. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +0 -122
  334. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +0 -131
  335. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +0 -138
  336. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +0 -41
  337. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +0 -88
  338. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
  339. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +0 -115
  340. package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +0 -72
  341. package/src/skills/decompose-plan/tests/index.yaml +0 -45
  342. package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +0 -21
  343. package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +0 -21
  344. package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +0 -21
  345. package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +0 -21
  346. package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +0 -21
  347. package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +0 -21
  348. package/src/skills/decompose-plan/workflows/decompose.md +0 -305
  349. package/src/skills/deep-research/README.md +0 -36
  350. package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
  351. package/src/skills/deep-research/algorithms/synthesis.md +0 -67
  352. package/src/skills/deep-research/knowledge/data-validation.md +0 -44
  353. package/src/skills/deep-research/knowledge/perplexity-config.md +0 -30
  354. package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
  355. package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
  356. package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
  357. package/src/skills/deep-research/templates/brief-summary.md +0 -25
  358. package/src/skills/deep-research/templates/research-report.md +0 -76
  359. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +0 -48
  360. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +0 -88
  361. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +0 -56
  362. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +0 -163
  363. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +0 -58
  364. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +0 -249
  365. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +0 -44
  366. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +0 -96
  367. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +0 -56
  368. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +0 -94
  369. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +0 -11
  370. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +0 -1
  371. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +0 -1
  372. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +0 -115
  373. package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +0 -58
  374. package/src/skills/deep-research/tests/index.yaml +0 -20
  375. package/src/skills/deep-research/tests/rubrics/self-check-url.md +0 -34
  376. package/src/skills/deep-research/workflows/base-checklist.md +0 -19
  377. package/src/skills/deep-research/workflows/benchmark.md +0 -38
  378. package/src/skills/deep-research/workflows/competitor.md +0 -44
  379. package/src/skills/deep-research/workflows/custom.md +0 -32
  380. package/src/skills/deep-research/workflows/market.md +0 -44
  381. package/src/skills/deep-research/workflows/technology.md +0 -40
  382. package/src/skills/deep-research/workflows/trend.md +0 -40
  383. package/src/skills/execute-task/README.md +0 -44
  384. package/src/skills/execute-task/algorithms/execution-strategy.md +0 -136
  385. package/src/skills/execute-task/knowledge/context-checkpoints.md +0 -75
  386. package/src/skills/execute-task/knowledge/ticket-structure.md +0 -70
  387. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +0 -5
  388. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +0 -5
  389. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +0 -5
  390. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +0 -124
  391. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +0 -4
  392. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +0 -4
  393. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +0 -4
  394. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +0 -4
  395. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +0 -4
  396. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +0 -11
  397. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +0 -88
  398. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +0 -48
  399. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +0 -5
  400. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +0 -6
  401. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +0 -5
  402. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +0 -124
  403. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +0 -4
  404. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +0 -4
  405. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +0 -8
  406. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +0 -9
  407. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +0 -26
  408. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +0 -4
  409. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +0 -89
  410. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +0 -44
  411. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +0 -5
  412. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +0 -5
  413. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +0 -5
  414. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +0 -46
  415. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +0 -37
  416. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +0 -46
  417. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +0 -18
  418. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +0 -16
  419. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +0 -14
  420. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +0 -124
  421. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +0 -5
  422. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +0 -5
  423. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +0 -1
  424. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +0 -8
  425. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +0 -5
  426. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +0 -4
  427. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +0 -89
  428. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +0 -50
  429. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +0 -5
  430. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +0 -5
  431. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +0 -5
  432. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +0 -124
  433. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +0 -15
  434. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +0 -4
  435. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +0 -5
  436. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +0 -11
  437. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +0 -11
  438. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +0 -4
  439. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +0 -88
  440. package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +0 -39
  441. package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +0 -41
  442. package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +0 -40
  443. package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +0 -42
  444. package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +0 -41
  445. package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +0 -40
  446. package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +0 -36
  447. package/src/skills/execute-task/tests/index.yaml +0 -39
  448. package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +0 -22
  449. package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +0 -20
  450. package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +0 -21
  451. package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +0 -23
  452. package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +0 -22
  453. package/src/skills/execute-task/workflows/execute.md +0 -104
  454. package/src/skills/manual-testing/README.md +0 -63
  455. package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +0 -74
  456. package/src/skills/manual-testing/algorithms/bug-severity.md +0 -73
  457. package/src/skills/manual-testing/algorithms/mcp-budget.md +0 -97
  458. package/src/skills/manual-testing/algorithms/test-prioritization.md +0 -69
  459. package/src/skills/manual-testing/knowledge/browser-extension-testing.md +0 -102
  460. package/src/skills/manual-testing/knowledge/browser-tools.md +0 -114
  461. package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +0 -92
  462. package/src/skills/manual-testing/knowledge/desktop-tools-core.md +0 -76
  463. package/src/skills/manual-testing/knowledge/sandbox-advanced.md +0 -83
  464. package/src/skills/manual-testing/knowledge/sandbox-core.md +0 -67
  465. package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +0 -69
  466. package/src/skills/manual-testing/knowledge/test-case-design.md +0 -107
  467. package/src/skills/manual-testing/knowledge/testing-types.md +0 -45
  468. package/src/skills/manual-testing/templates/bug-report.md +0 -52
  469. package/src/skills/manual-testing/templates/test-case.md +0 -34
  470. package/src/skills/manual-testing/templates/test-plan.md +0 -97
  471. package/src/skills/manual-testing/templates/test-session-report.md +0 -56
  472. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +0 -34
  473. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +0 -32
  474. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +0 -30
  475. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +0 -163
  476. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
  477. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +0 -7
  478. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
  479. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +0 -4
  480. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +0 -15
  481. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +0 -8
  482. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +0 -5
  483. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +0 -7
  484. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +0 -7
  485. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +0 -114
  486. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +0 -38
  487. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +0 -44
  488. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +0 -32
  489. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +0 -47
  490. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +0 -163
  491. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +0 -19
  492. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +0 -15
  493. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +0 -24
  494. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +0 -19
  495. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +0 -13
  496. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +0 -18
  497. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +0 -21
  498. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +0 -15
  499. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +0 -14
  500. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +0 -114
  501. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +0 -37
  502. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +0 -76
  503. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +0 -71
  504. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +0 -85
  505. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +0 -46
  506. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +0 -36
  507. package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +0 -65
  508. package/src/skills/manual-testing/tests/index.yaml +0 -30
  509. package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +0 -140
  510. package/src/skills/manual-testing/tests/last-run-tc002.log +0 -1
  511. package/src/skills/manual-testing/tests/last-run.log +0 -1469
  512. package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +0 -31
  513. package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +0 -20
  514. package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +0 -21
  515. package/src/skills/manual-testing/workflows/acceptance.md +0 -80
  516. package/src/skills/manual-testing/workflows/exploratory.md +0 -84
  517. package/src/skills/manual-testing/workflows/regression.md +0 -76
  518. package/src/skills/manual-testing/workflows/smoke.md +0 -109
  519. package/src/skills/manual-testing/workflows/test-plan.md +0 -75
  520. package/src/skills/review-result/README.md +0 -59
  521. package/src/skills/review-result/algorithms/verification.md +0 -112
  522. package/src/skills/review-result/knowledge/dod-patterns.md +0 -115
  523. package/src/skills/review-result/knowledge/test-hygiene.md +0 -44
  524. package/src/skills/review-result/scripts/verify-artifacts.js +0 -497
  525. package/src/skills/review-result/templates/verdict.md +0 -153
  526. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +0 -22
  527. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +0 -7
  528. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +0 -21
  529. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +0 -6
  530. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +0 -6
  531. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +0 -18
  532. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +0 -164
  533. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +0 -5
  534. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +0 -7
  535. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +0 -6
  536. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +0 -49
  537. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +0 -28
  538. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +0 -37
  539. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +0 -22
  540. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +0 -13
  541. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +0 -21
  542. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +0 -116
  543. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +0 -51
  544. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +0 -23
  545. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +0 -22
  546. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +0 -28
  547. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +0 -4
  548. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +0 -36
  549. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +0 -4
  550. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +0 -163
  551. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +0 -4
  552. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
  553. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +0 -4
  554. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +0 -39
  555. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +0 -25
  556. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +0 -32
  557. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +0 -34
  558. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +0 -8
  559. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +0 -23
  560. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +0 -115
  561. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +0 -39
  562. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-1.md +0 -7
  563. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -7
  564. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-3.md +0 -7
  565. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/judge.json +0 -163
  566. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-1.md +0 -5
  567. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-2.md +0 -5
  568. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-3.md +0 -11
  569. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-1.md +0 -16
  570. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-2.md +0 -18
  571. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-3.md +0 -17
  572. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-1.md +0 -17
  573. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-2.md +0 -31
  574. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-3.md +0 -5
  575. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/meta.json +0 -115
  576. package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003-test-isolation.yaml +0 -50
  577. package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +0 -43
  578. package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +0 -46
  579. package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/QA-904.md +0 -51
  580. package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/example-test.mjs +0 -36
  581. package/src/skills/review-result/tests/index.yaml +0 -30
  582. package/src/skills/review-result/tests/rubrics/path-line-suffix.md +0 -19
  583. package/src/skills/review-result/tests/rubrics/test-isolation.md +0 -20
  584. package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +0 -19
  585. package/src/skills/review-result/workflows/review.md +0 -209
@@ -1,82 +0,0 @@
1
- # Метрики и формулы отчётов
2
-
3
- Справочник метрик, формул и пороговых значений для формирования отчётов.
4
-
5
- ## Базовые метрики
6
-
7
- ### Распределение по статусам
8
-
9
- | Метрика | Формула | Описание |
10
- |---------|---------|----------|
11
- | Done rate | `done / total * 100%` | Процент завершённых задач |
12
- | Blocked rate | `blocked / total * 100%` | Процент заблокированных задач |
13
- | In-progress rate | `in_progress / total * 100%` | Процент задач в работе |
14
-
15
- ### Velocity
16
-
17
- | Метрика | Формула | Описание |
18
- |---------|---------|----------|
19
- | Velocity (задач/день) | `done_count / days_elapsed` | Средняя скорость закрытия задач |
20
- | Velocity (задач/неделю) | `done_count / weeks_elapsed` | Недельная velocity |
21
- | Cycle time | `avg(completed_at - created_at)` | Среднее время от создания до завершения |
22
-
23
- ### Прогресс по плану
24
-
25
- | Метрика | Формула | Описание |
26
- |---------|---------|----------|
27
- | Plan completion | `plan_done / plan_total * 100%` | Процент выполнения плана |
28
- | Plan health | см. пороги ниже | Общая оценка здоровья плана |
29
-
30
- ## Распределение по типам
31
-
32
- ```
33
- По типам:
34
- - IMPL: X (Y%)
35
- - FIX: X (Y%)
36
- - DOCS: X (Y%)
37
- - REVIEW: X (Y%)
38
- - ADMIN: X (Y%)
39
- - COACH: X (Y%)
40
- - RSH: X (Y%)
41
- ```
42
-
43
- ## Пороговые значения
44
-
45
- ### Blocked rate
46
-
47
- | Порог | Значение | Сигнал |
48
- |-------|----------|--------|
49
- | Норма | < 10% | Всё в порядке |
50
- | Внимание | 10-25% | Нужно обратить внимание на блокеры |
51
- | Критично | > 25% | Системная проблема с блокерами |
52
-
53
- ### Velocity тренд
54
-
55
- | Тренд | Определение | Сигнал |
56
- |-------|-------------|--------|
57
- | Растёт | Текущая > предыдущей на 10%+ | Положительная динамика |
58
- | Стабильна | Разница < 10% | Нормальный ритм |
59
- | Падает | Текущая < предыдущей на 10%+ | Требуется анализ причин |
60
-
61
- ### Plan health
62
-
63
- | Статус | Условие | Описание |
64
- |--------|---------|----------|
65
- | ON_TRACK | completion >= expected_by_time | План идёт по графику |
66
- | AT_RISK | completion < expected_by_time на 10-25% | Риск отставания |
67
- | OFF_TRACK | completion < expected_by_time на 25%+ | План отстаёт |
68
-
69
- ## Формат таблицы статистики
70
-
71
- ```markdown
72
- | Статус | Количество | % |
73
- |--------|-----------|---|
74
- | Выполнено | N | X% |
75
- | В работе | N | X% |
76
- | Заблокировано | N | X% |
77
- | В очереди (ready) | N | X% |
78
- | Бэклог | N | X% |
79
- | **Итого** | **N** | **100%** |
80
- ```
81
-
82
- <!-- РАСШИРЕНИЕ: добавляй новые метрики и формулы ниже -->
@@ -1,383 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * calc-metrics.js — автоматизированный расчёт метрик для create-report.
5
- *
6
- * Реализует алгоритм из algorithms/metric-calculation.md:
7
- * 1. Velocity (done_count / days_elapsed)
8
- * 2. Plan health (completion_pct - expected_pct)
9
- * 3. Distribution by type
10
- * 4. Anomalies detection
11
- *
12
- * Использование:
13
- * node calc-metrics.js <PLAN-NNN>
14
- *
15
- * Вывод: JSON через маркеры ---RESULT---
16
- */
17
-
18
- import fs from 'fs';
19
- import path from 'path';
20
- import { findProjectRoot } from 'workflow-ai/lib/find-root.mjs';
21
- import { parseFrontmatter, printResult } from 'workflow-ai/lib/utils.mjs';
22
- import { createLogger } from 'workflow-ai/lib/logger.mjs';
23
-
24
- const logger = createLogger();
25
-
26
- const PROJECT_DIR = findProjectRoot();
27
- const TICKETS_DIR = path.join(PROJECT_DIR, '.workflow', 'tickets');
28
- const PLANS_DIR = path.join(PROJECT_DIR, '.workflow', 'plans', 'current');
29
- const TICKET_DIRS = ['done', 'in-progress', 'blocked', 'ready', 'backlog', 'archive'];
30
-
31
- /**
32
- * Нормализует ID плана в формат PLAN-NNN
33
- */
34
- function normalizePlanId(raw) {
35
- if (!raw) return null;
36
- const basename = path.basename(raw, '.md');
37
- const full = basename.match(/^plan-(\d+)$/i);
38
- if (full) return `PLAN-${String(parseInt(full[1], 10)).padStart(3, '0')}`;
39
- const num = raw.trim().match(/^(\d+)$/);
40
- if (num) return `PLAN-${String(parseInt(num[1], 10)).padStart(3, '0')}`;
41
- return null;
42
- }
43
-
44
- /**
45
- * Собирает все тикеты указанного плана из всех директорий tickets/
46
- */
47
- function collectPlanTickets(planId) {
48
- const tickets = [];
49
- const warnings = [];
50
-
51
- for (const dirName of TICKET_DIRS) {
52
- const dir = path.join(TICKETS_DIR, dirName);
53
- if (!fs.existsSync(dir)) continue;
54
-
55
- const files = fs.readdirSync(dir).filter(f => f.endsWith('.md') && f !== '.gitkeep.md');
56
- for (const file of files) {
57
- const filePath = path.join(dir, file);
58
- let content;
59
- try {
60
- content = fs.readFileSync(filePath, 'utf8');
61
- } catch (e) {
62
- warnings.push(`Failed to read ${file}: ${e.message}`);
63
- continue;
64
- }
65
-
66
- let parsed;
67
- try {
68
- parsed = parseFrontmatter(content);
69
- } catch (e) {
70
- warnings.push(`Failed to parse frontmatter in ${file}: ${e.message}`);
71
- continue;
72
- }
73
-
74
- const { frontmatter } = parsed;
75
- if (!frontmatter || typeof frontmatter !== 'object') {
76
- warnings.push(`Invalid frontmatter in ${file}`);
77
- continue;
78
- }
79
-
80
- const ticketPlanId = normalizePlanId(frontmatter.parent_plan);
81
- if (ticketPlanId === normalizePlanId(planId)) {
82
- tickets.push({
83
- id: frontmatter.id || file.replace('.md', ''),
84
- title: frontmatter.title || 'Unknown',
85
- type: frontmatter.type || 'unknown',
86
- status: dirName,
87
- created_at: frontmatter.created_at || null,
88
- updated_at: frontmatter.updated_at || null,
89
- completed_at: frontmatter.completed_at || null,
90
- raw: frontmatter,
91
- body: parsed.body || ''
92
- });
93
- }
94
- }
95
- }
96
-
97
- return { tickets, warnings };
98
- }
99
-
100
- /**
101
- * Находит файл плана по ID
102
- */
103
- function findPlanFile(planId) {
104
- if (!fs.existsSync(PLANS_DIR)) return null;
105
- const files = fs.readdirSync(PLANS_DIR).filter(f => f.endsWith('.md'));
106
- const normalized = normalizePlanId(planId);
107
- return files.find(f => normalizePlanId(f) === normalized) || null;
108
- }
109
-
110
- /**
111
- * Парсит план и возвращает его метаданные
112
- */
113
- function parsePlan(planFileName) {
114
- if (!planFileName) return null;
115
- const planPath = path.join(PLANS_DIR, planFileName);
116
- try {
117
- const content = fs.readFileSync(planPath, 'utf8');
118
- const { frontmatter } = parseFrontmatter(content);
119
- return frontmatter;
120
- } catch (e) {
121
- logger.warn(`Failed to parse plan ${planFileName}: ${e.message}`);
122
- return null;
123
- }
124
- }
125
-
126
- /**
127
- * 1. Расчёт velocity: done_count / days_elapsed
128
- */
129
- function calcVelocity(tickets, planData) {
130
- const doneTickets = tickets.filter(t => t.status === 'done' || t.status === 'archive');
131
- const doneCount = doneTickets.length;
132
-
133
- // Определяем days_elapsed
134
- let daysElapsed = 0;
135
- if (planData && planData.created_at) {
136
- const startDate = new Date(planData.created_at);
137
- const now = new Date();
138
- const diffMs = now.getTime() - startDate.getTime();
139
- daysElapsed = Math.max(diffMs / (1000 * 60 * 60 * 24), 1); // минимум 1 день
140
- } else {
141
- // Если нет дат плана — используем самую раннюю дату создания тикета
142
- const dates = tickets
143
- .map(t => t.created_at)
144
- .filter(Boolean)
145
- .map(d => new Date(d).getTime())
146
- .sort((a, b) => a - b);
147
- if (dates.length > 0) {
148
- const diffMs = Date.now() - dates[0];
149
- daysElapsed = Math.max(diffMs / (1000 * 60 * 60 * 24), 1);
150
- }
151
- }
152
-
153
- const velocityDay = daysElapsed > 0 ? doneCount / daysElapsed : 0;
154
- const velocityWeek = velocityDay * 7;
155
-
156
- return {
157
- done_count: doneCount,
158
- days_elapsed: Math.round(daysElapsed * 100) / 100,
159
- velocity_day: Math.round(velocityDay * 100) / 100,
160
- velocity_week: Math.round(velocityWeek * 100) / 100
161
- };
162
- }
163
-
164
- /**
165
- * 2. Расчёт plan health: completion_pct - expected_pct
166
- */
167
- function calcPlanHealth(tickets, planData) {
168
- const totalTickets = tickets.length;
169
- const doneTickets = tickets.filter(t => t.status === 'done' || t.status === 'archive').length;
170
-
171
- const completionPct = totalTickets > 0 ? (doneTickets / totalTickets) * 100 : 0;
172
-
173
- let expectedPct = 100;
174
- let status = 'ON_TRACK';
175
-
176
- if (planData && planData.created_at) {
177
- const startDate = new Date(planData.created_at);
178
- const now = new Date();
179
-
180
- // Если в плане есть общая длительность или endDate — используем её
181
- // Иначе используем 14 дней как дефолт
182
- let totalDays = 14;
183
- if (planData.end_date) {
184
- const endDate = new Date(planData.end_date);
185
- totalDays = Math.max((endDate - startDate) / (1000 * 60 * 60 * 24), 1);
186
- } else if (planData.duration_days) {
187
- totalDays = planData.duration_days;
188
- }
189
-
190
- const daysSinceStart = Math.max((now - startDate) / (1000 * 60 * 60 * 24), 0);
191
- expectedPct = Math.min((daysSinceStart / totalDays) * 100, 100);
192
-
193
- const delta = completionPct - expectedPct;
194
-
195
- if (delta >= 0) {
196
- status = 'ON_TRACK';
197
- } else if (delta > -25) {
198
- status = 'AT_RISK';
199
- } else {
200
- status = 'OFF_TRACK';
201
- }
202
- }
203
-
204
- return {
205
- total_tickets: totalTickets,
206
- done_tickets: doneTickets,
207
- completion_pct: Math.round(completionPct * 100) / 100,
208
- expected_pct: Math.round(expectedPct * 100) / 100,
209
- delta: Math.round((completionPct - expectedPct) * 100) / 100,
210
- health_status: status
211
- };
212
- }
213
-
214
- /**
215
- * 3. Distribution by type
216
- */
217
- function calcDistribution(tickets) {
218
- const total = tickets.length;
219
- if (total === 0) return {};
220
-
221
- const byType = {};
222
- for (const ticket of tickets) {
223
- const type = ticket.type || 'unknown';
224
- byType[type] = (byType[type] || 0) + 1;
225
- }
226
-
227
- const distribution = {};
228
- for (const [type, count] of Object.entries(byType)) {
229
- distribution[type] = {
230
- count,
231
- pct: Math.round((count / total) * 100 * 100) / 100
232
- };
233
- }
234
-
235
- return distribution;
236
- }
237
-
238
- /**
239
- * 4. Anomalies detection
240
- */
241
- function detectAnomalies(tickets, velocity) {
242
- const anomalies = [];
243
- const now = new Date();
244
-
245
- // Velocity drop — нужно сравнить с предыдущим отчётом
246
- // Пока только zero velocity detection
247
- if (velocity.velocity_day === 0 && velocity.done_count === 0) {
248
- anomalies.push({
249
- type: 'zero_velocity',
250
- severity: 'HIGH',
251
- message: 'No tickets completed in the period'
252
- });
253
- }
254
-
255
- // Blocked accumulation
256
- const blockedTickets = tickets.filter(t => t.status === 'blocked');
257
- const totalTickets = tickets.length;
258
- if (totalTickets > 0) {
259
- const blockedRate = (blockedTickets.length / totalTickets) * 100;
260
- if (blockedRate > 25) {
261
- anomalies.push({
262
- type: 'blocked_accumulation',
263
- severity: 'HIGH',
264
- message: `Blocked rate ${Math.round(blockedRate * 100) / 100}% > 25% threshold`,
265
- blocked_count: blockedTickets.length,
266
- blocked_rate: Math.round(blockedRate * 100) / 100
267
- });
268
- }
269
- }
270
-
271
- // Stale in-progress — tickets with updated_at > 3 days ago
272
- const staleTickets = tickets.filter(t => {
273
- if (t.status !== 'in-progress') return false;
274
- if (!t.updated_at) return true; // нет updated_at = потенциально stale
275
- const updatedAt = new Date(t.updated_at);
276
- const daysSinceUpdate = (now - updatedAt) / (1000 * 60 * 60 * 24);
277
- return daysSinceUpdate > 3;
278
- });
279
-
280
- for (const ticket of staleTickets) {
281
- const daysSince = Math.round(((now - new Date(ticket.updated_at)) / (1000 * 60 * 60 * 24)) * 100) / 100;
282
- anomalies.push({
283
- type: 'stale_in_progress',
284
- severity: 'MEDIUM',
285
- message: `Ticket ${ticket.id} in-progress, last updated ${daysSince} days ago`,
286
- ticket_id: ticket.id,
287
- days_stale: daysSince
288
- });
289
- }
290
-
291
- // Result without move — in-progress с непустым Result
292
- const resultWithoutMove = tickets.filter(t => {
293
- if (t.status !== 'in-progress') return false;
294
- // Проверяем наличие секции Result / Результат выполнения
295
- const hasResult = /^##\s*(Результат выполнения|Result)\s*$/m.test(t.body || '');
296
- if (!hasResult) return false;
297
- // Проверяем, что секция содержит реальный контент
298
- const resultMatch = (t.body || '').match(/^##\s*(Результат выполнения|Result)\s*$/m);
299
- if (!resultMatch) return false;
300
- const afterResult = (t.body || '').substring(resultMatch.index);
301
- const nextSection = afterResult.match(/^##\s+/gm);
302
- const sectionContent = nextSection
303
- ? afterResult.substring(0, afterResult.search(/^##\s+/gm))
304
- : afterResult;
305
- const withoutComments = sectionContent.replace(/<!--[\s\S]*?-->/g, '').trim();
306
- return withoutComments.length > 0;
307
- });
308
-
309
- for (const ticket of resultWithoutMove) {
310
- anomalies.push({
311
- type: 'result_without_move',
312
- severity: 'MEDIUM',
313
- message: `Ticket ${ticket.id} has result but still in-progress`,
314
- ticket_id: ticket.id
315
- });
316
- }
317
-
318
- return anomalies;
319
- }
320
-
321
- /**
322
- * Основная функция
323
- */
324
- async function main() {
325
- const planIdArg = process.argv[2];
326
-
327
- if (!planIdArg) {
328
- console.error('Ошибка: не указан ID плана');
329
- console.error('Использование: node calc-metrics.js <PLAN-NNN>');
330
- process.exit(1);
331
- }
332
-
333
- const planId = normalizePlanId(planIdArg);
334
- if (!planId) {
335
- console.error(`Ошибка: невалидный ID плана "${planIdArg}". Ожидается формат PLAN-NNN или число.`);
336
- process.exit(1);
337
- }
338
-
339
- logger.info(`Calculating metrics for ${planId}`);
340
-
341
- // Собираем тикеты
342
- const { tickets, warnings } = collectPlanTickets(planId);
343
- if (tickets.length === 0) {
344
- logger.warn(`No tickets found for plan ${planId}`);
345
- }
346
-
347
- // Ищем план
348
- const planFileName = findPlanFile(planId);
349
- const planData = parsePlan(planFileName);
350
-
351
- // Считаем метрики
352
- const velocity = calcVelocity(tickets, planData);
353
- const health = calcPlanHealth(tickets, planData);
354
- const distribution = calcDistribution(tickets);
355
- const anomalies = detectAnomalies(tickets, velocity);
356
-
357
- // Формируем результат
358
- const result = {
359
- plan_id: planId,
360
- total_tickets: tickets.length,
361
- velocity,
362
- plan_health: health,
363
- distribution,
364
- anomalies,
365
- warnings: warnings.length > 0 ? warnings : undefined
366
- };
367
-
368
- // Вывод через ---RESULT---
369
- console.log('---RESULT---');
370
- console.log(JSON.stringify(result, null, 2));
371
- console.log('---RESULT---');
372
-
373
- // Дополнительная информация в stderr
374
- logger.info(`Metrics calculated: ${tickets.length} tickets, ${anomalies.length} anomalies`);
375
- }
376
-
377
- main().catch(err => {
378
- console.error(`Ошибка: ${err.message}`);
379
- console.log('---RESULT---');
380
- console.log(JSON.stringify({ error: err.message }, null, 2));
381
- console.log('---RESULT---');
382
- process.exit(1);
383
- });
@@ -1,25 +0,0 @@
1
- ## Секция «Проблемы» — фрагмент по QA-001
2
-
3
- ```markdown
4
- ### ⏭ Пропущенные тикеты
5
-
6
- | Тикет | Статус | Стейдж принятия решения | Причина | Источник |
7
- |-------|--------|------------------------|---------|----------|
8
- | QA-001 | skipped | `check-relevance` | `dependencies_inactive` | pipeline_2026-04-06_12-00-00.log:2166 |
9
-
10
- **QA-001** — пропущен на стейдже `check-relevance`.
11
-
12
- - **Решение:** `status="irrelevant"`, `reason="dependencies_inactive"`
13
- - **Лог:** `pipeline_2026-04-06_12-00-00.log`, строка 2166
14
- ```
15
- [check-relevance] COMPLETE stage="check-relevance" ticket_id="QA-001" status="irrelevant" reason="dependencies_inactive"
16
- ```
17
- - **Root cause:** зависимости тикета неактивны → стейдж `check-relevance` признал тикет нерелевантным для текущей итерации и выдал skip.
18
- - **Коррекция атрибуции:** в REPORT-002 причина пропуска была ошибочно отнесена к стейджу `check-conditions`. По текущему логу решение принято на стейдже `check-relevance` — до `check-conditions`. Атрибуция исправлена.
19
- ```
20
-
21
- ---
22
-
23
- **Пояснение по атрибуции:**
24
-
25
- Стейджи в пайплайне выполняются последовательно: `check-relevance` предшествует `check-conditions`. Поскольку `check-relevance` завершил обработку QA-001 со статусом `irrelevant`, до `check-conditions` выполнение не дошло. REPORT-002 содержал ошибку атрибуции — текущий отчёт её исправляет со ссылкой на конкретную строку лога.
@@ -1,26 +0,0 @@
1
- Достаточно данных. Формирую фрагмент секции «Проблемы».
2
-
3
- ---
4
-
5
- ## Проблемы
6
-
7
- ### Пропущенные тикеты (skipped)
8
-
9
- - **QA-001** — ⏭ skipped стейджем `check-relevance` в строке лога **2166**
10
- с причиной `dependencies_inactive`.
11
- Лог: `pipeline_2026-04-06_12-00-00.log:2166`
12
-
13
- > Цитата из лога:
14
- > ```
15
- > [check-relevance] COMPLETE stage="check-relevance" ticket_id="QA-001" status="irrelevant" reason="dependencies_inactive"
16
- > ```
17
-
18
- **Уточнение по классу компонента:** `check-relevance` — это **скил**, исполняемый агентом (не скрипт). Решение о нерелевантности принято на уровне агентного стейджа, а не проверки условий.
19
-
20
- **Коррекция предыдущей атрибуции:** В отчёте REPORT-002 root cause был ошибочно атрибутирован стейджу `check-conditions`. Текущий лог однозначно указывает на `check-relevance` как на источник решения — `check-conditions` в строке 2166 и в окружающем контексте не фигурирует. Атрибуция из REPORT-002 **не переносится** в настоящий отчёт.
21
-
22
- **Root cause (верифицирован по логу):** зависимости тикета QA-001 неактивны на момент прогона (`dependencies_inactive`) — стейдж `check-relevance` признал тикет нерелевантным и пропустил его.
23
-
24
- ---
25
-
26
- **Основание атрибуции:** строка 2166 файла `pipeline_2026-04-06_12-00-00.log`, поле `reason` записи `COMPLETE`.
@@ -1,28 +0,0 @@
1
- Я прочитал рубрику (`root-cause-attribution.md`) и алгоритм шага 6.1 из `workflows/standard.md`. Теперь у меня есть всё для точной атрибуции.
2
-
3
- ---
4
-
5
- ## Фрагмент секции «Проблемы» — тикет QA-001
6
-
7
- ```markdown
8
- ### Пропущенные тикеты (⏭ skipped)
9
-
10
- - Тикет QA-001: ⏭ skipped стейджем `check-relevance` в строке лога 2166
11
- с причиной `dependencies_inactive`.
12
- Лог: `pipeline_2026-04-06_12-00-00.log:2166`
13
- ```
14
-
15
- ---
16
-
17
- **Пояснение атрибуции:**
18
-
19
- Строка лога 2166 явно идентифицирует виновника:
20
-
21
- ```
22
- [check-relevance] COMPLETE stage="check-relevance" ticket_id="QA-001"
23
- status="irrelevant" reason="dependencies_inactive"
24
- ```
25
-
26
- - **Стейдж-виновник:** `check-relevance` — это **скил**, исполняемый агентом (не путать с `check-conditions`, который является **скриптом** `.workflow/src/scripts/check-conditions.js`).
27
- - **Причина:** `dependencies_inactive` — зависимости тикета неактивны в момент запуска пайплайна.
28
- - **Атрибуция из REPORT-002 (`check-conditions`) — неверна** и в текущий отчёт не переносится. Текущий лог однозначно указывает на `check-relevance`. Согласно правилу шага 6.1: каждый инцидент верифицируется по своему логу независимо.