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,40 @@
1
+ # Воркфлоу: TREND — Исследование трендов
2
+
3
+ Выявление и анализ трендов в индустрии: что меняется, куда движется рынок.
4
+
5
+ ## Алгоритм выполнения
6
+
7
+ ### 1. Определи скоуп
8
+
9
+ - Какая индустрия/ниша
10
+ - Временной горизонт (текущие тренды, прогнозы)
11
+ - Контекст заказчика (зачем нужны тренды)
12
+
13
+ ### 2. Собери данные о трендах
14
+
15
+ Источники:
16
+ 1. Google Trends — динамика поисковых запросов
17
+ 2. Отраслевые отчёты — прогнозы аналитиков
18
+ 3. Конференции/вебинары — темы докладов
19
+ 4. Инвестиции/стартапы — куда идут деньги (Crunchbase, PitchBook)
20
+ 5. Технологические блоги — emerging tech
21
+ 6. Регуляторные изменения — новые законы, стандарты
22
+
23
+ ### 3. Классифицируй тренды
24
+
25
+ | Категория | Описание |
26
+ |-----------|----------|
27
+ | **Mega-trend** | Фундаментальный сдвиг (5+ лет) |
28
+ | **Macro-trend** | Устойчивое направление (2-5 лет) |
29
+ | **Micro-trend** | Текущая волна (6-24 мес) |
30
+ | **Fad** | Краткосрочный хайп (< 6 мес) |
31
+
32
+ ### 4. Оцени каждый тренд
33
+
34
+ - Стадия: emerging → growing → mature → declining
35
+ - Импакт на бизнес заказчика: HIGH/MEDIUM/LOW
36
+ - Timeframe: когда станет критичным
37
+
38
+ ### 5. Завершение → `workflows/base-checklist.md`
39
+
40
+ Дополнительно проверь: тренды классифицированы, импакт и timeframe указаны, факты отделены от прогнозов.
@@ -0,0 +1,44 @@
1
+ # Execute-task
2
+
3
+ Скил исполнения задач из тикетов workflow. Берёт тикет из `in-progress/`, выполняет работу и записывает результат.
4
+
5
+ ## Структура
6
+
7
+ ```
8
+ execute-task/
9
+ ├── SKILL.md # Ядро: роль, ограничения, принципы
10
+ ├── README.md # Этот файл
11
+ ├── algorithms/
12
+ │ └── execution-strategy.md # Стратегия анализа, выполнения и верификации задачи
13
+ ├── workflows/
14
+ │ └── execute.md # Единый универсальный воркфлоу выполнения
15
+ └── knowledge/
16
+ └── ticket-structure.md # Структура тикета, поля и их семантика
17
+ ```
18
+
19
+ ## Как это работает
20
+
21
+ 1. **Читает тикет** из `in-progress/` по `ticket_id` из контекста
22
+ 2. **Определяет подход** по описанию и DoD тикета (не по типу)
23
+ 3. **Изучает контекст** — читает файлы из `context.files`
24
+ 4. **Выполняет работу** по шагам воркфлоу
25
+ 5. **Проверяет DoD** — все критерии готовности должны быть выполнены
26
+ 6. **Записывает результат** в секцию Result тикета
27
+ 7. **НЕ перемещает тикет** — это делает pipeline автоматически
28
+
29
+ ## Принцип работы
30
+
31
+ Скил **не знает** о типах задач проекта (`impl`, `qa`, `admin` и т.д.). Маршрутизация агентов по типам — ответственность pipeline (`pipeline.yaml:agent_by_type`). Скил работает одинаково для любого типа: читает тикет → понимает задачу из описания → выполняет → проверяет DoD.
32
+
33
+ ## Как расширять
34
+
35
+ ### Добавить knowledge-модуль
36
+
37
+ 1. Создать файл в `knowledge/` (например, `knowledge/code-standards.md`)
38
+ 2. Добавить запись в таблицу «Загрузка знаний» в `SKILL.md`
39
+ 3. Добавить маркер расширения: `<!-- РАСШИРЕНИЕ: ... -->`
40
+
41
+ ### Примеры расширений
42
+
43
+ - `knowledge/code-standards.md` — стандарты кода проекта
44
+ - `knowledge/testing-guide.md` — руководство по тестированию
@@ -0,0 +1,292 @@
1
+ ---
2
+ name: execute-task
3
+ description: >
4
+ Скил исполнения задач из тикетов workflow. Читает тикет из in-progress,
5
+ выполняет работу по описанию и DoD тикета, проверяет критерии готовности
6
+ и записывает результат. Перемещение тикета выполняется отдельным stage.
7
+ ---
8
+
9
+ # Execute-task — Agent Skill
10
+
11
+ ## Роль
12
+
13
+ Ты — исполнитель задач. Твоя задача — взять тикет из `in-progress/`, выполнить описанную работу и записать результат.
14
+
15
+ **Ты делаешь:** чтение тикета, анализ контекста, выполнение работы по описанию и DoD, проверка критериев готовности, запись результата.
16
+
17
+ **Ты НЕ делаешь:** создание тикетов, создание планов, перемещение тикетов, обновление статусов в frontmatter.
18
+
19
+ ## ⛔ КРИТИЧЕСКИЕ ОГРАНИЧЕНИЯ
20
+
21
+ **Execute-task — скил ИСПОЛНЕНИЯ. Он НЕ создаёт артефакты workflow.**
22
+
23
+ При выполнении задачи **КАТЕГОРИЧЕСКИ ЗАПРЕЩЕНО:**
24
+
25
+ 1. **Создавать файлы тикетов** в `.workflow/tickets/` (любая папка: backlog, ready, in-progress, review, done). Запрет распространяется не только на физическое создание файла — **запрещено также и словесно предлагать/декларировать** создание нового тикета в stdout-ответе или в секции Result: фразы вида «заведу отдельный тикет», «создам bug-report», «оформлю дефект как отдельный тикет», «рекомендую создать дефект-тикет» — эквивалент нарушения. Обнаруженный дефект фиксируется **внутри текущего тикета** (в его Result / Заметках). Если по итогам работы действительно нужна следующая задача — формулируй её как рекомендацию в секции `### Рекомендации для следующего плана`, не упоминая слово «тикет» в повелительной/будущей форме.
26
+ 2. **Создавать файлы планов** в `.workflow/plans/`
27
+ 3. **Вызывать скилы** декомпозиции, создания плана
28
+ 4. **Интерпретировать DoD буквально**, если DoD содержит «создать тикеты» или «декомпозировать в тикеты» — это рекомендация для следующего плана, а НЕ инструкция к действию
29
+ 5. **Перемещать тикет или менять его статус** — запрещено перемещать файл (mv, rename, Write в другую папку), вызывать `move-ticket.js`, а также **любым способом записывать поля `status` и `completed_at` в файл тикета** — ни обновление существующих, ни добавление новых строк. Эти поля управляются исключительно скриптами пайплайна.
30
+ ⛔ **Антипаттерн (ломает пайплайн):**
31
+ ```yaml
32
+ tags:
33
+ - cleanup
34
+ status: done # ← ЗАПРЕЩЕНО: агент дописал → дубль ключа → скрипт падает
35
+ completed_at: "..." # ← ЗАПРЕЩЕНО
36
+ ```
37
+ Скрипты пайплайна парсят frontmatter через строгий YAML-парсер — дублирующий ключ вызывает исключение `duplicated mapping key` и тикет застревает в текущей директории навсегда.
38
+ 6. **Заполнять секцию `## Ревью`** в тикете — это компетенция только скила ревью
39
+ 7. **Создавать вспомогательные файлы вне scope тикета** — если для выполнения задачи не хватает инфраструктуры (нет доступа к API, нет нужного инструмента), зафиксируй `status: blocked` с причиной. Признак нарушения: создаёшь файл, не описанный в тикете и не являющийся прямым deliverable задачи — зафиксируй blocked вместо создания обходного решения.
40
+ 8. **Создавать итерационные дубли файлов** (суффиксы `-v2`, `-v3`, `-fixed`, `-manual` и т.п.) — если нужно исправить существующий файл, отредактируй его. Не создавай новую версию рядом со старой — это засоряет проект и не решает проблему.
41
+ 9. **Призрачное выполнение** — запрещено выводить `---RESULT---` с `status: default`, если секция Result в файле тикета пуста или не содержит evidence выполненных пунктов DoD. Нарушение ведёт к блокировке пайплайна и повторным инцидентам. Перед выводом RESULT убедись, что:
42
+ - Секция Result содержит evidence по каждому выполненному пункту DoD
43
+ - Секция «Изменённые файлы» содержит все созданные/изменённые файлы (если требуются DoD)
44
+ - Все пункты DoD отмечены `[x]` или указана причина невыполнения
45
+ - Проверочные команды (build/test/lint) запущены и их вывод приложен (если требуется)
46
+
47
+ 10. **Модифицировать тикеты вне `in-progress/`** — запрещено выполнять Edit/Write на файлы тикетов из `backlog/`, `ready/`, `review/`, `done/`. Исполнитель работает только со своим тикетом в `in-progress/`. Признак нарушения: путь к файлу тикета содержит директорию, отличную от `in-progress/`.
48
+
49
+ **Если задача требует создания тикетов/планов как deliverable:**
50
+ → Зафиксируй рекомендации в секции `### Рекомендации для следующего плана` результата тикета
51
+ → Человек решит, создавать ли следующий план
52
+
53
+ **Почему:** Без этого ограничения возникает каскад: скил выполнения создаёт план → скил декомпозиции создаёт тикеты → backlog разрастается без контроля человека.
54
+
55
+ ## Загрузка знаний
56
+
57
+ Подгружай модули из `knowledge/` по необходимости:
58
+
59
+ | Модуль | Когда загружать |
60
+ |--------|----------------|
61
+ | `knowledge/ticket-structure.md` | При необходимости уточнить семантику полей тикета |
62
+ | `knowledge/context-checkpoints.md` | При задаче с > 5 шагами DoD или при continuation прерванной сессии |
63
+ | `../shared/*` | Перед началом работы — проверь индекс (`../shared/README.md`) и загрузи релевантные модули |
64
+
65
+ ## Загрузка алгоритмов
66
+
67
+ Подгружай из `algorithms/` когда нужен формализованный метод:
68
+
69
+ | Алгоритм | Когда загружать |
70
+ |----------|----------------|
71
+ | `algorithms/execution-strategy.md` | **ВСЕГДА** — стратегия анализа, выполнения и верификации задачи |
72
+
73
+ ## Шаги выполнения
74
+
75
+ ### 1. Прочитать тикет
76
+
77
+ **ОБЯЗАТЕЛЬНО:** Используй ТОЛЬКО `ticket_id` из секции Context промпта.
78
+
79
+ ```
80
+ Путь: .workflow/tickets/in-progress/{TICKET-ID}.md
81
+ ```
82
+
83
+ Если тикет не найден в `in-progress/`, проверь `review/`.
84
+
85
+ Извлечь:
86
+ - Описание задачи
87
+ - Критерии готовности (Definition of Done)
88
+ - Контекст (файлы, ссылки, заметки)
89
+
90
+ ### 2. Проверить существующий прогресс
91
+
92
+ **ОБЯЗАТЕЛЬНО перед началом работы** проверь, не выполнялся ли тикет ранее:
93
+
94
+ 1. **Секция `## Result` / `## Результат выполнения`** — если есть, тикет уже частично или полностью выполнен
95
+ 2. **Секция `## Ревью`** — если есть, тикет проходил ревью; прочитай замечания ревьюера
96
+ 3. **Пункты DoD** — `[x]` = уже выполнено и подтверждено, `[ ]` = ещё не выполнено
97
+
98
+ **Правила продолжения:**
99
+
100
+ | Ситуация | Действие |
101
+ |----------|----------|
102
+ | Result есть, ревью нет | Проверь незавершённые пункты DoD (`[ ]`). Доделай только их. Дополни существующий Result, не переписывай |
103
+ | Result есть, ревью без замечаний к качеству | Доделай только невыполненные пункты DoD. Дополни Result |
104
+ | Result есть, ревью с замечаниями | Исправь **только** то, что указано в замечаниях ревью. Остальное не трогай |
105
+ | Result нет | Выполняй тикет с нуля (шаги 3-8) |
106
+
107
+ **⚠️ Антипаттерн:** Переделывать уже выполненную и не раскритикованную работу. Если TC-001 уже пройден с evidence и ревью не указывает на проблему — НЕ перепроходи TC-001.
108
+
109
+ ### 3. Понять задачу
110
+
111
+ Определить из описания и DoD тикета:
112
+ - Что нужно сделать (или что **осталось** сделать — с учётом шага 2)
113
+ - Какой результат ожидается
114
+ - Какие есть ограничения
115
+
116
+ Если не хватает информации → вывести `status: blocked` в блоке результата.
117
+
118
+ ### 4. Изучить контекст
119
+
120
+ 1. Прочитать все файлы из `context.files` инструментом Read
121
+ 2. Изучить `context.references` — внешние ссылки, документация
122
+ 3. Прочитать `context.notes` — дополнительный контекст от создателя тикета
123
+ 4. Если тикет ссылается на план (`parent_plan`) — прочитать план для понимания общей картины
124
+
125
+ ### 5. Выполнить работу и фиксировать результат инкрементально
126
+
127
+ Действовать по описанию и DoD тикета. Подход определяется **содержимым тикета**, а не типом:
128
+
129
+ - Если тикет требует изменения кода — следовать методологиям TDD, SOLID, DRY
130
+ - Если тикет требует изменения файлов — обязательно Read → Edit/Write → Verify (перечитать для проверки)
131
+ - Если тикет требует тестирования — выполнить чеклист проверок из DoD, зафиксировать pass/fail по каждому пункту
132
+ - Если тикет требует исследования — использовать доступные инструменты для сбора данных, подкреплять источниками
133
+
134
+ **⚠️ ИНКРЕМЕНТАЛЬНАЯ ЗАПИСЬ (ОБЯЗАТЕЛЬНО):**
135
+
136
+ После выполнения **каждого пункта** — **сразу** запиши результат в тикет:
137
+ 1. Обнови чекбокс **в оригинальной секции тикета, где он определён**: замени `[ ]` → `[x]` (+ комментарий если есть дефект/наблюдение). Это относится ко **всем** чеклистам тикета — основной чеклист проверок (тест-кейсы, критерии), DoD (`## Definition of Done` / `## Критерии готовности`), и любые другие секции с `[ ]`.
138
+ 2. Добавь/дополни описание результата в секции Result (тест-кейс, что сделано, evidence)
139
+
140
+ ⛔ **НЕ создавай дубль-чеклист в секции Result.** Обновляй чекбоксы **только в тех секциях, где они уже определены** автором тикета. В секции Result записывай развёрнутое описание, evidence, заметки — но **не копируй туда чеклист с повторной разметкой `[x]`**. Скрипт `verify-artifacts` проверяет только оригинальные секции по заголовку — дубль-секция с `[x]` будет проигнорирована, и тикет застрянет в цикле retry → blocked.
141
+
142
+ ⛔ **НЕ дублируй чеклист в stdout-ответе.** Запрет распространяется не только на файл тикета, но и на текст, который ты выводишь в ответе пайплайну (stdout). Перечисление выполненных пунктов DoD с маркерами `[x]`, `✅`, `✓` в stdout — это такой же дубль, как отдельная секция в файле. Признак нарушения: ответ содержит список из 2+ пунктов DoD с галочками. Вместо этого в stdout выводи **одно-двухстрочное содержательное summary** («выполнено: создан модуль X, покрыт 7 unit-тестами, документация дополнена») без перечисления пунктов DoD. Сам факт выполнения DoD проверяется по оригинальным чекбоксам в файле тикета, а не по дубликату в stdout.
143
+
144
+ Это защищает от потери прогресса при обрыве сессии. Не откладывай запись на конец — записывай по ходу.
145
+
146
+ ### 6. Финальная проверка критериев готовности
147
+
148
+ Для каждого критерия из Definition of Done:
149
+ - Выполнен ли он?
150
+ - Если нет — доделать
151
+ - Если невыполним — зафиксировать причину в заметках
152
+
153
+ **Для тикетов тестирования (QA):** пункт DoD считается выполненным `[x]`, если сценарий **проверен** — независимо от результата проверки. Если тестируемый функционал отсутствует или сломан, отметь пункт как `[x]` и укажи что выявлен дефект (например: `[x] Тема light ↔ dark — **ДЕФЕКТ: функционал отсутствует в продукте, см. DEF-XXX-N**`). Задача тестировщика — проверить и задокументировать, а не починить продукт.
154
+
155
+ ### 7. Записать итоговый результат
156
+
157
+ К этому моменту секция Result уже содержит результаты по каждому пункту (записаны инкрементально на шаге 5). Осталось:
158
+
159
+ - Обновить/добавить **Summary** — краткое резюме всей работы
160
+ - Дополнить **Изменённые файлы** и **Заметки** если нужно
161
+ - **НЕ удалять и не переписывать** уже записанные результаты
162
+
163
+ **⛔ НЕ трогай секцию `## Ревью`** — не создавай, не заполняй, не редактируй. Ревью проводится отдельным скилом ревью на следующем этапе пайплайна. Если ты сам проставишь ревью — пайплайн сломается (ревьюер пропустит проверку, считая что она уже была).
164
+
165
+ **Если секции Result ещё нет** (первое выполнение с нуля) — она уже должна быть создана на шаге 5. Если нет — создай:
166
+
167
+ ```markdown
168
+ ## Result
169
+
170
+ ### Что сделано
171
+ - ...
172
+
173
+ ### Изменённые файлы
174
+ - ...
175
+
176
+ ### Заметки
177
+ - ...
178
+ ```
179
+
180
+ ### 8. Правила работы с MCP-browser (Playwright)
181
+
182
+ Все взаимодействия с браузером **ОБЯЗАТЕЛЬНО** должны использовать профиль из конфига проекта (`.mcp.json`).
183
+
184
+ | Конфиг | Профиль | Когда использовать |
185
+ |--------|---------|-------------------|
186
+ | `.mcp.json` (дефолт) | Chrome + user-data-dir | **Всегда по умолчанию** |
187
+ | `.workflow/config/mcp-browser-auth.json` | headless + user-data-dir | Headless с авторизацией |
188
+ | `.workflow/config/mcp-browser.json` | headless без профиля | Только для задач без авторизации |
189
+
190
+ После завершения работы с браузером — **обязательно** вызови `browser_close`.
191
+
192
+ ### 9. Вывести структурированный результат
193
+
194
+ **⛔ ОБЯЗАТЕЛЬНАЯ МЕХАНИЧЕСКАЯ ПРОВЕРКА — перечитай файл тикета перед RESULT:**
195
+
196
+ Перед выводом `---RESULT---` выполни `Read` на файл тикета (`.workflow/tickets/in-progress/{TICKET-ID}.md`) и глазами убедись:
197
+
198
+ 1. **Ни одного чекбокса `[ ]`** в секции критериев готовности / DoD. Все переведены в `[x]` или помечены причиной невыполнения (`[x] Пункт — не применимо: <причина>`).
199
+ 2. **Секция `## Result` / `## Результат выполнения` физически заполнена** — содержит реальный текст (summary, изменённые файлы, заметки), а не оставлена в виде скелета-шаблона с `### Что сделано\n- ...`.
200
+ 3. **Frontmatter не содержит добавленных строк `status:` или `completed_at:`** (эти поля устанавливает только пайплайн).
201
+
202
+ Если хоть один пункт нарушен — **вернись к шагу 5 или 7** и выполни правки инструментом `Edit` на файл тикета. Не обходи эту проверку: вывод `---RESULT---` при пустом Result или `[ ]`-чекбоксах считается **призрачным выполнением** (см. ограничение #9) и ведёт к retry → blocked.
203
+
204
+ **Внутренний self-check перед RESULT (не выводи в stdout — это проверка для себя):**
205
+
206
+ Пройдись мысленно по пунктам. Если хоть один не выполнен — вернись к шагам 5-7 и исправь. Не копируй этот список в stdout.
207
+
208
+ - Файл тикета перечитан `Read`'ом после всех правок (см. механическую проверку выше)
209
+ - Каждый пункт DoD отмечен `[x]` или зафиксирована причина невыполнения
210
+ - Если изменён код или тесты — проверочная команда проекта (build/test/lint) была фактически запущена, её вывод приложен к Result, итоговый статус зелёный (или `status: blocked` с выводом ошибки)
211
+ - Секция Result НЕ пустая — содержит реальный контент, а не только заголовки шаблона
212
+ - Каждый выполненный пункт DoD имеет соответствующий evidence в Result
213
+ - Секция Result содержит summary, изменённые файлы, заметки
214
+ - Все созданные файлы перечитаны (Read) после записи
215
+ - Все файлы, созданные или изменённые при выполнении задачи, перечислены в секции «Изменённые файлы» (пайплайн проверяет их существование механически)
216
+ - Все файлы из `context.files` были доступны (без permission denied); при ошибках — `status: blocked`, не `status: default`
217
+ - Секция Result записана через **Edit** в файл тикета, а не только выведена текстом в stdout
218
+ - Scope не расширен — изменены только файлы из DoD/context
219
+ - Нет побочных эффектов — не созданы тикеты/планы, не перемещены файлы
220
+ - Поля `status` и `completed_at` не записаны в файл тикета ни в каком виде
221
+ - Секция `## Ревью` не создавалась и не редактировалась тобой
222
+
223
+ **⛔ ФОРМАТ STDOUT — СТРОГО:**
224
+
225
+ 1. **Одна содержательная строка** (≤ 25 слов) с тем, что фактически сделано: «выполнено: создан модуль slugify.ts, покрыт 7 unit-тестами, дополнена CONFIG.md». Без префиксов «✅ Проверка:», «Резюме:», без перечислений.
226
+ 2. Далее **только** блок `---RESULT---` / `status: default` / `---RESULT---`.
227
+
228
+ **⛔ ЗАПРЕЩЕНО В STDOUT:**
229
+ - Перечислять пункты DoD (с `[x]`, `✅`, `✓`, `-`) — даже как «отчёт о проверке».
230
+ - Декларировать результаты self-check: «✅ Все чекбоксы отмечены», «✅ Result заполнен», «Frontmatter не модифицирован». Self-check — для себя, не для stdout.
231
+ - Выводить подзаголовки «Выполнено:», «Проверка:», «Резюме:» c последующими bullet-списками из 2+ элементов.
232
+
233
+ Признак нарушения: в твоём выводе перед `---RESULT---` есть список из 2+ строк с маркерами `-`/`*`/`✅`/`✓`/`[x]`. Если видишь это в черновике — сверни всё в одну строку summary.
234
+
235
+ **Пример правильного вывода:**
236
+
237
+ ```
238
+ выполнено: создан src/utils/slugify.ts, покрыт 7 unit-тестами (happy-path + edge cases), добавлена CONFIG.md
239
+ ---RESULT---
240
+ status: default
241
+ ---RESULT---
242
+ ```
243
+
244
+ **Пример неправильного вывода (запрещено):**
245
+
246
+ ```
247
+ Проверка:
248
+ - ✅ Все чекбоксы DoD отмечены [x]
249
+ - ✅ Result заполнен с summary
250
+ - ✅ Frontmatter не модифицирован
251
+ ---RESULT---
252
+ status: default
253
+ ---RESULT---
254
+ ```
255
+
256
+ ## Принципы
257
+
258
+ 1. **Scope Guard** — выполняй только то, что описано в тикете, не расширяй scope
259
+ 2. **Context First** — всегда читай контекстные файлы перед началом работы
260
+ 3. **DoD Driven** — все критерии готовности должны быть выполнены
261
+ 4. **No Side Effects** — не создавай артефакты workflow (тикеты, планы), не перемещай файлы тикетов
262
+ 5. **TDD/SOLID/DRY** — при написании кода следуй этим методологиям
263
+ 6. **Minimal Thinking** — между tool-вызовами максимум 1 короткая строка. Задачи выполняются в фоне, пользователь не читает промежуточный вывод. Развёрнутый анализ и выводы записывай в результат тикета
264
+ 7. **Semantic Naming** — файлы, создаваемые при выполнении тикета (тесты, скрипты, модули), именуются по **сути содержимого**, а не по ID тикета. Тикет — временная единица работы, файл остаётся в кодовой базе надолго. Пример: `edge-cases-stress.spec.ts`, а не `qa-031-edge-cases.spec.ts`. ID тикета можно указать в комментарии внутри файла, но не в имени файла
265
+ 8. **Соразмерность проверки критерию** — способ верификации должен соответствовать формулировке критерия. Структурная проверка (наличие элемента, существование файла, определена ли функция) **не закрывает** смысловой критерий (визуальное соответствие, читаемость, поведение). Перед выбором способа задай себе вопрос: «если моя проверка пройдёт, гарантирует ли она выполнение критерия?» Если ответ «нет, формально зелёная ≠ критерий закрыт» — выбери другой способ.
266
+
267
+ **Быстрые соответствия:**
268
+ - «Визуально соответствует макету» → **скриншот + pixel-diff** (Playwright screenshot, Percy). DOM/querySelector/DevTools Inspector **недостаточен** — он подтверждает наличие элемента, но не его цвет/размер/позицию.
269
+ - «Функция обрабатывает edge cases» → **unit-тесты на конкретных входах** с assert ожидаемого вывода. «Функция определена» недостаточно.
270
+ - «HTTP endpoint возвращает корректный JSON» → **реальный запрос + валидация схемы**. «fetch есть в коде» недостаточно.
271
+
272
+ ⛔ **Антипаттерн: смешивание равноправно.** Формулировки вида «проверим через DOM Inspector **и** скриншот» допускают DOM как достаточное средство. Чётко разделяй: **основная проверка** — соразмерная критерию (для визуального — скриншот); **вспомогательная** — диагностика, не подтверждение.
273
+
274
+ При визуальных/семантических/поведенческих критериях в Result **явно обоснуй**, почему структурной проверки недостаточно (одна строка). Полная таблица соответствий — `algorithms/execution-strategy.md` раздел «Соразмерность проверки критерию».
275
+
276
+ ## Формат вывода
277
+
278
+ - Русский язык
279
+ - Структурированный результат с секциями
280
+ - Конкретные изменения с указанием файлов
281
+ - Блок `---RESULT---` в конце
282
+
283
+ ## Границы компетенции
284
+
285
+ - **Создание планов/тикетов** → рекомендации в секции Result
286
+ - **Перемещение тикетов** → pipeline (автоматически)
287
+ - **Улучшение скилов** → соответствующий скил проекта
288
+ - **Стратегические решения** → скил планирования
289
+
290
+ ---
291
+
292
+ **Регрессионные тесты:** `tests/index.yaml`. Прогон: `node .workflow/src/scripts/run-skill-tests.js --skill execute-task`
@@ -0,0 +1,136 @@
1
+ # Алгоритм: Стратегия выполнения задачи
2
+
3
+ ## Вход
4
+
5
+ Тикет с описанием, DoD, `context.files`, `context.notes`.
6
+
7
+ ## 1. Анализ задачи
8
+
9
+ Оцени сложность и определи характеристики:
10
+
11
+ | Фактор | Простая | Средняя | Сложная |
12
+ |--------|---------|---------|---------|
13
+ | Файлов в context | 1–2 | 3–5 | 6+ |
14
+ | Пунктов DoD | 1–3 | 4–6 | 7+ |
15
+ | Зависимости | нет | внутри проекта | внешние/кросс-модульные |
16
+ | Требует исследования | нет | частично | да, перед выполнением |
17
+
18
+ **Пример:** тикет «обновить таблицу загрузки в SKILL.md» — 1 файл, 2 DoD, 0 зависимостей → простая.
19
+
20
+ ## 2. Выбор подхода
21
+
22
+ | Условие | Подход |
23
+ |---------|--------|
24
+ | DoD содержит конкретные изменения файлов | Сразу выполнять: Read → Edit → Verify |
25
+ | DoD требует анализа/исследования | Сначала собрать данные, затем выполнять |
26
+ | context.notes указывает на проблему без решения | Диагностировать → предложить решение → выполнить |
27
+ | Есть предыдущий Result или ревью | Продолжить с точки останова (не переделывать) |
28
+
29
+ **Порог переключения:** если после 3 попыток подход не даёт прогресса → зафиксировать причину, отметить `status: blocked`.
30
+
31
+ **Пример:** тикет «создать алгоритм metric-calculation.md» — DoD конкретен (файл + секции), context.files указаны → подход «сразу выполнять».
32
+
33
+ ### ⛔ Соразмерность проверки критерию
34
+
35
+ **Способ верификации должен соответствовать формулировке критерия.** Структурная проверка (наличие элемента, существование файла, существование функции) **НЕ закрывает** смысловой критерий (визуальное соответствие, читаемость, семантическая корректность).
36
+
37
+ **Таблица соответствий:**
38
+
39
+ | Формулировка критерия | Адекватный способ проверки | Недостаточный способ |
40
+ |-----------------------|----------------------------|----------------------|
41
+ | «Кнопка визуально соответствует макету» | Скриншот + pixel-diff с макетом (Playwright screenshot, Percy, BackstopJS) | DOM-селектор «кнопка существует», DevTools inspector, `querySelector` |
42
+ | «Текст читаем пользователем» | Contrast-check (axe, Lighthouse) + визуальная инспекция рендера | Проверка что `<p>` есть в DOM |
43
+ | «Endpoint возвращает корректный JSON» | HTTP-запрос + parse JSON + валидация схемы | `fetch` есть в коде |
44
+ | «Функция обрабатывает edge cases» | Unit-тесты на конкретные edge-входы с assert ожидаемого вывода | «Функция определена» |
45
+ | «Миграция безопасна для прод-данных» | Dry-run на копии прод-данных + проверка инвариантов до/после | «Миграционный файл создан» |
46
+
47
+ **Правило диагностики:** прежде чем выбрать способ проверки, задай себе вопрос: «если моя проверка пройдёт, **гарантирует ли она** выполнение критерия?» Если ответ «нет, может быть формально зелёная, а критерий не закрыт» — проверка не соразмерна, возьми другую.
48
+
49
+ **⛔ Антипаттерн: смешивание структурной и смысловой проверки как равных.** Формулировки вида «проверим через DevTools inspector **и** screenshot comparison» — неявно допускают DevTools как достаточное средство. В ответе чётко разделяй: **основная проверка** — соразмерная формулировке критерия, **вспомогательная** (если нужна) — может включать структурные средства для диагностики, но **не для подтверждения критерия**.
50
+
51
+ **Обоснуй выбор в Result:** при визуальных, семантических, поведенческих критериях — явно запиши, **почему** структурной проверки недостаточно (например: «DOM-проверка подтверждает наличие элемента, но не его цвет/размер/позицию; визуальный критерий требует сравнения рендера»).
52
+
53
+ ## 3. Выполнение
54
+
55
+ Чеклист шагов (независимо от подхода):
56
+
57
+ 1. **Изолируй** — определи scope: только файлы из DoD и context
58
+ 2. **Читай** — прочитай все context.files перед первым изменением
59
+ 3. **⛔ Permission-гейт:** если при чтении `context.files` получена ошибка permission denied для любого обязательного файла — немедленно выведи `status: blocked` с перечнем недоступных файлов. НЕ выполняй задачу частично, НЕ выводи `status: default`.
60
+ 4. **Изменяй** — вноси правки инкрементально, записывай результат после каждого пункта DoD
61
+ 5. **Проверяй** — после каждого Edit/Write перечитай файл (Read), убедись что изменение корректно
62
+
63
+ | Тип работы | Обязательный цикл |
64
+ |------------|-------------------|
65
+ | Изменение кода | Write → запустить проверочную команду проекта (build/test/lint) → Read результата → приложить вывод проверочной команды в Result |
66
+ | Изменение конфигурации | Read → Edit → Read (verify) |
67
+ | Создание файла | Write → Read (verify) → проверить ссылки |
68
+ | Тестирование | Выполнить сценарий → зафиксировать evidence → записать pass/fail |
69
+
70
+ **⚠️ Правило обязательной верификации запуском.** Если DoD содержит формулировки вида «тесты зелёные», «компилируется», «работает», «проходит проверку» — недостаточно факта внесения правок в исходники. Необходимо **фактически запустить** соответствующую проверочную команду (build, test, lint, type-check, run и т.п.) и приложить её вывод (последние строки stdout/stderr с итоговым статусом) в секцию Result. Если команда не указана явно — определи её из конфигурации проекта (package.json scripts, Makefile, README, инструкции скила или ранее использованные команды в логах). Если проверочная команда падает — это **не выполнение DoD**: либо доводи до зелёного, либо фиксируй `status: blocked` с выводом ошибки.
71
+
72
+ **Антипаттерн:** агент изменил `.ts` файлы, тесты написал в исходниках, но не запустил compile/test → артефакты сборки остались устаревшими → ревью находит расхождение между исходником и собранным результатом → failed. Этого можно избежать только запуском проверочной команды, а не визуальным контролем правок.
73
+
74
+ **Пример:** создание `knowledge/module.md` — Write файл → Read убедиться что записано → grep ссылки в SKILL.md.
75
+
76
+ ## 4. Верификация
77
+
78
+ ### ⛔ Антипаттерн: Призрачное выполнение
79
+
80
+ **Призрачное выполнение** — агент выводит `---RESULT---` с `status: default`, при этом секция Result в тикете остаётся пустой или не содержит реального evidence по пунктам DoD.
81
+
82
+ **Признаки:**
83
+ - Summary пустой или содержит только шаблонный текст без конкретики
84
+ - Пункты DoD отмечены `[x]`, но в Result нет описания: что именно сделано, что проверено, какой получен результат
85
+ - Секция «Изменённые файлы» пустая, хотя DoD требует создания или изменения файлов
86
+
87
+ **Пример ошибочного поведения:** агент выводит в stdout «Задача выполнена успешно», отмечает `[x]` в DoD, но не вызывает Edit для записи Result в файл тикета. В логе пайплайна `result_filled: false`. **Недопустимо.**
88
+
89
+ **Пример правильного поведения:** агент после каждого пункта DoD вызывает Edit для обновления чекбоксов и записи evidence в секцию Result. Перед выводом `---RESULT---` проверяет чеклист, убеждается, что секция Result не пуста. В логе `result_filled: true`.
90
+
91
+ **⛔ Выход ЗАПРЕЩЁН**, если хотя бы одно из условий истинно:
92
+ 1. Секция Result пустая — не записана ни одна строка кроме заголовков шаблона
93
+ 2. Есть пункты DoD с `[x]`, но в Result отсутствует соответствующий evidence
94
+ 3. DoD требует создания или изменения файла, а секция «Изменённые файлы» в Result пустая или отсутствует
95
+
96
+ Если условие нарушено → вернись к шагу 5 и выполни работу реально.
97
+
98
+ ### ⛔ Антипаттерн: Запись итогов в stdout
99
+
100
+ **Stdout ≠ тикет.** Текст, выведенный в ответе агента (stdout), не обновляет файл тикета. Обновление тикета выполняется **исключительно через инструмент Edit** в файл тикета.
101
+
102
+ **Признаки нарушения:**
103
+ - В тексте ответа написано «обновлю тикет», «текущий статус» или описана выполненная работа, но инструмент Edit для файла тикета не вызывался
104
+ - Агент завершился с `status: default`, но секция Result в тикете пустая
105
+
106
+ **Частая причина:** контекст близок к лимиту — агент выбирает «быстрый» путь и выводит итог в текст вместо вызова Edit. Правильное действие при нехватке контекста: вывести `status: blocked` с причиной «контекст исчерпан, частичная работа выполнена», **не** `status: default`.
107
+
108
+ ### Чеклист
109
+
110
+ Перед завершением пройди чеклист:
111
+
112
+ - [ ] Каждый пункт DoD отмечен `[x]` или зафиксирована причина невыполнения
113
+ - [ ] **Если изменён код или тесты** — проверочная команда проекта (build/test/lint) была фактически запущена, её вывод приложен к Result, итоговый статус — зелёный (или `status: blocked` с выводом ошибки)
114
+ - [ ] **Секция Result НЕ пустая** — содержит реальный контент, а не только заголовки шаблона
115
+ - [ ] Каждый выполненный пункт DoD имеет соответствующий evidence в Result (что сделано / что проверено / какой результат)
116
+ - [ ] Секция Result содержит summary, изменённые файлы, заметки
117
+ - [ ] Все созданные файлы перечитаны (Read) после записи
118
+ - [ ] **Все файлы, созданные или изменённые при выполнении задачи, перечислены в секции «Изменённые файлы»** — пайплайн проверяет их существование механически; пустой список при наличии deliverable = сигнал призрачного выполнения → failed
119
+ - [ ] Все файлы из `context.files` были доступны (без permission denied); при наличии ошибок — выведен `status: blocked`, не `status: default`
120
+ - [ ] Секция Result записана через инструмент **Edit** в файл тикета, а не только выведена текстом в stdout
121
+ - [ ] Scope не расширен — изменены только файлы из DoD/context
122
+ - [ ] Нет побочных эффектов — не созданы тикеты/планы, не перемещены файлы
123
+ - [ ] Поля `status` и `completed_at` **не записаны** в файл тикета ни в каком виде — ни как обновление, ни как новые строки в конец frontmatter
124
+ - [ ] Секция `## Ревью` **не создавалась и не редактировалась тобой** — читать можно (шаг 2), писать в неё запрещено
125
+
126
+ **Порог готовности:** все `[x]` в DoD + Result содержит реальный evidence = задача готова.
127
+
128
+ **Пример:** после создания 2 файлов и обновления SKILL.md — перечитать все 3, проверить все 4 DoD → вывести `---RESULT---`.
129
+
130
+ ## Выход
131
+
132
+ Решение: `default` (задача выполнена) или `blocked` (с причиной).
133
+
134
+ **⛔ Правило блокировки при пустом Result:** если секция Result в файле тикета пуста (не содержит evidence) или не была записана через Edit, выведи `status: blocked` с причиной «призрачное выполнение — секция Result пуста, необходимо записать evidence». Не выводи `status: default`.
135
+
136
+ <!-- РАСШИРЕНИЕ: добавляй стратегии для новых типов задач ниже -->
@@ -0,0 +1,75 @@
1
+ ---
2
+ name: context-checkpoints
3
+ description: >
4
+ Управление контекстом при длительных задачах: anchored summary checkpoints
5
+ для предотвращения context drift и итерационной спирали.
6
+ type: knowledge
7
+ lazy: true
8
+ load_when: "задача содержит > 5 шагов DoD или это continuation прерванной сессии"
9
+ ---
10
+
11
+ # Управление контекстом: Checkpoints и Anchored Summary
12
+
13
+ ## Проблемы
14
+
15
+ | Проблема | Симптом | Причина |
16
+ |---------|---------|---------|
17
+ | Контекстный дрейф | Агент теряет исходную цель | Новая информация перекрывает исходный intent |
18
+ | Итерационная спираль | Каждая итерация открывает новую проблему | Нет фиксации прогресса между итерациями |
19
+ | Потеря прогресса | Continuation начинается с нуля | Отсутствует structured checkpoint до прерывания |
20
+
21
+ > Контекстный дрейф — причина 65% сбоев AI-агентов при многошаговых задачах (LogRocket, 2026).
22
+
23
+ ## Anchored Summary Pattern
24
+
25
+ **Источник:** Compressing Context (Factory.ai, 2025), AI Agent Context Compression (Zylos Research, 2026)
26
+
27
+ При выполнении задач с > 5 шагами DoD или при continuation сессии записывай **Anchored Summary** — структурированный чекпоинт:
28
+
29
+ ```
30
+ ## Anchored Summary (checkpoint)
31
+ - intent: "формулировка из оригинального DoD — не переформулировать"
32
+ - changes_made: ["файл X: изменено Y", "файл Z: добавлено W"]
33
+ - decisions: ["решено A вместо B — причина: ..."]
34
+ - next_steps: ["следующий шаг 1", "следующий шаг 2"]
35
+ ```
36
+
37
+ **Когда создавать checkpoint:**
38
+
39
+ 1. После каждых 5 изменений файлов
40
+ 2. Перед завершением сессии при незакрытых пунктах DoD (continuation protection)
41
+ 3. При возникновении неожиданной подзадачи (риск drift от оригинального intent)
42
+
43
+ **Где записывать:** секция `## Result → ### Заметки` тикета. Запись в тикет защищает от потери при обрыве сессии.
44
+
45
+ **Эффект:** снижение объёма повторной работы на 78–95% при прерываниях (Factory.ai, 2025).
46
+
47
+ ## Алгоритм применения
48
+
49
+ ```
50
+ 1. READ: прочитай intent из DoD тикета (оригинал, не переформулировать)
51
+ 2. WORK: выполняй шаги DoD
52
+ 3. CHECKPOINT (каждые 5 изменений):
53
+ - запиши Anchored Summary в Result тикета
54
+ 4. CONTINUATION (если сессия прерывалась):
55
+ a. Read последний Anchored Summary
56
+ b. Восстанови context из changes_made
57
+ c. Продолжай с next_steps
58
+ 5. DRIFT CHECK: если actual work отклоняется от intent > 1 шага → вернись к DoD
59
+ ```
60
+
61
+ ## Сигналы context drift
62
+
63
+ | Сигнал | Действие |
64
+ |--------|----------|
65
+ | Работаешь с файлами, не упомянутыми в DoD | СТОП → проверь DoD, фиксируй как "вне scope" |
66
+ | Количество шагов > 2× ожидаемого | Запиши checkpoint, переоцени DoD |
67
+ | Не можешь сформулировать intent в одной строке | Перечитай исходный тикет |
68
+
69
+ ## Совместимость со стеком
70
+
71
+ | Контекст | Где записывать checkpoint |
72
+ |----------|--------------------------|
73
+ | Задачи разработки (код, тесты) | `## Result → ### Заметки` тикета |
74
+ | QA-сессии (ручное тестирование) | В evidence-файл или секцию заметок тикета |
75
+ | Исследовательские задачи | В summary секцию тикета |