workflow-ai 1.1.0 → 1.3.0
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 +61 -0
- package/README.md +37 -377
- package/configs/pipeline.yaml +113 -4
- package/package.json +54 -44
- package/src/lib/operations/tickets.mjs +305 -207
- package/src/lib/utils.mjs +286 -286
- package/src/runner.mjs +316 -35
- package/src/scripts/check-conditions.js +2 -2
- package/src/scripts/check-relevance.js +3 -1
- package/src/scripts/get-next-id.js +144 -41
- package/src/scripts/mark-blocked.js +160 -0
- package/src/scripts/move-ticket.js +305 -83
- package/src/scripts/pick-next-task.js +782 -93
- package/src/skills/__test-cal-001-1777553217513/SKILL.md +2 -0
- package/src/skills/__test-runner-1777553217483/SKILL.md +5 -0
- package/src/skills/coach/SKILL.md +2 -2
- package/src/skills/execute-task/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -0
- package/src/skills/review-result/SKILL.md +23 -1
- 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 -5
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -98
- 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 -5
- 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/baseline-snapshot-validation.md +0 -67
- package/src/skills/review-result/knowledge/dod-patterns.md +0 -116
- 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 -6
- 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 -4
- 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 -40
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -15
- 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/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/judge.json +0 -46
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/meta.json +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004-baseline-snapshot.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/fixtures/QA-905-baseline-regex-instead-of-snapshot/QA-905.md +0 -62
- package/src/skills/review-result/tests/fixtures/QA-905-baseline-regex-instead-of-snapshot/baseline.test.mjs +0 -124
- package/src/skills/review-result/tests/index.yaml +0 -35
- package/src/skills/review-result/tests/rubrics/baseline-snapshot.md +0 -20
- 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
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
## [1.3.0] — 2026-04-30
|
|
2
|
+
|
|
3
|
+
### Добавлено
|
|
4
|
+
- **Новый тип стейджа: `mark-blocked` и расширение frontmatter** — Добавлены поля `auto_blocked_reason`, `auto_blocked_attempts`, `auto_blocked_at` для автоматического отслеживания причин и попыток блокировки тикетов. Стейдж `mark-blocked` позволяет устанавливать эти поля в зависимости от условий бизнес-логики.
|
|
5
|
+
- **Новый тип стейджа: `manual-gate-human`** — Добавлен статус `human_ready` в `pick-next-task.js`. При достижении этого статуса задача ожидает ручного решения оператора перед продолжением выполнения.
|
|
6
|
+
- **Хук одобрения в `move-ticket.js`** — Добавлен approval-hook, проверяющий наличие ожидающих решения одобрений перед перемещением тикета в терминальные состояния.
|
|
7
|
+
- **Расширение START-лога полем `ticket="X"`** — Добавлено поле с идентификатором тикета в стартовый лог для улучшенной трассировки и связывания логов с конкретными задачами.
|
|
8
|
+
- **Исправление `approval-pending.mjs` (поле `created_at`)** — Исправлено некорректное заполнение поля `created_at` при создании файлов ожидающих решения.
|
|
9
|
+
|
|
10
|
+
> **Примечание:** версия 1.2.0 не была опубликована в npm. При выполнении `npm publish`
|
|
11
|
+
> сработал prepublishOnly/postversion скрипт, автоматически поднявший версию до 1.2.1.
|
|
12
|
+
> Git-тег `v1.2.0` (коммит 179d52b) соответствует состоянию до publish; `v1.2.1` (коммит 83d1b70) —
|
|
13
|
+
> фактически опубликованной версии.
|
|
14
|
+
|
|
15
|
+
### New Features
|
|
16
|
+
- **New built-in stage type: `manual-gate`** — Adds support for manual approval steps in pipelines. When a stage with `type: manual-gate` is encountered, the runner creates a pending approval file in `.workflow/approvals/{step_id}.json` and enters a polling loop, waiting for an external decision (`approved`/`rejected`).
|
|
17
|
+
|
|
18
|
+
**Key capabilities:**
|
|
19
|
+
- Deterministic `step_id` generation: `{ticket_id}_{stageId}_{attempt}` (e.g., `QA-12_manual-approve_0`)
|
|
20
|
+
- Idempotent file creation — pending file is not overwritten on retry/restart
|
|
21
|
+
- Configurable polling interval (`poll_interval_ms`, default 2000ms) and optional timeout (`timeout_seconds`)
|
|
22
|
+
- Graceful handling of SIGTERM/runner stop (returns `aborted`)
|
|
23
|
+
- Immediate return if file already has `approved`/`rejected` status (crash recovery)
|
|
24
|
+
- JSON approval file format with full audit trail (`created_at`, `updated_at`, `decided_by`, `comment`, `context_snapshot`)
|
|
25
|
+
|
|
26
|
+
**Pipeline configuration example:**
|
|
27
|
+
```yaml
|
|
28
|
+
stages:
|
|
29
|
+
manual-approve-deploy:
|
|
30
|
+
type: manual-gate
|
|
31
|
+
poll_interval_ms: 2000
|
|
32
|
+
timeout_seconds: 86400
|
|
33
|
+
goto:
|
|
34
|
+
approved: continue-deploy
|
|
35
|
+
rejected: rollback
|
|
36
|
+
timeout: notify-stuck
|
|
37
|
+
aborted: end
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Two approval methods (both opt-in):**
|
|
41
|
+
1. **External MCP/client**: tools like `workflow-mcp` can write to approval files programmatically
|
|
42
|
+
2. **Direct file edit**: users can simply edit `.workflow/approvals/{step_id}.json` and change `status` to `approved` or `rejected`
|
|
43
|
+
|
|
44
|
+
**Important:** `manual-gate` is **opt-in** — pipelines without such stages work identically to previous versions. No breaking changes.
|
|
45
|
+
|
|
46
|
+
### Changed
|
|
47
|
+
- No breaking changes. All existing pipelines without `manual-gate` stages are fully backward compatible.
|
|
48
|
+
|
|
49
|
+
### Fixes
|
|
50
|
+
- Исправлено сохранение временной метки `created_at` в файлах одобрений (approval-pending.mjs)
|
|
51
|
+
|
|
52
|
+
### Technical Notes
|
|
53
|
+
- Approval files are stored in `<project_root>/.workflow/approvals/`
|
|
54
|
+
- Runner validates `manual-gate` stages on startup — requires `goto.approved` and `goto.rejected`, validates numeric parameters
|
|
55
|
+
- New methods added to `PipelineRunner`: `computeStepId()`, `writeApprovalPending()`, `readApprovalFile()`, `executeManualGate()`
|
|
56
|
+
|
|
57
|
+
### References
|
|
58
|
+
- PLAN-009: workflow-ai 1.2 — manual-gate stage and approval files for workflow-mcp Sprint 2 integration
|
|
59
|
+
- IMPL-55, IMPL-56, IMPL-57, IMPL-58: Implementation tickets
|
|
60
|
+
- QA-35, QA-36, QA-37: Test coverage
|
|
61
|
+
- IMPL-51, QA-55 in workflow-mcp: Dependent consumer work
|
package/README.md
CHANGED
|
@@ -1,377 +1,37 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
| `workflow eject-scripts [path]` | Извлечь скрипты (скопировать из глобальной директории в проект) |
|
|
39
|
-
| `workflow eject-configs [path]` | Извлечь конфиги (скопировать из глобальной директории в проект) |
|
|
40
|
-
| `workflow list [path]` | Вывести список скилов со статусом (shared/ejected/project-only) |
|
|
41
|
-
| `workflow help` | Показать справку |
|
|
42
|
-
| `workflow version` | Показать версию |
|
|
43
|
-
|
|
44
|
-
### Опции команды `run`
|
|
45
|
-
|
|
46
|
-
| Опция | Описание |
|
|
47
|
-
|-------|----------|
|
|
48
|
-
| `--plan <plan>` | ID плана для выполнения |
|
|
49
|
-
| `--config <path>` | Путь к конфиг-файлу |
|
|
50
|
-
| `--project <path>` | Корень проекта (по умолчанию: автоопределение) |
|
|
51
|
-
|
|
52
|
-
## Инициализация
|
|
53
|
-
|
|
54
|
-
Команда `workflow init` создаёт структуру директории `.workflow/`:
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
.workflow/
|
|
58
|
-
├── config/ # → junction на ~/.workflow/configs/ (eject для кастомизации)
|
|
59
|
-
├── plans/
|
|
60
|
-
│ ├── current/ # Текущие планы разработки
|
|
61
|
-
│ ├── templates/ # Шаблоны планов с триггерами (повторяющиеся планы)
|
|
62
|
-
│ └── archive/ # Архивные планы
|
|
63
|
-
├── tickets/
|
|
64
|
-
│ ├── backlog/ # Ожидают условий
|
|
65
|
-
│ ├── ready/ # Готовы к выполнению
|
|
66
|
-
│ ├── in-progress/ # В работе
|
|
67
|
-
│ ├── blocked/ # Заблокированы зависимостями
|
|
68
|
-
│ ├── review/ # Ожидают ревью
|
|
69
|
-
│ └── done/ # Завершены
|
|
70
|
-
├── reports/ # Сгенерированные отчёты
|
|
71
|
-
├── logs/ # Логи выполнения конвейера
|
|
72
|
-
├── metrics/ # Метрики производительности
|
|
73
|
-
├── templates/ # Шаблоны тикетов/планов/отчётов
|
|
74
|
-
└── src/
|
|
75
|
-
├── skills/ # Инструкции скилов (junctions на глобальные, по каждому скилу)
|
|
76
|
-
└── scripts/ # Скрипты автоматизации (junction на глобальные)
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Конвейер
|
|
80
|
-
|
|
81
|
-
Команда `workflow run` исполняет многоэтапный конвейер:
|
|
82
|
-
|
|
83
|
-
1. **pick-first-task** — выбрать тикет из очереди ready
|
|
84
|
-
2. **check-plan-templates** — проверить триггеры шаблонов планов, создать планы при срабатывании
|
|
85
|
-
3. **check-plan-decomposition** — проверить состояние декомпозиции/активации планов
|
|
86
|
-
4. **allocate-ticket-ids** — выделить стартовые ID для префиксов до декомпозиции
|
|
87
|
-
5. **decompose-plan** — разбить план на тикеты (при необходимости)
|
|
88
|
-
6. **check-atomicity-limit / verify-atomicity / increment-atomicity-counter** — проверить атомарность тикетов плана
|
|
89
|
-
7. **check-conditions** — проверить условия готовности тикета
|
|
90
|
-
8. **move-to-ready** — переместить тикеты из backlog в ready
|
|
91
|
-
9. **pick-next-task** — выбрать следующий тикет для выполнения
|
|
92
|
-
10. **move-to-in-progress** — начать выполнение
|
|
93
|
-
11. **check-relevance** — проверить, что тикет всё ещё актуален (на скриптах, без LLM)
|
|
94
|
-
12. **check-mcp** — проверить доступность MCP-зависимостей тикета
|
|
95
|
-
13. **execute-task** — выполнить работу через AI-агента
|
|
96
|
-
14. **move-to-review** — отправить на ревью
|
|
97
|
-
15. **verify-artifacts** — детерминированная проверка артефактов тикета
|
|
98
|
-
16. **review-result** — проверить результаты по Definition of Done
|
|
99
|
-
17. **increment-task-attempts** — учесть попытки повторов
|
|
100
|
-
18. **move-ticket** — переместить в done/blocked по результатам ревью
|
|
101
|
-
19. **create-report** — сгенерировать отчёт о выполнении
|
|
102
|
-
20. **analyze-report / decompose-gaps** — проанализировать результаты и итерировать
|
|
103
|
-
21. **complete-plan / increment-plan-iterations** — закрыть план или запустить следующую итерацию
|
|
104
|
-
|
|
105
|
-
### Поддерживаемые агенты
|
|
106
|
-
|
|
107
|
-
| Агент | Описание |
|
|
108
|
-
|-------|----------|
|
|
109
|
-
| `claude-code` | Claude Opus — мощная модель для сложных задач |
|
|
110
|
-
| `qwen-code` | Qwen Code — альтернативный агент |
|
|
111
|
-
| `kilo-code` | Kilo Code — мультирежимный агент |
|
|
112
|
-
...
|
|
113
|
-
|
|
114
|
-
Агенты настраиваются в `configs/pipeline.yaml`.
|
|
115
|
-
|
|
116
|
-
## Скилы
|
|
117
|
-
|
|
118
|
-
Встроенные скилы для разных типов задач:
|
|
119
|
-
|
|
120
|
-
| Скил | Описание |
|
|
121
|
-
|------|----------|
|
|
122
|
-
| `analyze-report` | Анализ отчёта |
|
|
123
|
-
| `coach` | Управление и улучшение скилов |
|
|
124
|
-
| `create-plan` | Создание плана |
|
|
125
|
-
| `create-report` | Генерация отчёта |
|
|
126
|
-
| `decompose-gaps` | Декомпозиция пробелов |
|
|
127
|
-
| `decompose-plan` | Декомпозиция плана на тикеты |
|
|
128
|
-
| `deep-research` | Глубокий ресерч |
|
|
129
|
-
| `execute-task` | Выполнение задачи |
|
|
130
|
-
| `manual-testing` | UI-observability: ручное тестирование сценариев |
|
|
131
|
-
| `review-result` | Ревью результата по DoD |
|
|
132
|
-
|
|
133
|
-
Скилы хранятся глобально в `~/.workflow/skills/` и подключаются в проекты через junctions.
|
|
134
|
-
|
|
135
|
-
Используйте `workflow eject <skill>` для копирования скила в проект для кастомизации.
|
|
136
|
-
|
|
137
|
-
### Как работать с коучем
|
|
138
|
-
|
|
139
|
-
Коуч — мета-скил для создания и улучшения остальных скилов. Правки в `.workflow/src/skills/` делаются **только** через него.
|
|
140
|
-
|
|
141
|
-
```text
|
|
142
|
-
# Запрос к AI-агенту:
|
|
143
|
-
Загрузи коуча из .workflow/src/skills/coach/SKILL.md и <действие>
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
Варианты `<действия>`:
|
|
147
|
-
|
|
148
|
-
| Тип задачи | Пример запроса |
|
|
149
|
-
|------------|----------------|
|
|
150
|
-
| Создать новый скил | `создай скил <имя> для <назначение>` |
|
|
151
|
-
| Аудит существующего | `сделай аудит скила <имя>` |
|
|
152
|
-
| Анализ эффективности | `проанализируй результаты скила <имя> по завершённым тикетам` |
|
|
153
|
-
| Точечное улучшение | `улучши скил <имя>: <что именно>` |
|
|
154
|
-
| Ресерч практик | `найди лучшие практики для <тема> и обогати скил <имя>` |
|
|
155
|
-
| Ревью скила | `сделай ревью скила <имя>` |
|
|
156
|
-
|
|
157
|
-
Коуч сам определит тип задачи, загрузит нужный воркфлоу, внесёт правку, прогонит тест скила и запишет результат в `.workflow/coach-backlog.yaml`. Коммит делает пользователь.
|
|
158
|
-
|
|
159
|
-
## Регрессионные тесты скилов
|
|
160
|
-
|
|
161
|
-
Трёхуровневая система тестирования скилов для проверки качества AI-агентов.
|
|
162
|
-
|
|
163
|
-
### Три слоя тестирования
|
|
164
|
-
|
|
165
|
-
| Уровень | Название | Описание |
|
|
166
|
-
|---------|----------|----------|
|
|
167
|
-
| L0 | Static | Базовая проверка синтаксиса и структуры: YAML-валидация, проверка обязательных полей, линтер |
|
|
168
|
-
| L1 | Deterministic | Детерминированные тесты: эталонные входные данные → ожидаемый результат (strict match) |
|
|
169
|
-
| L2 | Rubric | Гибкая оценка по критериям: scorer выставляет баллы на основе качества результата |
|
|
170
|
-
|
|
171
|
-
### Структура директорий
|
|
172
|
-
|
|
173
|
-
```
|
|
174
|
-
src/skills/<name>/tests/
|
|
175
|
-
├── index.yaml # Метаданные тестов, список test cases
|
|
176
|
-
├── cases/ # Входные данные для тестов
|
|
177
|
-
│ └── <case-id>/
|
|
178
|
-
│ └── input.yaml
|
|
179
|
-
├── fixtures/ # Ожидаемые выходные данные (для L1)
|
|
180
|
-
│ └── <case-id>/
|
|
181
|
-
│ └── expected.yaml
|
|
182
|
-
└── rubrics/ # Критерии оценки (для L2)
|
|
183
|
-
└── <case-id>/
|
|
184
|
-
└── rubric.yaml
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### Запуск тестов
|
|
188
|
-
|
|
189
|
-
```bash
|
|
190
|
-
npm run test:skills
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### CLI-флаги
|
|
194
|
-
|
|
195
|
-
| Флаг | Описание |
|
|
196
|
-
|------|----------|
|
|
197
|
-
| `--skill <name>` | Запустить тесты только для указанного скила |
|
|
198
|
-
| `--relevant` | Запустить только тесты, соответствующие изменённым файлам |
|
|
199
|
-
| `--establish-baseline` | Запустить тесты и сохранить результаты как baseline |
|
|
200
|
-
| `--baseline-ref <ref>` | Использовать конкретный baseline (коммит, тег) |
|
|
201
|
-
| `--yes` | Автоматически подтверждать все действия |
|
|
202
|
-
|
|
203
|
-
### Режимы вердикта
|
|
204
|
-
|
|
205
|
-
| Режим | Описание |
|
|
206
|
-
|-------|----------|
|
|
207
|
-
| `no-baseline` | Первый запуск — результаты сохраняются как baseline без сравнения |
|
|
208
|
-
| `no-regression` | Сравнение с baseline — тест считается пройденным, если результат не хуже baseline |
|
|
209
|
-
|
|
210
|
-
### Принцип git write
|
|
211
|
-
|
|
212
|
-
Runner и коуч **не выполняют git write-операций**. Все изменения в кодовой базе делает исключительно пользователь. Runner только анализирует и рекомендует, но не коммитит.
|
|
213
|
-
|
|
214
|
-
### Первый запуск на новом проекте
|
|
215
|
-
|
|
216
|
-
1. Запустить тесты с флагом `--establish-baseline`
|
|
217
|
-
2. Проверить результаты: красные тесты — ожидаемы для нового проекта
|
|
218
|
-
3. Зафиксировать baseline: `git commit current/` как baseline-коммит
|
|
219
|
-
|
|
220
|
-
## Скрипты
|
|
221
|
-
|
|
222
|
-
Скрипты хранятся глобально в `~/.workflow/scripts/` и подключаются одним junction в `.workflow/src/scripts/`.
|
|
223
|
-
|
|
224
|
-
Используйте `workflow eject-scripts` для копирования скриптов в проект для кастомизации.
|
|
225
|
-
|
|
226
|
-
## Конфиги
|
|
227
|
-
|
|
228
|
-
Конфиги хранятся глобально в `~/.workflow/configs/` и подключаются одним junction в `.workflow/config/`.
|
|
229
|
-
|
|
230
|
-
Используйте `workflow eject-configs` для копирования конфигов в проект для кастомизации.
|
|
231
|
-
|
|
232
|
-
## Шаблоны планов
|
|
233
|
-
|
|
234
|
-
Шаблоны планов позволяют автоматически создавать повторяющиеся планы. Шаблоны лежат в `.workflow/plans/templates/` и содержат условия триггеров во frontmatter.
|
|
235
|
-
|
|
236
|
-
### Формат шаблона
|
|
237
|
-
|
|
238
|
-
```yaml
|
|
239
|
-
id: "TMPL-001"
|
|
240
|
-
title: "Daily manual testing"
|
|
241
|
-
type: template
|
|
242
|
-
trigger:
|
|
243
|
-
type: daily # daily | weekly | date_after | interval_days
|
|
244
|
-
params: {} # параметры, зависящие от типа
|
|
245
|
-
last_triggered: "" # обновляется автоматически при срабатывании
|
|
246
|
-
enabled: true
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### Типы триггеров
|
|
250
|
-
|
|
251
|
-
| Тип | Параметры | Описание |
|
|
252
|
-
|-----|-----------|----------|
|
|
253
|
-
| `daily` | — | Раз в день |
|
|
254
|
-
| `weekly` | `days_of_week: [1,3,5]` (0=вс) | В указанные дни недели |
|
|
255
|
-
| `date_after` | `date: "2026-04-01"` | Один раз после указанной даты |
|
|
256
|
-
| `interval_days` | `days: 3` | Каждые N дней |
|
|
257
|
-
|
|
258
|
-
При срабатывании триггера конвейер создаёт план в `plans/current/` со статусом `approved`, далее идёт обычный поток декомпозиции.
|
|
259
|
-
|
|
260
|
-
## Типы задач
|
|
261
|
-
|
|
262
|
-
| Тип | Префикс | Описание |
|
|
263
|
-
|-----|---------|----------|
|
|
264
|
-
| `arch` | ARCH | Архитектура и планирование |
|
|
265
|
-
| `impl` | IMPL | Реализация кода |
|
|
266
|
-
| `fix` | FIX | Исправления ошибок |
|
|
267
|
-
| `review` | REVIEW | Ревью кода/документации |
|
|
268
|
-
| `docs` | DOCS | Документация |
|
|
269
|
-
| `admin` | ADMIN | Административные задачи |
|
|
270
|
-
|
|
271
|
-
## Fallback агентов и правила здоровья
|
|
272
|
-
|
|
273
|
-
Система включает механизм in-stage fallback и health-мониторинг агентов.
|
|
274
|
-
|
|
275
|
-
### Механика fallback
|
|
276
|
-
|
|
277
|
-
Когда агент падает во время выполнения задачи, система использует **artifact-snapshot** для принятия решения:
|
|
278
|
-
- Если snapshot пустой (нет записанных файлов) → выполняется fallback на следующего агента
|
|
279
|
-
- Если snapshot непустой (есть изменения) → задача переходит в состояние `goto.error`
|
|
280
|
-
|
|
281
|
-
**Пример сценария:** Qwen превысил quota и упал без записи файлов → Kilo вызван в той же попытке, task_attempts не инкрементирован.
|
|
282
|
-
|
|
283
|
-
Конфигурация snapshot:
|
|
284
|
-
```yaml
|
|
285
|
-
execution:
|
|
286
|
-
artifact_snapshot_enabled: false # по умолчанию выключено
|
|
287
|
-
snapshot_paths: ["src/", "configs/"] # что мониторить
|
|
288
|
-
snapshot_max_file_size: 524288 # файлы >512KB — только mtime+size
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
**Baseline производительности:** `p50=169ms p95=299ms files=598` (из QA-20 benchmark).
|
|
292
|
-
|
|
293
|
-
### Классификатор ошибок и health-реестр
|
|
294
|
-
|
|
295
|
-
Ошибки классифицируются по классам:
|
|
296
|
-
- `unavailable` — агент временно недоступен (quota, rate limit)
|
|
297
|
-
- `transient` — временная ошибка сети (timeout, 5xx)
|
|
298
|
-
- `misconfigured` — ошибка конфигурации (401, 403, отсутствует API key)
|
|
299
|
-
- `unmatched` — ошибка не распознана
|
|
300
|
-
|
|
301
|
-
**Семантика TTL:**
|
|
302
|
-
- `5m` — 5 минут
|
|
303
|
-
- `1h` — 1 час
|
|
304
|
-
- `until_utc_midnight` — до полуночи UTC (минимум 30 минут)
|
|
305
|
-
- `infinite` — навсегда
|
|
306
|
-
|
|
307
|
-
Файл конфигурации: `configs/agent-health-rules.yaml`. Файл состояния: `.workflow/state/agent-health.json`.
|
|
308
|
-
|
|
309
|
-
### Команда сброса
|
|
310
|
-
|
|
311
|
-
```bash
|
|
312
|
-
# показать текущее состояние
|
|
313
|
-
node .workflow/src/scripts/reset-agent-health.js
|
|
314
|
-
|
|
315
|
-
# сбросить конкретного агента
|
|
316
|
-
node .workflow/src/scripts/reset-agent-health.js --agent qwen-code
|
|
317
|
-
|
|
318
|
-
# сбросить всех агентов
|
|
319
|
-
node .workflow/src/scripts/reset-agent-health.js --all
|
|
320
|
-
```
|
|
321
|
-
|
|
322
|
-
### Пример добавления правила
|
|
323
|
-
|
|
324
|
-
```yaml
|
|
325
|
-
# В configs/agent-health-rules.yaml:
|
|
326
|
-
agents:
|
|
327
|
-
my-new-agent:
|
|
328
|
-
rules:
|
|
329
|
-
- id: "my-agent-quota"
|
|
330
|
-
class: "unavailable"
|
|
331
|
-
ttl: "until_utc_midnight"
|
|
332
|
-
pattern: "quota exceeded|daily limit reached"
|
|
333
|
-
exit_codes: "any"
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
## Конфигурация
|
|
337
|
-
|
|
338
|
-
### `configs/config.yaml`
|
|
339
|
-
|
|
340
|
-
Основная конфигурация воркфлоу: информация о проекте, типы задач, приоритеты, статусы, типы условий, пути, настройки отчётности.
|
|
341
|
-
|
|
342
|
-
### `configs/pipeline.yaml`
|
|
343
|
-
|
|
344
|
-
Определение конвейера: агенты, стадии, управление потоком, goto-логика, стратегии повторов.
|
|
345
|
-
|
|
346
|
-
### `configs/ticket-movement-rules.yaml`
|
|
347
|
-
|
|
348
|
-
Правила автоматического перемещения тикетов на основе статуса ревью.
|
|
349
|
-
|
|
350
|
-
## Структура проекта
|
|
351
|
-
|
|
352
|
-
```
|
|
353
|
-
workflow-ai/
|
|
354
|
-
├── bin/ # Точка входа CLI
|
|
355
|
-
├── src/
|
|
356
|
-
│ ├── cli.mjs # Парсинг команд
|
|
357
|
-
│ ├── runner.mjs # Оркестратор конвейера
|
|
358
|
-
│ ├── init.mjs # Инициализация проекта
|
|
359
|
-
│ ├── global-dir.mjs # Управление глобальной ~/.workflow/
|
|
360
|
-
│ ├── junction-manager.mjs # Управление junction/symlink
|
|
361
|
-
│ ├── wf-loader.mjs # Загрузчик конфигов
|
|
362
|
-
│ ├── lib/ # Библиотеки утилит
|
|
363
|
-
│ └── tests/ # Набор тестов
|
|
364
|
-
├── configs/ # Файлы конфигурации (источник)
|
|
365
|
-
├── templates/ # Шаблоны воркфлоу (источник)
|
|
366
|
-
├── agent-templates/ # Шаблоны инструкций для AI-агентов
|
|
367
|
-
└── package.json
|
|
368
|
-
```
|
|
369
|
-
|
|
370
|
-
## Требования
|
|
371
|
-
|
|
372
|
-
- Node.js >= 18.0.0
|
|
373
|
-
- npm
|
|
374
|
-
|
|
375
|
-
## Лицензия
|
|
376
|
-
|
|
377
|
-
MIT
|
|
1
|
+
|
|
2
|
+
- Добавлено упоминание `human-gate` в разделе про runner-стадии (пример конфига в pipeline.yaml: human-review-step типа manual-gate).
|
|
3
|
+
- Добавлено упоминание `mark-blocked` как механизм нотификации autoblocked-тикетов (поля auto_blocked_reason/attempts/at).
|
|
4
|
+
|
|
5
|
+
## Runner-стадии
|
|
6
|
+
|
|
7
|
+
В системе поддерживаются различные типы стадий для управления процессами разработки:
|
|
8
|
+
|
|
9
|
+
### Human Gate
|
|
10
|
+
|
|
11
|
+
`human-gate` — стадия ручного контроля, которая требует вмешательства человека для продолжения выполнения пайплайна. Используется для критических точек, где необходима ручная проверка или утверждение.
|
|
12
|
+
|
|
13
|
+
**Условия срабатывания:**
|
|
14
|
+
- Стадия `manual-gate-human` блокирует пайплайн до ручного снятия gate
|
|
15
|
+
- Gate снимается через команду `move-ticket.js <id> unblock`
|
|
16
|
+
- Поддерживает настройку таймаутов и условий повторных попыток
|
|
17
|
+
|
|
18
|
+
**Пример конфигурации pipeline.yaml:**
|
|
19
|
+
```yaml
|
|
20
|
+
stages:
|
|
21
|
+
- name: manual-gate-human
|
|
22
|
+
type: manual-gate-human
|
|
23
|
+
config:
|
|
24
|
+
timeout: 3600 # 1 hour
|
|
25
|
+
max_attempts: 3
|
|
26
|
+
message: "Requires human approval before deployment"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Пример полного файла `pipeline.yaml` доступен в `docs/samples/pipeline-with-human-gate.yaml`.
|
|
30
|
+
|
|
31
|
+
### Autoblock notifications
|
|
32
|
+
|
|
33
|
+
Для автоматического блокировки тикетов при возникновении проблем используется механизм `mark-blocked`. Блокированные тикеты получают дополнительные поля в frontmatter для отслеживания причин и попыток:
|
|
34
|
+
|
|
35
|
+
- `auto_blocked_reason` — причина автоматической блокировки
|
|
36
|
+
- `auto_blocked_attempts` — количество попыток разблокировки
|
|
37
|
+
- `auto_blocked_at` — время автоматической блокировки
|
package/configs/pipeline.yaml
CHANGED
|
@@ -90,6 +90,20 @@ pipeline:
|
|
|
90
90
|
capabilities: [text]
|
|
91
91
|
description: "Kilo deepseek"
|
|
92
92
|
|
|
93
|
+
deepseek-flash:
|
|
94
|
+
command: "kilo"
|
|
95
|
+
args: ["-m", "deepseek/deepseek-v4-flash", "--agent", "code", "--print-logs", "--log-level", "ERROR", "run", "--auto"]
|
|
96
|
+
workdir: "."
|
|
97
|
+
capabilities: [text]
|
|
98
|
+
description: "Kilo deepseek"
|
|
99
|
+
|
|
100
|
+
deepseek-pro:
|
|
101
|
+
command: "kilo"
|
|
102
|
+
args: ["-m", "deepseek/deepseek-v4-pro", "--agent", "code", "--print-logs", "--log-level", "ERROR", "run", "--auto"]
|
|
103
|
+
workdir: "."
|
|
104
|
+
capabilities: [text]
|
|
105
|
+
description: "Kilo deepseek"
|
|
106
|
+
|
|
93
107
|
kilo-minimax:
|
|
94
108
|
command: "kilo"
|
|
95
109
|
args: ["-m", "kilo/minimax/minimax-m2.7", "--agent", "code", "--print-logs", "--log-level", "ERROR", "run", "--auto"]
|
|
@@ -104,6 +118,13 @@ pipeline:
|
|
|
104
118
|
capabilities: [text]
|
|
105
119
|
description: "Kilo free"
|
|
106
120
|
|
|
121
|
+
openrouter-free:
|
|
122
|
+
command: "kilo"
|
|
123
|
+
args: ["-m", "kilo/openrouter/free", "--agent", "code", "--print-logs", "--log-level", "ERROR", "run", "--auto"]
|
|
124
|
+
workdir: "."
|
|
125
|
+
capabilities: [text]
|
|
126
|
+
description: "Kilo free"
|
|
127
|
+
|
|
107
128
|
script-move:
|
|
108
129
|
command: "node"
|
|
109
130
|
args: [".workflow/src/scripts/move-ticket.js"]
|
|
@@ -164,6 +185,18 @@ pipeline:
|
|
|
164
185
|
workdir: "."
|
|
165
186
|
description: "Проверка доступности MCP-серверов"
|
|
166
187
|
|
|
188
|
+
script-mark-blocked:
|
|
189
|
+
command: "node"
|
|
190
|
+
args: [".workflow/src/scripts/mark-blocked.js"]
|
|
191
|
+
workdir: "."
|
|
192
|
+
description: "Обновление frontmatter и запись в alerts.jsonl при автоблокировке"
|
|
193
|
+
|
|
194
|
+
script-mark-human-rejected:
|
|
195
|
+
command: "node"
|
|
196
|
+
args: [".workflow/src/scripts/mark-blocked.js"]
|
|
197
|
+
workdir: "."
|
|
198
|
+
description: "Обновление frontmatter при отклонении human-тикета"
|
|
199
|
+
|
|
167
200
|
script-verify-artifacts:
|
|
168
201
|
command: "node"
|
|
169
202
|
args: [".workflow/src/skills/review-result/scripts/verify-artifacts.js"]
|
|
@@ -253,6 +286,10 @@ pipeline:
|
|
|
253
286
|
task_type: "$result.type"
|
|
254
287
|
required_capabilities: "$result.required_capabilities"
|
|
255
288
|
target: in-progress
|
|
289
|
+
human_ready:
|
|
290
|
+
stage: manual-gate-human
|
|
291
|
+
params:
|
|
292
|
+
ticket_id: "$result.ticket_id"
|
|
256
293
|
in_review:
|
|
257
294
|
stage: verify-artifacts
|
|
258
295
|
params:
|
|
@@ -466,6 +503,10 @@ pipeline:
|
|
|
466
503
|
task_type: "$result.type"
|
|
467
504
|
required_capabilities: "$result.required_capabilities"
|
|
468
505
|
target: in-progress
|
|
506
|
+
human_ready:
|
|
507
|
+
stage: manual-gate-human
|
|
508
|
+
params:
|
|
509
|
+
ticket_id: "$result.ticket_id"
|
|
469
510
|
in_review:
|
|
470
511
|
stage: verify-artifacts
|
|
471
512
|
params:
|
|
@@ -576,10 +617,10 @@ pipeline:
|
|
|
576
617
|
description: "Выполнить выбранную задачу"
|
|
577
618
|
skill: execute-task
|
|
578
619
|
counter: task_attempts
|
|
579
|
-
agents: [kilo-free, kilo-glm-air, claude-haiku, claude-sonnet, claude-opus, kilo-minimax,
|
|
620
|
+
agents: [kilo-free, openrouter-free, kilo-glm-air, claude-haiku, claude-sonnet, claude-opus, kilo-minimax, deepseek-flash]
|
|
580
621
|
agents_by_type:
|
|
581
622
|
coach:
|
|
582
|
-
agents: [kilo-glm, claude-sonnet,
|
|
623
|
+
agents: [kilo-glm, claude-sonnet, deepseek-pro, kilo-minimax]
|
|
583
624
|
instructions: "Твоя роль: coach"
|
|
584
625
|
qa:
|
|
585
626
|
agents: [claude-haiku, kilo-glm, claude-sonnet, claude-opus, kilo-minimax]
|
|
@@ -628,6 +669,73 @@ pipeline:
|
|
|
628
669
|
ticket_id: "$context.ticket_id"
|
|
629
670
|
attempt: "$counter.task_attempts"
|
|
630
671
|
|
|
672
|
+
# -------------------------------------------------------------------------
|
|
673
|
+
# 2d. manual-gate-human
|
|
674
|
+
# Используется для созревших human-тикетов (pick-first-task возвращает human_ready).
|
|
675
|
+
# Ждёт решения по approval-файлу (approved/rejected/timeout).
|
|
676
|
+
# -------------------------------------------------------------------------
|
|
677
|
+
manual-gate-human:
|
|
678
|
+
description: "Ожидание ручного выполнения созревшего human-тикета"
|
|
679
|
+
type: manual-gate
|
|
680
|
+
poll_interval_ms: 2000
|
|
681
|
+
timeout_seconds: 86400
|
|
682
|
+
goto:
|
|
683
|
+
approved: pick-first-task
|
|
684
|
+
rejected:
|
|
685
|
+
stage: mark-human-rejected
|
|
686
|
+
params:
|
|
687
|
+
ticket_id: "$context.ticket_id"
|
|
688
|
+
timeout:
|
|
689
|
+
stage: mark-human-rejected
|
|
690
|
+
params:
|
|
691
|
+
ticket_id: "$context.ticket_id"
|
|
692
|
+
reason: "human_gate_timeout"
|
|
693
|
+
aborted: end
|
|
694
|
+
|
|
695
|
+
# -------------------------------------------------------------------------
|
|
696
|
+
# 3b. mark-blocked
|
|
697
|
+
# Записывает причину автоблокировки в frontmatter тикета и эмитит alert
|
|
698
|
+
# в alerts.jsonl. Вставлен между increment-task-attempts.max_reached и
|
|
699
|
+
# move-ticket(blocked).
|
|
700
|
+
# -------------------------------------------------------------------------
|
|
701
|
+
mark-blocked:
|
|
702
|
+
description: "Записать причину автоблокировки в frontmatter и эмитить alert"
|
|
703
|
+
agent: script-mark-blocked
|
|
704
|
+
timeout: 30
|
|
705
|
+
goto:
|
|
706
|
+
default:
|
|
707
|
+
stage: move-ticket
|
|
708
|
+
params:
|
|
709
|
+
ticket_id: "$context.ticket_id"
|
|
710
|
+
target: blocked
|
|
711
|
+
error:
|
|
712
|
+
stage: move-ticket
|
|
713
|
+
params:
|
|
714
|
+
ticket_id: "$context.ticket_id"
|
|
715
|
+
target: blocked
|
|
716
|
+
|
|
717
|
+
# -------------------------------------------------------------------------
|
|
718
|
+
# 3b'. mark-human-rejected
|
|
719
|
+
# Записывает причину отклонения human-тикета (reject/timeout) и переходит
|
|
720
|
+
# в move-ticket(blocked). Используется ветками rejected и timeout стейджа
|
|
721
|
+
# manual-gate-human.
|
|
722
|
+
# -------------------------------------------------------------------------
|
|
723
|
+
mark-human-rejected:
|
|
724
|
+
description: "Записать причину отклонения human-тикета и переместить в blocked"
|
|
725
|
+
agent: script-mark-human-rejected
|
|
726
|
+
timeout: 30
|
|
727
|
+
goto:
|
|
728
|
+
default:
|
|
729
|
+
stage: move-ticket
|
|
730
|
+
params:
|
|
731
|
+
ticket_id: "$context.ticket_id"
|
|
732
|
+
target: blocked
|
|
733
|
+
error:
|
|
734
|
+
stage: move-ticket
|
|
735
|
+
params:
|
|
736
|
+
ticket_id: "$context.ticket_id"
|
|
737
|
+
target: blocked
|
|
738
|
+
|
|
631
739
|
# -------------------------------------------------------------------------
|
|
632
740
|
# 3c. verify-artifacts
|
|
633
741
|
# Механическая предпроверка артефактов тикета перед AI-ревью.
|
|
@@ -708,10 +816,11 @@ pipeline:
|
|
|
708
816
|
ticket_id: "$context.ticket_id"
|
|
709
817
|
target: ready
|
|
710
818
|
max_reached:
|
|
711
|
-
stage:
|
|
819
|
+
stage: mark-blocked
|
|
712
820
|
params:
|
|
713
821
|
ticket_id: "$context.ticket_id"
|
|
714
|
-
|
|
822
|
+
attempts: "$counter.task_attempts"
|
|
823
|
+
reason: "max_review_attempts"
|
|
715
824
|
|
|
716
825
|
# -------------------------------------------------------------------------
|
|
717
826
|
# 5. move-ticket
|