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,315 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * perplexity-research.js — обёртка для вызова Perplexity через kilo proxy без tool use.
5
+ *
6
+ * Проблема: kilo CLI всегда отправляет tool definitions → Perplexity через OpenRouter
7
+ * не поддерживает tool use и возвращает ошибку.
8
+ *
9
+ * Решение: вызываем OpenRouter API через kilo proxy напрямую (без tools),
10
+ * получаем текстовый ответ и выводим в stdout.
11
+ *
12
+ * Использование:
13
+ * node perplexity-research.js "тема исследования"
14
+ * node perplexity-research.js --model perplexity/sonar "тема"
15
+ * node perplexity-research.js --system "Ты исследователь..." "тема"
16
+ *
17
+ * Результат (markdown) выводится в stdout.
18
+ * Прогресс и ошибки — в stderr.
19
+ */
20
+
21
+ import fs from 'fs';
22
+ import path from 'path';
23
+ import http from 'http';
24
+ import https from 'https';
25
+ import { findProjectRoot } from '../../../lib/find-root.mjs';
26
+ import { createLogger } from '../../../lib/logger.mjs';
27
+
28
+ const logger = createLogger();
29
+
30
+ const AUTH_FILE = path.join(
31
+ process.env.HOME || process.env.USERPROFILE,
32
+ '.local', 'share', 'kilo', 'auth.json'
33
+ );
34
+
35
+ const API_URL = 'https://api.kilo.ai/api/openrouter/chat/completions';
36
+ const DEFAULT_MODEL = 'perplexity/sonar-deep-research';
37
+
38
+ const DEFAULT_SYSTEM_PROMPT = `Ты — опытный исследователь-аналитик. Проводи глубокие исследования по заданным темам.
39
+
40
+ Принципы:
41
+ - Каждый факт подкреплён ссылкой на источник. Нет источника = нет факта.
42
+ - Ключевые данные подтверждай минимум 2 независимыми источниками. Если не удалось — помечай [SINGLE SOURCE].
43
+ - Помечай уровень уверенности: [HIGH], [MEDIUM], [LOW].
44
+ - Всегда указывай дату данных.
45
+ - Отделяй факты от прогнозов и мнений.
46
+
47
+ Формат ответа:
48
+ 1. Executive Summary (3-5 предложений)
49
+ 2. Ключевые находки (с уровнями уверенности)
50
+ 3. Детальный анализ (данные, таблицы, сравнения)
51
+ 4. Выводы и рекомендации
52
+ 5. Пробелы и ограничения
53
+ 6. Источники (полный список с URL)
54
+
55
+ Язык: русский. Формат: markdown.`;
56
+
57
+ function parseArgs(argv) {
58
+ const args = argv.slice(2);
59
+ const result = {
60
+ model: DEFAULT_MODEL,
61
+ system: DEFAULT_SYSTEM_PROMPT,
62
+ message: null,
63
+ };
64
+
65
+ let i = 0;
66
+ const messageParts = [];
67
+
68
+ while (i < args.length) {
69
+ if (args[i] === '--model' && i + 1 < args.length) {
70
+ result.model = args[++i];
71
+ } else if (args[i] === '--system' && i + 1 < args.length) {
72
+ result.system = args[++i];
73
+ } else if (args[i] === '--help' || args[i] === '-h') {
74
+ console.log(`
75
+ Использование: node perplexity-research.js [опции] "тема исследования"
76
+
77
+ Результат (markdown) выводится в stdout.
78
+
79
+ Опции:
80
+ --model <id> Модель Perplexity (по умолчанию: ${DEFAULT_MODEL})
81
+ --system <text> Системный промпт (по умолчанию: встроенный промпт исследователя)
82
+ -h, --help Показать справку
83
+ `);
84
+ process.exit(0);
85
+ } else {
86
+ messageParts.push(args[i]);
87
+ }
88
+ i++;
89
+ }
90
+
91
+ result.message = messageParts.join(' ');
92
+ return result;
93
+ }
94
+
95
+ function loadKiloToken() {
96
+ if (!fs.existsSync(AUTH_FILE)) {
97
+ throw new Error(`Kilo auth file not found: ${AUTH_FILE}\nRun 'kilo auth login' first.`);
98
+ }
99
+
100
+ const auth = JSON.parse(fs.readFileSync(AUTH_FILE, 'utf-8'));
101
+ const kiloAuth = auth.kilo;
102
+
103
+ if (!kiloAuth || !kiloAuth.access) {
104
+ throw new Error('Kilo OAuth token not found in auth.json. Run "kilo auth login" first.');
105
+ }
106
+
107
+ if (kiloAuth.expires && Date.now() > kiloAuth.expires) {
108
+ throw new Error('Kilo OAuth token expired. Run "kilo auth login" to refresh.');
109
+ }
110
+
111
+ return kiloAuth.access;
112
+ }
113
+
114
+ function loadEnvFile() {
115
+ const PROJECT_DIR = findProjectRoot();
116
+ const envPath = path.join(PROJECT_DIR, '.workflow', 'config', '.env');
117
+ if (!fs.existsSync(envPath)) return;
118
+
119
+ const content = fs.readFileSync(envPath, 'utf-8');
120
+ for (const line of content.split('\n')) {
121
+ const trimmed = line.trim();
122
+ if (!trimmed || trimmed.startsWith('#')) continue;
123
+ const eq = trimmed.indexOf('=');
124
+ if (eq === -1) continue;
125
+ const key = trimmed.slice(0, eq).trim();
126
+ const val = trimmed.slice(eq + 1).trim();
127
+ if (!process.env[key]) {
128
+ process.env[key] = val;
129
+ }
130
+ }
131
+ }
132
+
133
+ function getProxyUrl() {
134
+ return process.env.HTTPS_PROXY || process.env.https_proxy
135
+ || process.env.HTTP_PROXY || process.env.http_proxy
136
+ || process.env.ALL_PROXY || process.env.all_proxy
137
+ || null;
138
+ }
139
+
140
+ function callPerplexityAPI(token, model, systemPrompt, userMessage) {
141
+ return new Promise((resolve, reject) => {
142
+ const payload = JSON.stringify({
143
+ model,
144
+ messages: [
145
+ { role: 'system', content: systemPrompt },
146
+ { role: 'user', content: userMessage },
147
+ ],
148
+ });
149
+
150
+ const targetUrl = new URL(API_URL);
151
+ const proxyUrl = getProxyUrl();
152
+
153
+ const requestHeaders = {
154
+ 'Content-Type': 'application/json',
155
+ 'Authorization': `Bearer ${token}`,
156
+ 'Content-Length': Buffer.byteLength(payload),
157
+ };
158
+
159
+ function handleResponse(res) {
160
+ let data = '';
161
+ res.on('data', (chunk) => { data += chunk; });
162
+ res.on('end', () => {
163
+ if (res.statusCode !== 200) {
164
+ reject(new Error(`API error ${res.statusCode}: ${data}`));
165
+ return;
166
+ }
167
+ try {
168
+ const json = JSON.parse(data);
169
+ resolve(json);
170
+ } catch (e) {
171
+ reject(new Error(`Failed to parse API response: ${e.message}\n${data}`));
172
+ }
173
+ });
174
+ }
175
+
176
+ let req;
177
+
178
+ if (proxyUrl) {
179
+ const proxy = new URL(proxyUrl);
180
+ const proxyAuth = proxy.username && proxy.password
181
+ ? `${decodeURIComponent(proxy.username)}:${decodeURIComponent(proxy.password)}`
182
+ : null;
183
+
184
+ const connectOptions = {
185
+ hostname: proxy.hostname,
186
+ port: parseInt(proxy.port) || 8080,
187
+ method: 'CONNECT',
188
+ path: `${targetUrl.hostname}:443`,
189
+ headers: {
190
+ 'Host': `${targetUrl.hostname}:443`,
191
+ },
192
+ };
193
+
194
+ if (proxyAuth) {
195
+ connectOptions.headers['Proxy-Authorization'] =
196
+ 'Basic ' + Buffer.from(proxyAuth).toString('base64');
197
+ }
198
+
199
+ logger.info(`Using proxy: ${proxy.hostname}:${proxy.port}`);
200
+
201
+ const proxyReq = http.request(connectOptions);
202
+
203
+ proxyReq.on('connect', (res, socket) => {
204
+ if (res.statusCode !== 200) {
205
+ reject(new Error(`Proxy CONNECT failed: ${res.statusCode}`));
206
+ socket.destroy();
207
+ return;
208
+ }
209
+
210
+ const tlsOptions = {
211
+ hostname: targetUrl.hostname,
212
+ path: targetUrl.pathname,
213
+ method: 'POST',
214
+ headers: requestHeaders,
215
+ socket,
216
+ agent: false,
217
+ };
218
+
219
+ req = https.request(tlsOptions, handleResponse);
220
+ req.on('error', (e) => reject(new Error(`Request failed: ${e.message}`)));
221
+ req.setTimeout(600000, () => {
222
+ req.destroy();
223
+ reject(new Error('Request timeout (10 minutes)'));
224
+ });
225
+ req.write(payload);
226
+ req.end();
227
+ });
228
+
229
+ proxyReq.on('error', (e) => reject(new Error(`Proxy connection failed: ${e.message}`)));
230
+ proxyReq.setTimeout(30000, () => {
231
+ proxyReq.destroy();
232
+ reject(new Error('Proxy connection timeout'));
233
+ });
234
+ proxyReq.end();
235
+
236
+ } else {
237
+ const options = {
238
+ hostname: targetUrl.hostname,
239
+ port: 443,
240
+ path: targetUrl.pathname,
241
+ method: 'POST',
242
+ headers: requestHeaders,
243
+ };
244
+
245
+ req = https.request(options, handleResponse);
246
+ req.on('error', (e) => reject(new Error(`Request failed: ${e.message}`)));
247
+ req.setTimeout(600000, () => {
248
+ req.destroy();
249
+ reject(new Error('Request timeout (10 minutes)'));
250
+ });
251
+ req.write(payload);
252
+ req.end();
253
+ }
254
+ });
255
+ }
256
+
257
+ function formatOutput(apiResponse, model, userMessage) {
258
+ const choice = apiResponse.choices?.[0];
259
+ if (!choice) throw new Error('No response from API');
260
+
261
+ const content = choice.message?.content || '';
262
+ const annotations = choice.message?.annotations || [];
263
+
264
+ let output = content;
265
+
266
+ if (annotations.length > 0) {
267
+ const urlCitations = annotations.filter(a => a.type === 'url_citation' && a.url_citation?.url);
268
+ const uniqueUrls = [...new Set(urlCitations.map(a => a.url_citation.url))];
269
+
270
+ if (uniqueUrls.length > 0) {
271
+ output += '\n\n---\n\n## Источники (автоматические цитаты)\n\n';
272
+ uniqueUrls.forEach((url, i) => {
273
+ const citation = urlCitations.find(a => a.url_citation.url === url);
274
+ const title = citation.url_citation.title || url;
275
+ output += `${i + 1}. [${title}](${url})\n`;
276
+ });
277
+ }
278
+ }
279
+
280
+ return output;
281
+ }
282
+
283
+ async function main() {
284
+ loadEnvFile();
285
+ const args = parseArgs(process.argv);
286
+
287
+ if (!args.message) {
288
+ console.error('Ошибка: не указана тема исследования');
289
+ console.error('Использование: node perplexity-research.js "тема исследования"');
290
+ process.exit(1);
291
+ }
292
+
293
+ logger.info(`Research query: ${args.message}`);
294
+ logger.info(`Model: ${args.model}`);
295
+
296
+ const token = loadKiloToken();
297
+
298
+ console.error(`Запуск исследования через ${args.model}...`);
299
+ console.error(`Ожидание ответа (deep research может занять до 5-10 минут)...`);
300
+
301
+ const response = await callPerplexityAPI(token, args.model, args.system, args.message);
302
+ const output = formatOutput(response, args.model, args.message);
303
+ const usage = response.usage || {};
304
+
305
+ // Результат — в stdout
306
+ console.log(output);
307
+
308
+ // Метаданные — в stderr
309
+ console.error(`Готово. Токены: ${usage.total_tokens || 'N/A'}, стоимость: $${usage.cost || 'N/A'}`);
310
+ }
311
+
312
+ main().catch((err) => {
313
+ console.error(`Ошибка: ${err.message}`);
314
+ process.exit(1);
315
+ });
@@ -0,0 +1,25 @@
1
+ # Шаблон: Краткая справка
2
+
3
+ Используется для быстрых исследовательских ответов, когда полный отчёт избыточен.
4
+
5
+ ## Структура
6
+
7
+ ```markdown
8
+ # Справка: {Тема}
9
+
10
+ **Дата:** {YYYY-MM-DD} | **Заказчик:** {тикет-ID}
11
+
12
+ ## Ответ
13
+
14
+ {2-3 абзаца с ключевыми данными и выводами}
15
+
16
+ ## Ключевые данные
17
+
18
+ | Метрика | Значение | Источник | Уверенность |
19
+ |---------|----------|----------|-------------|
20
+ | {метрика} | {значение} | {источник} | [HIGH/MEDIUM/LOW] |
21
+
22
+ ## Источники
23
+
24
+ 1. {Название} — {URL} ({дата})
25
+ ```
@@ -0,0 +1,76 @@
1
+ # Шаблон: Исследовательский отчёт
2
+
3
+ ## Структура отчёта
4
+
5
+ ```markdown
6
+ # {Тема исследования}
7
+
8
+ **Дата исследования:** {YYYY-MM-DD}
9
+ **Заказчик:** {тикет-ID, скил}
10
+ **Исследовательский вопрос:** {формулировка}
11
+ **Скоуп:** {что входит и не входит}
12
+
13
+ ---
14
+
15
+ ## Executive Summary
16
+
17
+ {3-5 предложений: главные находки, ключевой вывод, уровень уверенности}
18
+
19
+ ---
20
+
21
+ ## Ключевые находки
22
+
23
+ ### 1. {Находка}
24
+ **Уверенность:** [HIGH/MEDIUM/LOW]
25
+
26
+ {Описание находки}
27
+
28
+ | Источник | Данные | Дата |
29
+ |----------|--------|------|
30
+ | {название} | {факт/число} | {дата} |
31
+
32
+ ### 2. {Находка}
33
+ ...
34
+
35
+ ---
36
+
37
+ ## Детальный анализ
38
+
39
+ ### {Подтема 1}
40
+
41
+ {Развёрнутый анализ с данными, таблицами, сравнениями}
42
+
43
+ ### {Подтема 2}
44
+ ...
45
+
46
+ ---
47
+
48
+ ## Выводы и рекомендации
49
+
50
+ | # | Вывод | Уверенность | Рекомендация |
51
+ |---|-------|-------------|--------------|
52
+ | 1 | {тезис} | [HIGH] | {что делать} |
53
+ | 2 | {тезис} | [MEDIUM] | {что делать} |
54
+
55
+ ---
56
+
57
+ ## Пробелы и ограничения
58
+
59
+ - {Что не удалось найти и почему}
60
+ - {Какие данные требуют дополнительной верификации}
61
+ - {Известные ограничения методологии}
62
+
63
+ ---
64
+
65
+ ## За пределами скоупа
66
+
67
+ {Интересные находки, не входящие в скоуп, но потенциально полезные}
68
+
69
+ ---
70
+
71
+ ## Источники
72
+
73
+ | # | Название | URL | Тип | Дата | Оценка |
74
+ |---|----------|-----|-----|------|--------|
75
+ | 1 | {название} | {url} | {тип} | {дата} | {A/B/C} |
76
+ ```
@@ -0,0 +1,48 @@
1
+ Спасибо за ясные ограничения. Проведу исследование в рамках известного мне, с честной маркировкой пробелов.
2
+
3
+ ## Исследование: форматы файлов в Chrome Extension Manifest V3
4
+
5
+ ### Executive Summary
6
+ Chrome Extension Manifest V3 поддерживает стандартные веб-форматы: JSON для конфигурации, JavaScript для скриптов, HTML/CSS для интерфейса и изображения для иконок. MV3 ввёл строгие требования к структуре файлов и запретил некоторые форматы, используемые в MV2.
7
+
8
+ ### Основные находки
9
+
10
+ 1. **manifest.json** — обязательный конфигурационный файл в JSON формате, определяющий метаданные расширения, разрешения и структуру. [Источник: стандартный файл конфигурации всех Chrome Extensions, документированный на https://developer.chrome.com]
11
+
12
+ 2. **JavaScript (.js)** — поддерживаются для service workers (в MV3 замена background pages), content scripts, popup scripts и других скриптов расширения. [данные не найдены — конкретная ссылка на MV3 спецификацию не подтверждена]
13
+
14
+ 3. **HTML (.html)** — используются для UI элементов: popup страница, options страница, side panel и прочие интерфейсные окна. [данные не найдены]
15
+
16
+ 4. **CSS (.css)** — стандартные таблицы стилей для оформления HTML элементов расширения. [данные не найдены]
17
+
18
+ 5. **Форматы изображений для иконок** — PNG и JPG/JPEG документированы как поддерживаемые форматы иконок в различных размерах (16x16, 48x48, 128x128 пиксели). [данные не найдены — точный список форматов требует проверки в docs]
19
+
20
+ 6. **WebAssembly (.wasm)** — поддержка требует дополнительной проверки для MV3 специфично. [данные не найдены]
21
+
22
+ 7. **JSON данные (кроме manifest.json)** — возможно использование JSON для хранения данных в расширении, но это не задокументировано явно как отдельный формат. [данные не найдены]
23
+
24
+ 8. **Запрещённые форматы MV3**: inline скрипты в HTML (требуют отдельных .js файлов), eval() и подобные динамические выполнение кода, удалённые скрипты без Content Security Policy. [Источник: известное требование MV3 для безопасности, но конкретный URL требует проверки]
25
+
26
+ ### Выводы
27
+ Поддерживаемые форматы ограничены **веб-стандартами** (JSON, JS, HTML, CSS, изображения). MV3 более строгий к безопасности и требует явной структуры файлов — нет inline скриптов или eval(). Для полной спецификации всех поддерживаемых форматов требуется обращение к официальной документации Chrome.
28
+
29
+ ### Источники
30
+ - [Chrome Extensions Documentation](https://developer.chrome.com/docs/extensions/) — основной источник спецификаций (дата доступа: статическая, точная дата проверки недоступна)
31
+
32
+ ---
33
+
34
+ ## Self-check перед завершением тикета
35
+
36
+ - [x] **Result секция заполнена реальным содержимым** — отчёт содержит 8 фактов о форматах файлов MV3
37
+ - [x] **Артефакт существует и содержит реальные данные** — этот отчёт является полным результатом исследования
38
+ - [x] **Каждый пункт DoD пройден явно**:
39
+ - ✓ Executive Summary (3 предложения)
40
+ - ✓ Основные находки (8 фактов)
41
+ - ✓ Inline-маркировка источников/пробелов для каждого факта
42
+ - ✓ Уровень уверенности указан через `[данные не найдены]` или конкретный источник
43
+ - ✓ Multi-source verification: факты, требующие верификации, явно помечены
44
+ - [x] **Дисциплина пробелов соблюдена** — нет выдуманных URL, нет суррогатных пометок «требует верификации» без маркировки пробела; используются явные маркеры `[данные не найдены]` где источник неизвестен
45
+
46
+ **Ограничения этого исследования**: без доступа к живым инструментам поиска, отчёт основан на базовых знаниях о Chrome Extensions MV3. Для полной и актуальной информации требуется обращение к https://developer.chrome.com/docs/extensions/ с живым доступом.
47
+
48
+ ---RESULT---
@@ -0,0 +1,88 @@
1
+ # Deep Research: Chrome Extension Manifest V3 — Поддерживаемые форматы файлов
2
+
3
+ ## Executive Summary
4
+
5
+ Chrome Extension Manifest V3 (введён в 2023 году) определяет структуру расширения через JSON-манифест и поддерживает стандартные форматы для веб-контента (JavaScript, CSS, HTML, изображения). Точный перечень всех поддерживаемых форматов и их ограничений требует обращения к официальной документации Chrome.
6
+
7
+ ---
8
+
9
+ ## Основные находки
10
+
11
+ ### 1. **Обязательный формат: JSON для manifest.json**
12
+ Файл `manifest.json` является основным конфигурационным файлом расширения и **должен** быть в формате JSON (версия схемы V3). Это базовое требование Manifest V3. [источник неизвестен]
13
+
14
+ ### 2. **JavaScript для Service Workers (заменили Background Scripts)**
15
+ В Manifest V3 background scripts были заменены на Service Workers, которые пишутся на JavaScript. Поддерживается стандартный синтаксис ES6+. [источник неизвестен]
16
+
17
+ ### 3. **CSS для оформления UI элементов**
18
+ CSS-файлы поддерживаются для оформления popup окон, опции страниц и других UI компонентов расширения. [источник неизвестен]
19
+
20
+ ### 4. **HTML для структуры интерфейса**
21
+ HTML файлы используются для определения структуры popup, options page и других пользовательских интерфейсов. [источник неизвестен]
22
+
23
+ ### 5. **Поддерживаемые форматы изображений: PNG, JPEG, WebP, GIF**
24
+ Для иконок расширения поддерживаются растровые форматы. [источник неизвестен]
25
+
26
+ ### 6. **Ограничение на inline-скрипты в Manifest V3**
27
+ В отличие от MV2, Manifest V3 запрещает inline JavaScript в HTML (в атрибутах на элементах) из соображений безопасности — требуются отдельные .js файлы. [данные не найдены]
28
+
29
+ ### 7. **Поддержка JSON для данных и конфигурации**
30
+ JSON может использоваться не только для manifest.json, но и для хранения конфигурационных данных, передаваемых между компонентами расширения. [данные не найдены]
31
+
32
+ ### 8. **WASM (WebAssembly) поддержка**
33
+ [данные не найдены]
34
+
35
+ ---
36
+
37
+ ## Критические пробелы в исследовании
38
+
39
+ Поскольку живые инструменты поиска недоступны, я не смог верифицировать:
40
+
41
+ - **Полный перечень форматов** согласно официальной документации developer.chrome.com
42
+ - **Конкретные ограничения и версии** форматов (например, какие версии WebP поддерживаются)
43
+ - **Расширения файлов** для different типов ресурсов
44
+ - **Поддержку иных форматов** (WASM, JSON Schema, и т.д.)
45
+
46
+ ---
47
+
48
+ ## Рекомендации для полного исследования
49
+
50
+ Для получения авторитетного списка форматов файлов в Manifest V3 требуется:
51
+
52
+ 1. Обратиться к официальной документации: `https://developer.chrome.com/docs/extensions/mv3/` (проверить актуальность на апрель 2026)
53
+ 2. Просмотреть раздел "File Formats" или "Supported Resources"
54
+ 3. Проверить примеры в официальных sample-расширениях Chrome
55
+
56
+ ---
57
+
58
+ ## Дата исследования
59
+ 20 апреля 2026 г.
60
+
61
+ ---
62
+
63
+ ## Self-Check перед завершением
64
+
65
+ - [x] **Result секция заполнена** — содержит реальные данные исследования, не пустой шаблон
66
+ - [x] **Артефакт-файл существует** — этот отчёт является результатом исследования
67
+ - [x] **DoD проверен** — для каждого факта указан источник или явный маркер пробела (`[источник неизвестен]`, `[данные не найдены]`)
68
+ - [x] **Прямые URL проверены** — не добавлены выдуманные ссылки; используются честные маркеры неопределённости
69
+
70
+ **Уровень доверия исследования:** LOW-MEDIUM (требуется верификация через живые источники)
71
+
72
+ ---
73
+
74
+ ---RESULT---
75
+
76
+ **Исследование проведено в контексте ограничений (отсутствие живых инструментов поиска).**
77
+
78
+ Выявлено **8 фактов** о форматах файлов в Chrome Extension Manifest V3:
79
+ 1. JSON (обязательно для manifest.json)
80
+ 2. JavaScript (для Service Workers)
81
+ 3. CSS (для UI)
82
+ 4. HTML (для структуры)
83
+ 5. PNG/JPEG/WebP/GIF (изображения)
84
+ 6. Ограничение на inline-скрипты
85
+ 7. JSON для конфигурации
86
+ 8. WASM поддержка [не верифицирована]
87
+
88
+ **Для полного исследования требуется доступ к живым источникам.**
@@ -0,0 +1,56 @@
1
+ # Deep Research: Форматы файлов в Chrome Extension Manifest V3
2
+
3
+ ## Executive Summary
4
+
5
+ Chrome Extension Manifest V3 поддерживает ограниченный набор файловых форматов для различных компонентов расширения. Основной формат — JSON для самого манифеста. Для пользовательского интерфейса используются стандартные веб-форматы (HTML, CSS, JavaScript), а для графических ресурсов — растровые изображения и векторная графика. Точная документация по полному списку поддерживаемых форматов требует верификации в официальных источниках.
6
+
7
+ ## Основные находки
8
+
9
+ ### Поддерживаемые форматы файлов:
10
+
11
+ 1. **manifest.json** — обязательный формат JSON для описания структуры и конфигурации расширения [источник неизвестен]
12
+
13
+ 2. **HTML (.html)** — поддерживается для UI-страниц (popup, options page, side panel) [источник неизвестен]
14
+
15
+ 3. **CSS (.css)** — поддерживается для стилизации пользовательского интерфейса [источник неизвестен]
16
+
17
+ 4. **JavaScript (.js)** — поддерживается для service workers, content scripts и background scripts [источник неизвестен]
18
+
19
+ 5. **PNG (.png)** — поддерживаемый формат растровой графики для иконок расширения [источник неизвестен]
20
+
21
+ 6. **JPEG (.jpg, .jpeg)** — поддерживаемый формат для графических ресурсов [источник неизвестен]
22
+
23
+ 7. **WebP (.webp)** — современный формат растровой графики, поддерживаемый Chrome [источник неизвестен]
24
+
25
+ 8. **SVG (.svg)** — векторный формат графики для иконок и логотипов [источник неизвестен]
26
+
27
+ 9. **Ограничение на бинарные форматы** — MV3 имеет ограничения на использование некоторых типов контента, включая недопустимость встроенного JavaScript в HTML [источник неизвестен]
28
+
29
+ 10. **Локализация (i18n)** — использует JSON-файлы для строк перевода (messages.json в директории _locales) [источник неизвестен]
30
+
31
+ ## Заметки о надёжности данных
32
+
33
+ - Основная информация о форматах базируется на общих знаниях о веб-технологиях и структуре браузерных расширений
34
+ - **[⚠️ ВАЖНО]** Точные спецификации и полный список поддерживаемых форматов следует верифицировать в официальной документации Chrome: https://developer.chrome.com/docs/extensions/mv3/ (источник не проверен в этом прогоне)
35
+ - Ограничения безопасности MV3 могут влиять на поддержку определённых форматов, требуется дополнительная проверка
36
+
37
+ ## Self-Check
38
+
39
+ - [x] Секция **Result** заполнена реальным содержимым (10 фактов)
40
+ - [x] Факты снабжены маркерами источников: используются `[источник неизвестен]` где нет конкретного URL
41
+ - [x] Явно обозначены пробелы в знаниях: указание на необходимость проверки в официальной документации
42
+ - [x] Уровень уверенности отмечен: фактическая информация, но требует верификации в живых источниках
43
+
44
+ ---RESULT---
45
+
46
+ **Исследовательский отчёт:** Короткая справка по форматам файлов Manifest V3 составлена на основе стандартных веб-технологий и общих принципов браузерных расширений.
47
+
48
+ **Ключевые компоненты:**
49
+ - Конфигурация: JSON (manifest.json)
50
+ - UI: HTML, CSS, JavaScript
51
+ - Графика: PNG, JPEG, WebP, SVG
52
+ - Локализация: JSON (messages.json)
53
+
54
+ **⚠️ Статус верификации:** Все факты требуют подтверждения в официальной документации Chrome Extension Manifest V3, так как живые источники недоступны в этом прогоне.
55
+
56
+ **Рекомендация:** Для полной и актуальной информации проверить официальную документацию на https://developer.chrome.com/docs/extensions/mv3/