workflow-ai 1.0.68 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +105 -7
- package/configs/pipeline.yaml +23 -2
- package/package.json +44 -41
- package/src/lib/operations/plans.mjs +85 -0
- package/src/lib/operations/skills.mjs +124 -0
- package/src/lib/operations/tickets.mjs +430 -0
- package/src/lib/utils.mjs +286 -286
- package/src/runner.mjs +314 -34
- package/src/scripts/check-conditions.js +2 -2
- package/src/scripts/get-next-id.js +8 -31
- package/src/scripts/pick-next-task.js +3 -9
- package/src/skills/coach/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -0
- package/src/skills/review-result/SKILL.md +1 -0
- package/src/scripts/tests/timeout-cascade.test.js +0 -28
- package/src/skills/analyze-report/README.md +0 -44
- package/src/skills/analyze-report/algorithms/progress-assessment.md +0 -108
- package/src/skills/analyze-report/knowledge/analysis-frameworks.md +0 -66
- package/src/skills/analyze-report/knowledge/report-structure.md +0 -61
- package/src/skills/analyze-report/scripts/calc-plan-metrics.js +0 -234
- package/src/skills/analyze-report/templates/analysis-report.md +0 -80
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +0 -69
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +0 -99
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -88
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -100
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +0 -64
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +0 -110
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +0 -74
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +0 -38
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +0 -61
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +0 -60
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +0 -90
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +0 -84
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +0 -86
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +0 -44
- package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +0 -27
- package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +0 -32
- package/src/skills/analyze-report/tests/index.yaml +0 -25
- package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +0 -22
- package/src/skills/analyze-report/tests/rubrics/result-block-format.md +0 -22
- package/src/skills/analyze-report/workflows/progress.md +0 -158
- package/src/skills/analyze-report/workflows/retrospective.md +0 -143
- package/src/skills/coach/README.md +0 -43
- package/src/skills/coach/SKILL.md.legacy +0 -157
- package/src/skills/coach/algorithms/gap-analysis.md +0 -69
- package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
- package/src/skills/coach/algorithms/skill-scoring.md +0 -80
- package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +0 -11
- package/src/skills/coach/knowledge/backlog-management.md +0 -67
- package/src/skills/coach/knowledge/backlog-management.md.legacy +0 -90
- package/src/skills/coach/knowledge/common-antipatterns.md +0 -76
- package/src/skills/coach/knowledge/prompt-engineering.md +0 -45
- package/src/skills/coach/knowledge/shared-knowledge-guide.md +0 -44
- package/src/skills/coach/knowledge/skill-anatomy.md +0 -49
- package/src/skills/coach/knowledge/test-authorship.md +0 -141
- package/src/skills/coach/templates/audit-report.md +0 -39
- package/src/skills/coach/templates/coach-backlog-init.yaml +0 -14
- package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +0 -10
- package/src/skills/coach/templates/improvement-plan.md +0 -42
- package/src/skills/coach/templates/new-skill.md +0 -95
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +0 -65
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +0 -75
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +0 -81
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +0 -101
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +0 -91
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +0 -55
- package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +0 -53
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +0 -50
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +0 -37
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +0 -23
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +0 -29
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +0 -13
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +0 -19
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +0 -33
- package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +0 -57
- package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +0 -77
- package/src/skills/coach/tests/index.yaml +0 -29
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +0 -13
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +0 -29
- package/src/skills/coach/tests/rubrics/evidence-based.md +0 -26
- package/src/skills/coach/tests/rubrics/root-cause-first.md +0 -21
- package/src/skills/coach/workflows/analyze.md +0 -79
- package/src/skills/coach/workflows/analyze.md.legacy +0 -64
- package/src/skills/coach/workflows/audit.md +0 -74
- package/src/skills/coach/workflows/audit.md.legacy +0 -59
- package/src/skills/coach/workflows/create.md +0 -80
- package/src/skills/coach/workflows/create.md.legacy +0 -67
- package/src/skills/coach/workflows/improve.md +0 -71
- package/src/skills/coach/workflows/improve.md.legacy +0 -60
- package/src/skills/coach/workflows/research.md +0 -55
- package/src/skills/coach/workflows/review.md +0 -52
- package/src/skills/coach/workflows/review.md.legacy +0 -48
- package/src/skills/coach/workflows/test.md +0 -97
- package/src/skills/create-plan/README.md +0 -39
- package/src/skills/create-plan/algorithms/risk-assessment.md +0 -73
- package/src/skills/create-plan/knowledge/plan-completeness.md +0 -67
- package/src/skills/create-plan/knowledge/plan-lifecycle.md +0 -33
- package/src/skills/create-plan/knowledge/task-verification-pairs.md +0 -151
- package/src/skills/create-plan/knowledge/test-hygiene.md +0 -47
- package/src/skills/create-plan/scripts/validate-completeness.js +0 -182
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +0 -39
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +0 -35
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +0 -167
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -10
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +0 -26
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +0 -86
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +0 -119
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +0 -41
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +0 -164
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -3
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -13
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +0 -44
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +0 -49
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +0 -6
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +0 -16
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +0 -116
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +0 -39
- package/src/skills/create-plan/tests/index.yaml +0 -25
- package/src/skills/create-plan/tests/rubrics/task-granularity.md +0 -21
- package/src/skills/create-plan/tests/rubrics/validate-completeness.md +0 -21
- package/src/skills/create-plan/workflows/create.md +0 -136
- package/src/skills/create-report/README.md +0 -40
- package/src/skills/create-report/algorithms/metric-calculation.md +0 -93
- package/src/skills/create-report/knowledge/report-metrics.md +0 -82
- package/src/skills/create-report/scripts/calc-metrics.js +0 -383
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +0 -26
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +0 -28
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +0 -163
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -3
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +0 -8
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +0 -7
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +0 -22
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +0 -13
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +0 -115
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +0 -57
- package/src/skills/create-report/tests/index.yaml +0 -20
- package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +0 -21
- package/src/skills/create-report/workflows/standard.md +0 -175
- package/src/skills/decompose-gaps/README.md +0 -39
- package/src/skills/decompose-gaps/algorithms/scope-check.md +0 -110
- package/src/skills/decompose-gaps/knowledge/scope-validation.md +0 -65
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +0 -56
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +0 -164
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +0 -22
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +0 -29
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +0 -35
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +0 -18
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +0 -116
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +0 -46
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +0 -163
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +0 -21
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +0 -38
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +0 -16
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +0 -10
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +0 -9
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +0 -115
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +0 -36
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +0 -165
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +0 -37
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +0 -45
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +0 -117
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +0 -41
- package/src/skills/decompose-gaps/tests/index.yaml +0 -30
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +0 -21
- package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +0 -22
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +0 -21
- package/src/skills/decompose-gaps/workflows/decompose.md +0 -123
- package/src/skills/decompose-plan/README.md +0 -43
- package/src/skills/decompose-plan/algorithms/deduplication.md +0 -101
- package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +0 -139
- package/src/skills/decompose-plan/knowledge/capabilities.md +0 -68
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +0 -82
- package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +0 -73
- package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +0 -47
- package/src/skills/decompose-plan/scripts/check-duplicates.js +0 -323
- package/src/skills/decompose-plan/scripts/verify-atomicity.js +0 -408
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -20
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -28
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +0 -137
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +0 -188
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +0 -32
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +0 -110
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +0 -56
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +0 -47
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +0 -43
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -15
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -12
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +0 -34
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +0 -44
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +0 -21
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +0 -38
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +0 -48
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +0 -167
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +0 -62
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +0 -174
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +0 -55
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +0 -104
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +0 -45
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +0 -58
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +0 -193
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +0 -202
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +0 -155
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +0 -52
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +0 -64
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +0 -59
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +0 -204
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +0 -213
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +0 -57
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +0 -147
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +0 -165
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +0 -133
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +0 -81
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +0 -108
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +0 -3
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +0 -78
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +0 -225
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +0 -66
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +0 -67
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +0 -40
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +0 -122
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +0 -131
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +0 -138
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +0 -41
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +0 -88
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +0 -72
- package/src/skills/decompose-plan/tests/index.yaml +0 -45
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +0 -21
- package/src/skills/decompose-plan/workflows/decompose.md +0 -305
- package/src/skills/deep-research/README.md +0 -36
- package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
- package/src/skills/deep-research/algorithms/synthesis.md +0 -67
- package/src/skills/deep-research/knowledge/data-validation.md +0 -44
- package/src/skills/deep-research/knowledge/perplexity-config.md +0 -30
- package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
- package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
- package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
- package/src/skills/deep-research/templates/brief-summary.md +0 -25
- package/src/skills/deep-research/templates/research-report.md +0 -76
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +0 -48
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +0 -88
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +0 -163
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +0 -58
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +0 -249
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +0 -44
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +0 -96
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +0 -94
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +0 -115
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +0 -58
- package/src/skills/deep-research/tests/index.yaml +0 -20
- package/src/skills/deep-research/tests/rubrics/self-check-url.md +0 -34
- package/src/skills/deep-research/workflows/base-checklist.md +0 -19
- package/src/skills/deep-research/workflows/benchmark.md +0 -38
- package/src/skills/deep-research/workflows/competitor.md +0 -44
- package/src/skills/deep-research/workflows/custom.md +0 -32
- package/src/skills/deep-research/workflows/market.md +0 -44
- package/src/skills/deep-research/workflows/technology.md +0 -40
- package/src/skills/deep-research/workflows/trend.md +0 -40
- package/src/skills/execute-task/README.md +0 -44
- package/src/skills/execute-task/algorithms/execution-strategy.md +0 -136
- package/src/skills/execute-task/knowledge/context-checkpoints.md +0 -75
- package/src/skills/execute-task/knowledge/ticket-structure.md +0 -70
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +0 -48
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +0 -6
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +0 -9
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +0 -26
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +0 -44
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +0 -37
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +0 -18
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +0 -16
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +0 -14
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +0 -1
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +0 -50
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +0 -15
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +0 -39
- package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +0 -41
- package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +0 -40
- package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +0 -42
- package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +0 -41
- package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +0 -40
- package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +0 -36
- package/src/skills/execute-task/tests/index.yaml +0 -39
- package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +0 -22
- package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +0 -20
- package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +0 -21
- package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +0 -23
- package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +0 -22
- package/src/skills/execute-task/workflows/execute.md +0 -104
- package/src/skills/manual-testing/README.md +0 -63
- package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +0 -74
- package/src/skills/manual-testing/algorithms/bug-severity.md +0 -73
- package/src/skills/manual-testing/algorithms/mcp-budget.md +0 -97
- package/src/skills/manual-testing/algorithms/test-prioritization.md +0 -69
- package/src/skills/manual-testing/knowledge/browser-extension-testing.md +0 -102
- package/src/skills/manual-testing/knowledge/browser-tools.md +0 -114
- package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +0 -92
- package/src/skills/manual-testing/knowledge/desktop-tools-core.md +0 -76
- package/src/skills/manual-testing/knowledge/sandbox-advanced.md +0 -83
- package/src/skills/manual-testing/knowledge/sandbox-core.md +0 -67
- package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +0 -69
- package/src/skills/manual-testing/knowledge/test-case-design.md +0 -107
- package/src/skills/manual-testing/knowledge/testing-types.md +0 -45
- package/src/skills/manual-testing/templates/bug-report.md +0 -52
- package/src/skills/manual-testing/templates/test-case.md +0 -34
- package/src/skills/manual-testing/templates/test-plan.md +0 -97
- package/src/skills/manual-testing/templates/test-session-report.md +0 -56
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +0 -34
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +0 -4
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +0 -8
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +0 -38
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +0 -44
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +0 -47
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +0 -24
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +0 -13
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +0 -18
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +0 -21
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +0 -37
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +0 -76
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +0 -71
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +0 -85
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +0 -46
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +0 -36
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +0 -65
- package/src/skills/manual-testing/tests/index.yaml +0 -30
- package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +0 -140
- package/src/skills/manual-testing/tests/last-run-tc002.log +0 -1
- package/src/skills/manual-testing/tests/last-run.log +0 -1469
- package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +0 -31
- package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +0 -20
- package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +0 -21
- package/src/skills/manual-testing/workflows/acceptance.md +0 -80
- package/src/skills/manual-testing/workflows/exploratory.md +0 -84
- package/src/skills/manual-testing/workflows/regression.md +0 -76
- package/src/skills/manual-testing/workflows/smoke.md +0 -109
- package/src/skills/manual-testing/workflows/test-plan.md +0 -75
- package/src/skills/review-result/README.md +0 -59
- package/src/skills/review-result/algorithms/verification.md +0 -112
- package/src/skills/review-result/knowledge/dod-patterns.md +0 -115
- package/src/skills/review-result/knowledge/test-hygiene.md +0 -44
- package/src/skills/review-result/scripts/verify-artifacts.js +0 -497
- package/src/skills/review-result/templates/verdict.md +0 -153
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +0 -164
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +0 -49
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +0 -13
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +0 -116
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +0 -51
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +0 -25
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +0 -32
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +0 -34
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +0 -8
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-1.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-3.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-3.md +0 -11
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-1.md +0 -16
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-2.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-3.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-1.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-3.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003-test-isolation.yaml +0 -50
- package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +0 -43
- package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +0 -46
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/QA-904.md +0 -51
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/example-test.mjs +0 -36
- package/src/skills/review-result/tests/index.yaml +0 -30
- package/src/skills/review-result/tests/rubrics/path-line-suffix.md +0 -19
- package/src/skills/review-result/tests/rubrics/test-isolation.md +0 -20
- package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +0 -19
- package/src/skills/review-result/workflows/review.md +0 -209
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# Deep Research — Agent Skill
|
|
2
|
-
|
|
3
|
-
Агент-исследователь для глубокого анализа тем. Получает задачи на исследование от других скилов и формирует структурированные текстовые отчёты с данными, источниками и выводами.
|
|
4
|
-
|
|
5
|
-
## Структура
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
deep-research/
|
|
9
|
-
├── SKILL.md # Ядро: роль, маршрутизация, принципы
|
|
10
|
-
├── workflows/ # market, competitor, trend, benchmark, technology, custom, base-checklist
|
|
11
|
-
├── knowledge/ # research-methodology, source-evaluation, data-validation, perplexity-config
|
|
12
|
-
├── algorithms/ # source-scoring, synthesis
|
|
13
|
-
└── templates/ # research-report, brief-summary
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Как это работает
|
|
17
|
-
|
|
18
|
-
1. Любой скил проекта создаёт тикет `RSH-*` с исследовательским вопросом
|
|
19
|
-
2. Deep Research определяет тип (MARKET/COMPETITOR/TREND/BENCHMARK/TECHNOLOGY/CUSTOM)
|
|
20
|
-
3. Загружает соответствующий workflow
|
|
21
|
-
4. Проводит исследование: поиск → фильтрация → анализ → синтез
|
|
22
|
-
5. Формирует отчёт с источниками, уровнями уверенности, выводами
|
|
23
|
-
|
|
24
|
-
## Как расширять
|
|
25
|
-
|
|
26
|
-
### Новый тип исследования
|
|
27
|
-
1. Создай файл в `workflows/{type}.md`
|
|
28
|
-
2. Добавь запись в таблицу маршрутизации в `SKILL.md`
|
|
29
|
-
|
|
30
|
-
### Новый knowledge-модуль
|
|
31
|
-
1. Создай файл в `knowledge/{module}.md`
|
|
32
|
-
2. Добавь запись в таблицу загрузки знаний в `SKILL.md`
|
|
33
|
-
|
|
34
|
-
### Новый шаблон вывода
|
|
35
|
-
1. Создай файл в `templates/{template}.md`
|
|
36
|
-
2. Добавь запись в таблицу шаблонов в `SKILL.md`
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
# Алгоритм: Скоринг источников
|
|
2
|
-
|
|
3
|
-
Формализованная оценка надёжности и релевантности источника.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- URL источника
|
|
8
|
-
- Контент/данные из источника
|
|
9
|
-
- Контекст исследовательского вопроса
|
|
10
|
-
|
|
11
|
-
## Алгоритм
|
|
12
|
-
|
|
13
|
-
### 1. Определи тип источника
|
|
14
|
-
|
|
15
|
-
| Тип | Базовый балл |
|
|
16
|
-
|-----|-------------|
|
|
17
|
-
| Государственная статистика, peer-reviewed | 9 |
|
|
18
|
-
| Отраслевой отчёт (Statista, Gartner, etc.) | 8 |
|
|
19
|
-
| Крупное СМИ с фактчекингом | 7 |
|
|
20
|
-
| Корпоративный блог/пресс-релиз | 6 |
|
|
21
|
-
| Экспертный блог с репутацией | 5 |
|
|
22
|
-
| Форум/Reddit (с подтверждением) | 3 |
|
|
23
|
-
| Анонимный/неизвестный источник | 1 |
|
|
24
|
-
|
|
25
|
-
### 2. Примени модификаторы
|
|
26
|
-
|
|
27
|
-
| Фактор | Модификатор |
|
|
28
|
-
|--------|------------|
|
|
29
|
-
| Данные < 6 мес | +1 |
|
|
30
|
-
| Данные 6-12 мес | 0 |
|
|
31
|
-
| Данные 1-2 года | -1 |
|
|
32
|
-
| Данные > 2 лет | -2 |
|
|
33
|
-
| Есть ссылки на первоисточники | +1 |
|
|
34
|
-
| Коммерческая заинтересованность | -1 |
|
|
35
|
-
| Подтверждено другим источником | +1 |
|
|
36
|
-
|
|
37
|
-
### 3. Рассчитай финальный балл
|
|
38
|
-
|
|
39
|
-
`Score = Базовый балл + Σ(модификаторы)`, clamped to [1, 10]
|
|
40
|
-
|
|
41
|
-
### 4. Определи категорию
|
|
42
|
-
|
|
43
|
-
| Балл | Категория | Использование |
|
|
44
|
-
|------|-----------|---------------|
|
|
45
|
-
| 8-10 | **A — Надёжный** | Основа для выводов |
|
|
46
|
-
| 5-7 | **B — Приемлемый** | Можно использовать с оговорками |
|
|
47
|
-
| 3-4 | **C — Слабый** | Только как дополнение к A/B |
|
|
48
|
-
| 1-2 | **D — Ненадёжный** | Не использовать |
|
|
49
|
-
|
|
50
|
-
## Выход
|
|
51
|
-
|
|
52
|
-
- Балл (1-10)
|
|
53
|
-
- Категория (A/B/C/D)
|
|
54
|
-
- Обоснование
|
|
55
|
-
|
|
56
|
-
## Пример
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
Источник: Statista — "VPN Market Size 2024"
|
|
60
|
-
Тип: Отраслевой отчёт → 8
|
|
61
|
-
Модификаторы: данные < 6 мес (+1), есть методология (+1)
|
|
62
|
-
Итого: 10 → A — Надёжный
|
|
63
|
-
```
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# Алгоритм: Синтез выводов
|
|
2
|
-
|
|
3
|
-
Формализованный метод превращения сырых данных в структурированные выводы.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- Набор валидированных данных с источниками
|
|
8
|
-
- Исследовательский вопрос
|
|
9
|
-
- Контекст заказчика (какой скил запросил, зачем)
|
|
10
|
-
|
|
11
|
-
## Алгоритм
|
|
12
|
-
|
|
13
|
-
### 1. Кластеризация данных
|
|
14
|
-
|
|
15
|
-
Сгруппируй найденные данные по темам:
|
|
16
|
-
- Факты (подтверждённые числа, даты, события)
|
|
17
|
-
- Тренды (направления изменений)
|
|
18
|
-
- Мнения (экспертные оценки)
|
|
19
|
-
- Пробелы (что не удалось найти)
|
|
20
|
-
|
|
21
|
-
### 2. Выявление паттернов
|
|
22
|
-
|
|
23
|
-
Для каждого кластера:
|
|
24
|
-
- Что подтверждается множеством источников?
|
|
25
|
-
- Где источники противоречат друг другу?
|
|
26
|
-
- Какие данные являются аутлайерами?
|
|
27
|
-
|
|
28
|
-
### 3. Формулирование выводов
|
|
29
|
-
|
|
30
|
-
Для каждого вывода:
|
|
31
|
-
1. Сформулируй тезис одним предложением
|
|
32
|
-
2. Приведи 2-3 подкрепляющих факта с источниками
|
|
33
|
-
3. Укажи контраргументы (если есть)
|
|
34
|
-
4. Присвой уровень уверенности: `[HIGH/MEDIUM/LOW]`
|
|
35
|
-
|
|
36
|
-
### 4. Приоритизация выводов
|
|
37
|
-
|
|
38
|
-
| Критерий | Вес |
|
|
39
|
-
|----------|-----|
|
|
40
|
-
| Релевантность для заказчика | 40% |
|
|
41
|
-
| Уровень уверенности | 30% |
|
|
42
|
-
| Actionability (можно ли действовать) | 30% |
|
|
43
|
-
|
|
44
|
-
### 5. Формулирование рекомендаций
|
|
45
|
-
|
|
46
|
-
На основе выводов — что делать:
|
|
47
|
-
- **Рекомендация** (конкретное действие)
|
|
48
|
-
- **Обоснование** (на каких выводах основана)
|
|
49
|
-
- **Ограничения** (что нужно учесть)
|
|
50
|
-
|
|
51
|
-
## Выход
|
|
52
|
-
|
|
53
|
-
- Приоритизированный список выводов с уровнями уверенности
|
|
54
|
-
- Рекомендации с обоснованием
|
|
55
|
-
- Список пробелов (что не удалось установить)
|
|
56
|
-
|
|
57
|
-
## Пример
|
|
58
|
-
|
|
59
|
-
```
|
|
60
|
-
Вывод #1 [HIGH]: Рынок VPN-расширений для Chrome растёт на 15-20% YoY
|
|
61
|
-
- Statista: $1.2B → $1.4B (2023→2024)
|
|
62
|
-
- GrandViewResearch: CAGR 15.3%
|
|
63
|
-
- Контраргумент: рост замедляется vs 2020-2022
|
|
64
|
-
|
|
65
|
-
Рекомендация: рынок растущий, есть окно для входа, но дифференциация критична
|
|
66
|
-
Ограничение: данные по сегменту расширений (не VPN в целом) ограничены
|
|
67
|
-
```
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Валидация данных
|
|
2
|
-
|
|
3
|
-
Правила проверки найденных данных перед включением в отчёт.
|
|
4
|
-
|
|
5
|
-
## Методы валидации
|
|
6
|
-
|
|
7
|
-
### Triangulation (триангуляция)
|
|
8
|
-
Подтверждение факта через 3 типа источников:
|
|
9
|
-
1. Официальный/первичный источник
|
|
10
|
-
2. Независимый отраслевой отчёт
|
|
11
|
-
3. Экспертное мнение или пользовательские данные
|
|
12
|
-
|
|
13
|
-
### Sanity Check (проверка здравым смыслом)
|
|
14
|
-
- Соотносятся ли числа с известными базовыми метриками?
|
|
15
|
-
- Возможен ли такой рост/падение физически?
|
|
16
|
-
- Нет ли ошибки в порядке величины (тысячи vs миллионы)?
|
|
17
|
-
|
|
18
|
-
### Time Consistency (временная согласованность)
|
|
19
|
-
- Данные из одного периода сопоставимы?
|
|
20
|
-
- Нет ли смешения годовых и месячных метрик?
|
|
21
|
-
- Учтена ли сезонность?
|
|
22
|
-
|
|
23
|
-
## Обязательные проверки
|
|
24
|
-
|
|
25
|
-
| Тип данных | Проверка | Действие при провале |
|
|
26
|
-
|------------|----------|---------------------|
|
|
27
|
-
| Размер рынка | Сравни с GDP сектора | Помечай `[UNVERIFIED]` |
|
|
28
|
-
| Рост метрики | Проверь базу и период | Пересчитай или помечай |
|
|
29
|
-
| Конверсии | Сравни с отраслевыми бенчмарками | Помечай аномалии |
|
|
30
|
-
| Цены/стоимости | Проверь валюту и дату | Конвертируй к единому |
|
|
31
|
-
| Доли рынка | Сумма долей ≈ 100%? | Найди пропущенных игроков |
|
|
32
|
-
|
|
33
|
-
## Шаблон маркировки данных
|
|
34
|
-
|
|
35
|
-
```
|
|
36
|
-
[VERIFIED: 2+ sources] — подтверждено
|
|
37
|
-
[SINGLE SOURCE: {source}] — один источник
|
|
38
|
-
[UNVERIFIED] — не удалось подтвердить
|
|
39
|
-
[ESTIMATED] — расчётная оценка на основе {метод}
|
|
40
|
-
[OUTDATED: {year}] — данные старше 1 года
|
|
41
|
-
[CONFLICTING] — источники противоречат друг другу
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
<!-- РАСШИРЕНИЕ: добавляй правила валидации для специфических доменов ниже -->
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Perplexity Research — конфигурация
|
|
2
|
-
|
|
3
|
-
**Основной инструмент** для всех RSH-тикетов. Запрещено подменять web_search/web_fetch.
|
|
4
|
-
|
|
5
|
-
## Вызов
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
node .workflow/src/skills/deep-research/scripts/perplexity-research.js "тема"
|
|
9
|
-
# Быстрый: --model perplexity/sonar "тема"
|
|
10
|
-
# Системный промпт: --system "Ты аналитик..." "тема"
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## Модели
|
|
14
|
-
|
|
15
|
-
| Модель | Время | Когда |
|
|
16
|
-
|--------|-------|-------|
|
|
17
|
-
| `perplexity/sonar-deep-research` | 5-10 мин | По умолчанию |
|
|
18
|
-
| `perplexity/sonar-pro` | 10-30 сек | Быстрый ответ с источниками |
|
|
19
|
-
| `perplexity/sonar` | 5-15 сек | Справки, проверка фактов |
|
|
20
|
-
| `perplexity/sonar-reasoning-pro` | 30-60 сек | Аналитика с рассуждениями |
|
|
21
|
-
|
|
22
|
-
## Workflow
|
|
23
|
-
|
|
24
|
-
1. Сформируй запрос из тикета → запусти скрипт через bash → оформи отчёт в `reports/`
|
|
25
|
-
2. В «Agent used» укажи `perplexity-research.js` + модель
|
|
26
|
-
3. Требуется HTTPS_PROXY (настроен в env)
|
|
27
|
-
|
|
28
|
-
## Fallback
|
|
29
|
-
|
|
30
|
-
Если скрипт не работает (сеть, 403, таймаут) → зафиксируй ошибку, используй WebSearch/WebFetch, укажи причину.
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# Методология проведения исследований
|
|
2
|
-
|
|
3
|
-
Базовая методология для всех типов исследовательских задач.
|
|
4
|
-
|
|
5
|
-
## Этапы исследования
|
|
6
|
-
|
|
7
|
-
| Этап | Описание | Выход |
|
|
8
|
-
|------|----------|-------|
|
|
9
|
-
| **1. Скоупинг** | Определить границы: что ищем, зачем, для кого | Чёткий исследовательский вопрос |
|
|
10
|
-
| **2. Сбор данных** | Поиск по множеству источников | Сырые данные с ссылками |
|
|
11
|
-
| **3. Фильтрация** | Отсеять нерелевантные, устаревшие, ненадёжные | Валидированный пул данных |
|
|
12
|
-
| **4. Анализ** | Выявить паттерны, противоречия, пробелы | Аналитические находки |
|
|
13
|
-
| **5. Синтез** | Сформулировать выводы и рекомендации | Структурированный отчёт |
|
|
14
|
-
| **6. Валидация** | Проверить ключевые выводы через доп. источники | Верифицированный отчёт |
|
|
15
|
-
|
|
16
|
-
## Типы источников и их приоритет
|
|
17
|
-
|
|
18
|
-
| Приоритет | Тип источника | Примеры |
|
|
19
|
-
|-----------|---------------|---------|
|
|
20
|
-
| 1 (высший) | Первичные данные | Официальная статистика, API, базы данных |
|
|
21
|
-
| 2 | Отраслевые отчёты | Statista, SimilarWeb, Sensor Tower, App Annie |
|
|
22
|
-
| 3 | Авторитетные издания | TechCrunch, The Verge, Ars Technica, отраслевые блоги |
|
|
23
|
-
| 4 | Экспертные мнения | Блоги экспертов, конференции, подкасты |
|
|
24
|
-
| 5 (низший) | Пользовательский контент | Reddit, форумы, отзывы, комментарии |
|
|
25
|
-
|
|
26
|
-
## Стратегии поиска
|
|
27
|
-
|
|
28
|
-
### Breadth-First (для обзорных исследований)
|
|
29
|
-
1. Начни с широких запросов
|
|
30
|
-
2. Выяви ключевые подтемы и терминологию
|
|
31
|
-
3. Углубись в каждую подтему
|
|
32
|
-
4. Собери перекрёстные ссылки
|
|
33
|
-
|
|
34
|
-
### Depth-First (для точечных вопросов)
|
|
35
|
-
1. Начни с конкретного запроса
|
|
36
|
-
2. Найди авторитетный источник
|
|
37
|
-
3. Пройди по его ссылкам и цитатам
|
|
38
|
-
4. Верифицируй через альтернативные источники
|
|
39
|
-
|
|
40
|
-
### Adversarial (для верификации)
|
|
41
|
-
1. Сформулируй тезис
|
|
42
|
-
2. Целенаправленно ищи опровержения
|
|
43
|
-
3. Оцени силу аргументов за и против
|
|
44
|
-
4. Сформулируй взвешенный вывод
|
|
45
|
-
|
|
46
|
-
## Правила работы с данными
|
|
47
|
-
|
|
48
|
-
- **Числа**: всегда указывай источник, дату, методологию сбора
|
|
49
|
-
- **Проценты**: указывай базу (% от чего)
|
|
50
|
-
- **Прогнозы**: отделяй от фактов, указывай автора прогноза
|
|
51
|
-
- **Цитаты**: только прямые с указанием автора и контекста
|
|
52
|
-
- **Устаревшие данные**: помечай `[DATA: YYYY]` если старше 1 года
|
|
53
|
-
|
|
54
|
-
<!-- РАСШИРЕНИЕ: добавляй новые методологические подходы ниже -->
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Оценка надёжности источников
|
|
2
|
-
|
|
3
|
-
Критерии для оценки качества и надёжности найденных источников.
|
|
4
|
-
|
|
5
|
-
## CRAAP-тест (адаптированный)
|
|
6
|
-
|
|
7
|
-
| Критерий | Вопрос | Вес |
|
|
8
|
-
|----------|--------|-----|
|
|
9
|
-
| **Currency** (актуальность) | Когда опубликовано? Обновлялось ли? | 20% |
|
|
10
|
-
| **Relevance** (релевантность) | Напрямую отвечает на вопрос? | 25% |
|
|
11
|
-
| **Authority** (авторитетность) | Кто автор? Какой опыт/квалификация? | 25% |
|
|
12
|
-
| **Accuracy** (точность) | Есть ли ссылки на первоисточники? Подтверждается другими? | 20% |
|
|
13
|
-
| **Purpose** (цель) | Информирование vs продажа vs мнение? | 10% |
|
|
14
|
-
|
|
15
|
-
## Красные флаги источников
|
|
16
|
-
|
|
17
|
-
| Флаг | Описание | Действие |
|
|
18
|
-
|------|----------|----------|
|
|
19
|
-
| Нет автора | Анонимный контент | Понизить доверие, искать подтверждение |
|
|
20
|
-
| Нет даты | Неизвестная актуальность | Помечать `[DATE: unknown]` |
|
|
21
|
-
| Affiliate/sponsored | Коммерческая заинтересованность | Помечать `[SPONSORED]`, не использовать как единственный |
|
|
22
|
-
| Circular citation | Источники ссылаются друг на друга | Найти первоисточник |
|
|
23
|
-
| Outlier data | Данные сильно отличаются от консенсуса | Отдельно исследовать причину |
|
|
24
|
-
|
|
25
|
-
## Уровни доверия
|
|
26
|
-
|
|
27
|
-
| Уровень | Условие | Маркировка |
|
|
28
|
-
|---------|---------|------------|
|
|
29
|
-
| **HIGH** | 2+ независимых авторитетных источника подтверждают | `[HIGH]` |
|
|
30
|
-
| **MEDIUM** | 1 авторитетный источник ИЛИ 2+ неавторитетных совпадают | `[MEDIUM]` |
|
|
31
|
-
| **LOW** | 1 неавторитетный источник ИЛИ данные противоречивы | `[LOW]` |
|
|
32
|
-
|
|
33
|
-
<!-- РАСШИРЕНИЕ: добавляй критерии оценки специфических типов источников ниже -->
|
|
@@ -1,315 +0,0 @@
|
|
|
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
|
-
});
|
|
@@ -1,25 +0,0 @@
|
|
|
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
|
-
```
|