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
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* calc-plan-metrics.js — аналитические метрики плана для analyze-report.
|
|
5
|
-
*
|
|
6
|
-
* Рассчитывает:
|
|
7
|
-
* 1. Distribution by status
|
|
8
|
-
* 2. Completion %
|
|
9
|
-
* 3. Avg time-to-done
|
|
10
|
-
* 4. Blocked rate
|
|
11
|
-
* 5. Rework count
|
|
12
|
-
*
|
|
13
|
-
* Использование:
|
|
14
|
-
* node calc-plan-metrics.js <PLAN-NNN>
|
|
15
|
-
*
|
|
16
|
-
* Вывод: JSON через маркеры ---RESULT---
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
import fs from 'fs';
|
|
20
|
-
import path from 'path';
|
|
21
|
-
import { findProjectRoot } from 'workflow-ai/lib/find-root.mjs';
|
|
22
|
-
import { parseFrontmatter } from 'workflow-ai/lib/utils.mjs';
|
|
23
|
-
import { createLogger } from 'workflow-ai/lib/logger.mjs';
|
|
24
|
-
|
|
25
|
-
const logger = createLogger();
|
|
26
|
-
|
|
27
|
-
const PROJECT_DIR = findProjectRoot();
|
|
28
|
-
const TICKETS_DIR = path.join(PROJECT_DIR, '.workflow', 'tickets');
|
|
29
|
-
const PLANS_DIR = path.join(PROJECT_DIR, '.workflow', 'plans', 'current');
|
|
30
|
-
const TICKET_DIRS = ['done', 'in-progress', 'blocked', 'ready', 'backlog', 'archive'];
|
|
31
|
-
|
|
32
|
-
function normalizePlanId(raw) {
|
|
33
|
-
if (!raw) return null;
|
|
34
|
-
const basename = path.basename(raw, '.md');
|
|
35
|
-
const full = basename.match(/^plan-(\d+)$/i);
|
|
36
|
-
if (full) return `PLAN-${String(parseInt(full[1], 10)).padStart(3, '0')}`;
|
|
37
|
-
const num = raw.trim().match(/^(\d+)$/);
|
|
38
|
-
if (num) return `PLAN-${String(parseInt(num[1], 10)).padStart(3, '0')}`;
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
function collectPlanTickets(planId) {
|
|
43
|
-
const tickets = [];
|
|
44
|
-
const warnings = [];
|
|
45
|
-
|
|
46
|
-
for (const dirName of TICKET_DIRS) {
|
|
47
|
-
const dir = path.join(TICKETS_DIR, dirName);
|
|
48
|
-
if (!fs.existsSync(dir)) continue;
|
|
49
|
-
|
|
50
|
-
const files = fs.readdirSync(dir).filter(f => f.endsWith('.md') && f !== '.gitkeep.md');
|
|
51
|
-
for (const file of files) {
|
|
52
|
-
const filePath = path.join(dir, file);
|
|
53
|
-
let content;
|
|
54
|
-
try {
|
|
55
|
-
content = fs.readFileSync(filePath, 'utf8');
|
|
56
|
-
} catch (e) {
|
|
57
|
-
warnings.push(`Failed to read ${file}: ${e.message}`);
|
|
58
|
-
continue;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
let parsed;
|
|
62
|
-
try {
|
|
63
|
-
parsed = parseFrontmatter(content);
|
|
64
|
-
} catch (e) {
|
|
65
|
-
warnings.push(`Failed to parse frontmatter in ${file}: ${e.message}`);
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
const { frontmatter } = parsed;
|
|
70
|
-
if (!frontmatter || typeof frontmatter !== 'object') {
|
|
71
|
-
warnings.push(`Invalid frontmatter in ${file}`);
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
const ticketPlanId = normalizePlanId(frontmatter.parent_plan);
|
|
76
|
-
if (ticketPlanId === normalizePlanId(planId)) {
|
|
77
|
-
tickets.push({
|
|
78
|
-
id: frontmatter.id || file.replace('.md', ''),
|
|
79
|
-
title: frontmatter.title || 'Unknown',
|
|
80
|
-
type: frontmatter.type || 'unknown',
|
|
81
|
-
status: dirName,
|
|
82
|
-
created_at: frontmatter.created_at || null,
|
|
83
|
-
updated_at: frontmatter.updated_at || null,
|
|
84
|
-
completed_at: frontmatter.completed_at || null,
|
|
85
|
-
raw: frontmatter,
|
|
86
|
-
body: parsed.body || ''
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return { tickets, warnings };
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
function findPlanFile(planId) {
|
|
96
|
-
if (!fs.existsSync(PLANS_DIR)) return null;
|
|
97
|
-
const files = fs.readdirSync(PLANS_DIR).filter(f => f.endsWith('.md'));
|
|
98
|
-
const normalized = normalizePlanId(planId);
|
|
99
|
-
return files.find(f => normalizePlanId(f) === normalized) || null;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function parsePlan(planFileName) {
|
|
103
|
-
if (!planFileName) return null;
|
|
104
|
-
const planPath = path.join(PLANS_DIR, planFileName);
|
|
105
|
-
try {
|
|
106
|
-
const content = fs.readFileSync(planPath, 'utf8');
|
|
107
|
-
const { frontmatter } = parseFrontmatter(content);
|
|
108
|
-
return frontmatter;
|
|
109
|
-
} catch (e) {
|
|
110
|
-
logger.warn(`Failed to parse plan ${planFileName}: ${e.message}`);
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function calcDistributionByStatus(tickets) {
|
|
116
|
-
const distribution = {};
|
|
117
|
-
for (const dirName of TICKET_DIRS) {
|
|
118
|
-
const count = tickets.filter(t => t.status === dirName).length;
|
|
119
|
-
if (count > 0) {
|
|
120
|
-
distribution[dirName] = count;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
return distribution;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
function calcCompletionPct(tickets) {
|
|
127
|
-
const total = tickets.length;
|
|
128
|
-
const doneCount = tickets.filter(t => t.status === 'done' || t.status === 'archive').length;
|
|
129
|
-
return total > 0 ? Math.round((doneCount / total) * 100 * 100) / 100 : 0;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
function calcAvgTimeToDone(tickets) {
|
|
133
|
-
const doneTickets = tickets.filter(t => t.status === 'done' || t.status === 'archive');
|
|
134
|
-
const times = [];
|
|
135
|
-
|
|
136
|
-
for (const ticket of doneTickets) {
|
|
137
|
-
if (ticket.created_at && ticket.completed_at) {
|
|
138
|
-
const created = new Date(ticket.created_at);
|
|
139
|
-
const completed = new Date(ticket.completed_at);
|
|
140
|
-
const diffMs = completed.getTime() - created.getTime();
|
|
141
|
-
const diffDays = diffMs / (1000 * 60 * 60 * 24);
|
|
142
|
-
if (diffDays >= 0) {
|
|
143
|
-
times.push(diffDays);
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
if (times.length === 0) {
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const avg = times.reduce((sum, d) => sum + d, 0) / times.length;
|
|
153
|
-
return Math.round(avg * 100) / 100;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function calcBlockedRate(tickets) {
|
|
157
|
-
const total = tickets.length;
|
|
158
|
-
const blockedCount = tickets.filter(t => t.status === 'blocked').length;
|
|
159
|
-
return total > 0 ? Math.round((blockedCount / total) * 100 * 100) / 100 : 0;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
function calcReworkCount(tickets) {
|
|
163
|
-
let count = 0;
|
|
164
|
-
for (const ticket of tickets) {
|
|
165
|
-
const notes = ticket.raw?.notes || '';
|
|
166
|
-
if (/повторная работа/i.test(notes) || /Повторная/i.test(notes)) {
|
|
167
|
-
count++;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return count;
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
async function main() {
|
|
174
|
-
const planIdArg = process.argv[2];
|
|
175
|
-
|
|
176
|
-
if (!planIdArg) {
|
|
177
|
-
console.error('Ошибка: не указан ID плана');
|
|
178
|
-
console.error('Использование: node calc-plan-metrics.js <PLAN-NNN>');
|
|
179
|
-
process.exit(1);
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
const planId = normalizePlanId(planIdArg);
|
|
183
|
-
if (!planId) {
|
|
184
|
-
console.error(`Ошибка: невалидный ID плана "${planIdArg}". Ожидается формат PLAN-NNN или число.`);
|
|
185
|
-
process.exit(1);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
logger.info(`Calculating analytics for ${planId}`);
|
|
189
|
-
|
|
190
|
-
const { tickets, warnings } = collectPlanTickets(planId);
|
|
191
|
-
if (tickets.length === 0) {
|
|
192
|
-
logger.warn(`No tickets found for plan ${planId}`);
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
const planFileName = findPlanFile(planId);
|
|
196
|
-
const planData = parsePlan(planFileName);
|
|
197
|
-
|
|
198
|
-
const distribution = calcDistributionByStatus(tickets);
|
|
199
|
-
const completionPct = calcCompletionPct(tickets);
|
|
200
|
-
const avgTimeToDone = calcAvgTimeToDone(tickets);
|
|
201
|
-
const blockedRate = calcBlockedRate(tickets);
|
|
202
|
-
const reworkCount = calcReworkCount(tickets);
|
|
203
|
-
|
|
204
|
-
const result = {
|
|
205
|
-
plan_id: planId,
|
|
206
|
-
total_tickets: tickets.length,
|
|
207
|
-
distribution,
|
|
208
|
-
completion_pct: completionPct,
|
|
209
|
-
avg_time_to_done: avgTimeToDone,
|
|
210
|
-
avg_time_to_done_unit: 'days',
|
|
211
|
-
blocked_rate: blockedRate,
|
|
212
|
-
blocked_rate_unit: 'pct',
|
|
213
|
-
rework_count: reworkCount,
|
|
214
|
-
plan_data: planData ? {
|
|
215
|
-
title: planData.title,
|
|
216
|
-
status: planData.status
|
|
217
|
-
} : null,
|
|
218
|
-
warnings: warnings.length > 0 ? warnings : undefined
|
|
219
|
-
};
|
|
220
|
-
|
|
221
|
-
console.log('---RESULT---');
|
|
222
|
-
console.log(JSON.stringify(result, null, 2));
|
|
223
|
-
console.log('---RESULT---');
|
|
224
|
-
|
|
225
|
-
logger.info(`Analytics calculated: ${tickets.length} tickets`);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
main().catch(err => {
|
|
229
|
-
console.error(`Ошибка: ${err.message}`);
|
|
230
|
-
console.log('---RESULT---');
|
|
231
|
-
console.log(JSON.stringify({ error: err.message }, null, 2));
|
|
232
|
-
console.log('---RESULT---');
|
|
233
|
-
process.exit(1);
|
|
234
|
-
});
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# Шаблон: Отчёт анализа
|
|
2
|
-
|
|
3
|
-
## Структура отчёта
|
|
4
|
-
|
|
5
|
-
```markdown
|
|
6
|
-
# Анализ: {тип — прогресс / ретроспектива}
|
|
7
|
-
|
|
8
|
-
**Дата анализа:** {YYYY-MM-DD}
|
|
9
|
-
**Анализируемый план:** {ID плана}
|
|
10
|
-
**Анализируемый отчёт:** {ID отчёта, если есть}
|
|
11
|
-
**Тип анализа:** {PROGRESS / RETROSPECTIVE}
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Executive Summary
|
|
16
|
-
|
|
17
|
-
{3-5 предложений: общий статус, ключевые находки, главная рекомендация}
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## Метрики
|
|
22
|
-
|
|
23
|
-
| Метрика | Значение | Статус |
|
|
24
|
-
|---------|----------|--------|
|
|
25
|
-
| Completion Rate | {X}% | {🟢/🟡/🟠/🔴} |
|
|
26
|
-
| Weighted Completion | {X}% | {🟢/🟡/🟠/🔴} |
|
|
27
|
-
| First-Pass Rate | {X}% | {🟢/🟡/🟠/🔴} |
|
|
28
|
-
| Block Rate | {X}% | {🟢/🟡/🟠/🔴} |
|
|
29
|
-
| Тренд | {📈/➡️/📉} | — |
|
|
30
|
-
|
|
31
|
-
## Распределение задач
|
|
32
|
-
|
|
33
|
-
| Статус | Количество | % |
|
|
34
|
-
|--------|-----------|---|
|
|
35
|
-
| Done | {N} | {X}% |
|
|
36
|
-
| In Progress | {N} | {X}% |
|
|
37
|
-
| Ready | {N} | {X}% |
|
|
38
|
-
| Blocked | {N} | {X}% |
|
|
39
|
-
| Backlog | {N} | {X}% |
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
## Ключевые находки
|
|
44
|
-
|
|
45
|
-
### 1. {Находка}
|
|
46
|
-
**Уверенность:** [HIGH/MEDIUM/LOW]
|
|
47
|
-
**Данные:** {конкретные данные из отчёта/тикетов}
|
|
48
|
-
|
|
49
|
-
### 2. {Находка}
|
|
50
|
-
...
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Проблемы и риски
|
|
55
|
-
|
|
56
|
-
| # | Проблема | Серьёзность | Данные | Рекомендация |
|
|
57
|
-
|---|---------|-------------|--------|-------------|
|
|
58
|
-
| 1 | {описание} | {CRITICAL/HIGH/MEDIUM/LOW} | {факты} | {действие} |
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
## Рекомендации
|
|
63
|
-
|
|
64
|
-
| # | Действие | Приоритет | Почему | Ожидаемый результат |
|
|
65
|
-
|---|---------|-----------|--------|-------------------|
|
|
66
|
-
| 1 | {что сделать} | {CRITICAL/HIGH/MEDIUM/LOW} | {причина} | {результат} |
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## За пределами скоупа
|
|
71
|
-
|
|
72
|
-
{Находки, не входящие в скоуп анализа, но потенциально полезные}
|
|
73
|
-
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
## Решение
|
|
77
|
-
|
|
78
|
-
**Статус плана:** {ON_TRACK / ATTENTION / AT_RISK / CRITICAL}
|
|
79
|
-
**Рекомендуемое действие:** {продолжить / скорректировать / эскалировать}
|
|
80
|
-
```
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md
DELETED
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
## Анализ прогресса PLAN-001 — Верификация атрибуции QA-001
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Executive Summary
|
|
6
|
-
|
|
7
|
-
Верификация по логу `pipeline-2026-04-06_qa-001-skip.log` выявила **критическую ошибку атрибуции** в REPORT-002. `check-conditions.js` отработал корректно и вернул `conditions_ok` — атрибуция в предыдущем отчёте неверна. Решение о пропуске QA-001 принял стейдж `check-relevance` (строка 29 лога, `decision=irrelevant, reason=dependencies_inactive`). Дополнительно обнаружено противоречие между двумя стейджами в оценке зависимостей, что указывает на системную проблему в пайплайне.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Верификация findings по логу
|
|
12
|
-
|
|
13
|
-
### Finding 1 — Поведение `check-conditions` (Steps 312–313)
|
|
14
|
-
|
|
15
|
-
| Параметр | Значение из лога |
|
|
16
|
-
|---|---|
|
|
17
|
-
| Stage | `check-conditions` |
|
|
18
|
-
| Script | `check-conditions.js` |
|
|
19
|
-
| `dependencies.resolved` | `true` |
|
|
20
|
-
| `prerequisites.met` | `true` |
|
|
21
|
-
| `blocking_tickets` | `[]` |
|
|
22
|
-
| Итоговый статус | `conditions_ok` |
|
|
23
|
-
|
|
24
|
-
**Вердикт `[HIGH]`:** `check-conditions.js` отработал корректно. Стейдж определил все условия как выполненные и передал тикет дальше. Атрибуция root cause в REPORT-002 (`check-conditions.js` неверно определил условия) — **ОШИБОЧНА**.
|
|
25
|
-
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
### Finding 2 — Поведение `check-relevance` (Step 314)
|
|
29
|
-
|
|
30
|
-
| Параметр | Значение из лога |
|
|
31
|
-
|---|---|
|
|
32
|
-
| Stage | `check-relevance` |
|
|
33
|
-
| Script | `check-relevance.js` |
|
|
34
|
-
| `dependencies.status` | `inactive` |
|
|
35
|
-
| `decision` | `irrelevant` |
|
|
36
|
-
| `reason` | `dependencies_inactive` |
|
|
37
|
-
| Итоговый статус | `irrelevant` |
|
|
38
|
-
|
|
39
|
-
**Вердикт `[HIGH]`:** Именно `check-relevance.js` принял решение о нерелевантности тикета и инициировал его пропуск. Root cause находится здесь.
|
|
40
|
-
|
|
41
|
-
---
|
|
42
|
-
|
|
43
|
-
### Finding 3 — Противоречие между стейджами `[HIGH]`
|
|
44
|
-
|
|
45
|
-
Два последовательных стейджа дают **противоречивые оценки зависимостей** одного тикета:
|
|
46
|
-
|
|
47
|
-
| Стейдж | Оценка зависимостей |
|
|
48
|
-
|---|---|
|
|
49
|
-
| `check-conditions` (Step 313) | `dependencies.resolved: true` |
|
|
50
|
-
| `check-relevance` (Step 314) | `dependencies.status: inactive` |
|
|
51
|
-
|
|
52
|
-
Это указывает либо на то, что стейджи проверяют **разные аспекты** зависимостей (resolved ≠ active), либо на **несогласованность** между скриптами. Данный паттерн — более серьёзная проблема, чем ошибочная атрибуция: пайплайн может систематически пропускать тикеты, у которых зависимости формально resolved, но неактивны.
|
|
53
|
-
|
|
54
|
-
---
|
|
55
|
-
|
|
56
|
-
### Finding 4 — `skip-ticket` (Step 315)
|
|
57
|
-
|
|
58
|
-
Стейдж `skip-ticket` явно указывает источник решения:
|
|
59
|
-
|
|
60
|
-
```
|
|
61
|
-
Moving QA-001 → skipped/ (reason from check-relevance: dependencies_inactive)
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**Вердикт `[HIGH]`:** Прямое подтверждение из лога — решение о skip пришло от `check-relevance`, не от `check-conditions`.
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
## Корректная атрибуция
|
|
69
|
-
|
|
70
|
-
| Атрибут | REPORT-002 (некорректно) | Корректно (по логу) |
|
|
71
|
-
|---|---|---|
|
|
72
|
-
| Root cause компонент | `check-conditions.js` | `check-relevance.js` |
|
|
73
|
-
| Причина skip | неверно определил условия запуска | `decision=irrelevant, reason=dependencies_inactive` |
|
|
74
|
-
| Статус `check-conditions` | — | `conditions_ok` (отработал верно) |
|
|
75
|
-
| Предложенное действие | исправить логику зависимостей в `check-conditions.js` | исследовать логику `check-relevance.js` и устранить противоречие с `check-conditions.js` |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## Рекомендации
|
|
80
|
-
|
|
81
|
-
| # | Действие | Компонент | Приоритет |
|
|
82
|
-
|---|---|---|---|
|
|
83
|
-
| 1 | Исследовать `check-relevance.js`: почему `dependencies.status=inactive` при `dependencies.resolved=true` в том же прогоне | `check-relevance.js` | **CRITICAL** |
|
|
84
|
-
| 2 | Определить семантическое различие между `resolved` (check-conditions) и `active` (check-relevance) — если различие легитимно, задокументировать; если нет — устранить дублирование | оба скрипта | **HIGH** |
|
|
85
|
-
| 3 | Добавить в REPORT-002 корригирующую запись с исправленной атрибуцией | документация | **MEDIUM** |
|
|
86
|
-
| 4 | Добавить в пайплайн assertion: если `check-conditions=conditions_ok`, а `check-relevance=irrelevant`, логировать явное предупреждение о противоречии | `PipelineRunner` | **MEDIUM** |
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## За пределами скоупа
|
|
91
|
-
|
|
92
|
-
Общий прогресс PLAN-001 (остальные 4 тикета итерации) не верифицировался — задача ограничена атрибуцией QA-001.
|
|
93
|
-
|
|
94
|
-
---RESULT---
|
|
95
|
-
status: has_gaps
|
|
96
|
-
report_id: REPORT-002
|
|
97
|
-
gaps: "Ошибочная атрибуция root cause QA-001: REPORT-002 указывает check-conditions.js, лог подтверждает check-relevance.js (decision=irrelevant, reason=dependencies_inactive). Обнаружено противоречие зависимостей между стейджами, требует исследования check-relevance.js."
|
|
98
|
-
---RESULT---
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
## Анализ прогресса PLAN-001 — Верификация атрибуции QA-001
|
|
2
|
-
|
|
3
|
-
**Дата:** 2026-04-25
|
|
4
|
-
**Тикет:** ANL (PROGRESS)
|
|
5
|
-
**Источник:** REPORT-002-incorrect-attribution.md + pipeline-2026-04-06_qa-001-skip.log
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Executive Summary
|
|
10
|
-
|
|
11
|
-
Предыдущий отчёт REPORT-002 содержит **некорректную атрибуцию root cause** для пропущенного тикета QA-001. Лог пайплайна однозначно показывает: `check-conditions.js` вернул `conditions_ok` (условия выполнены), а решение о skip принял стейдж `check-relevance` (`decision=irrelevant`, `reason=dependencies_inactive`). Рекомендации из REPORT-002, направленные на исправление `check-conditions.js`, не адресуют реальную проблему. Дополнительно выявлено противоречие в данных между двумя стейджами: `check-conditions` сообщает `dependencies.resolved: true`, а `check-relevance` — `dependencies.status: inactive`.
|
|
12
|
-
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
## Верификация findings по логу
|
|
16
|
-
|
|
17
|
-
### Трассировка пайплайна QA-001
|
|
18
|
-
|
|
19
|
-
| Step | Stage | Компонент | Результат | Верифицировано |
|
|
20
|
-
|------|-------|-----------|-----------|----------------|
|
|
21
|
-
| 312 | `pick-next-task` | `script-pick` | QA-001 выбран, status=ready | ✓ |
|
|
22
|
-
| 313 | `check-conditions` | `check-conditions.js` | **conditions_ok** (все условия выполнены) | ✓ |
|
|
23
|
-
| 314 | `check-relevance` | `check-relevance.js` | **irrelevant**, reason=dependencies_inactive | ✓ — решение о skip здесь |
|
|
24
|
-
| 315 | `skip-ticket` | `script-skip` | QA-001 → skipped/, reason из check-relevance | ✓ |
|
|
25
|
-
|
|
26
|
-
### Детальный анализ стейджа check-conditions (Step 313)
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
dependencies.resolved: true ← зависимости РАЗРЕШЕНЫ
|
|
30
|
-
prerequisites.met: true ← пресквизиты ВЫПОЛНЕНЫ
|
|
31
|
-
blocking_tickets: [] ← блокеров НЕТ
|
|
32
|
-
Result: conditions_ok ← стейдж ПРОПУСТИЛ тикет дальше
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
`check-conditions.js` отработал корректно и не принимал решения о skip. `[HIGH]`
|
|
36
|
-
|
|
37
|
-
### Детальный анализ стейджа check-relevance (Step 314)
|
|
38
|
-
|
|
39
|
-
```
|
|
40
|
-
dependencies.status: inactive ← зависимости НЕАКТИВНЫ
|
|
41
|
-
decision: irrelevant ← тикет признан нерелевантным
|
|
42
|
-
reason: dependencies_inactive ← причина — неактивные зависимости
|
|
43
|
-
COMPLETE status="irrelevant" ← статус передан в skip-ticket
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
Именно `check-relevance.js` принял решение о нерелевантности и инициировал skip. `[HIGH]`
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## Корректная атрибуция root cause
|
|
51
|
-
|
|
52
|
-
| Атрибут | REPORT-002 (некорректно) | Фактически (по логу) |
|
|
53
|
-
|---------|--------------------------|----------------------|
|
|
54
|
-
| **Компонент** | `check-conditions.js` | `check-relevance.js` |
|
|
55
|
-
| **Причина** | «неверно определил условия запуска» | `dependencies.status: inactive` → `decision=irrelevant` |
|
|
56
|
-
| **Результат компонента** | (не указан) | `status="irrelevant"` → передано в `skip-ticket` |
|
|
57
|
-
| **Инициатор skip** | `check-conditions.js` | `skip-ticket` по результату `check-relevance` |
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Дополнительный finding: противоречие между стейджами
|
|
62
|
-
|
|
63
|
-
**`[HIGH]`** Обнаружено противоречие в данных:
|
|
64
|
-
|
|
65
|
-
- `check-conditions.js` (Step 313): `dependencies.resolved: true`
|
|
66
|
-
- `check-relevance.js` (Step 314): `dependencies.status: inactive`
|
|
67
|
-
|
|
68
|
-
Два стейджа получили **взаимоисключающие результаты** по зависимостям одного тикета QA-001 в рамках одной итерации пайплайна. Возможные причины:
|
|
69
|
-
|
|
70
|
-
1. Стейджи используют **разные источники данных** или разные поля для оценки зависимостей
|
|
71
|
-
2. **Семантическое расхождение**: `resolved` (зависимости определены/найдены) vs `inactive` (зависимости не активны/не выполнены)
|
|
72
|
-
3. Ошибка в одном из скриптов при чтении состояния зависимостей
|
|
73
|
-
|
|
74
|
-
Это противоречие само по себе является самостоятельной проблемой, независимо от вопроса атрибуции skip.
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## Рекомендации
|
|
79
|
-
|
|
80
|
-
| # | Действие | Приоритет | Ожидаемый результат |
|
|
81
|
-
|---|----------|-----------|---------------------|
|
|
82
|
-
| 1 | Исправить root cause в REPORT-002: заменить `check-conditions.js` → `check-relevance.js`, скорректировать описание и рекомендации | **CRITICAL** | Отчёт содержит корректные данные; команда не тратит время на исправление не того компонента |
|
|
83
|
-
| 2 | Расследовать логику `check-relevance.js`: почему `dependencies.status=inactive` при `dependencies.resolved=true` из предыдущего стейджа | **HIGH** | Устранение реальной причины skip QA-001; понимание, действительно ли тикет был нерелевантен |
|
|
84
|
-
| 3 | Уточнить семантику полей `dependencies.resolved` и `dependencies.status` в документации пайплайна: разные ли это концепции или дублирующиеся проверки | **HIGH** | Предотвращение будущих противоречий и некорректных атрибуций |
|
|
85
|
-
| 4 | Добавить в пайплайн cross-validation: если `check-conditions` возвращает `conditions_ok`, а `check-relevance` возвращает `irrelevant` по зависимостям — логировать предупреждение | **MEDIUM** | Ранняя детектируемость аналогичных расхождений в будущем |
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
## За пределами скоупа
|
|
90
|
-
|
|
91
|
-
Остальные 4 тикета итерации (упомянуты в REPORT-002 без деталей) в данный анализ не включены — исходные данные по ним отсутствуют.
|
|
92
|
-
|
|
93
|
-
---
|
|
94
|
-
|
|
95
|
-
---RESULT---
|
|
96
|
-
status: has_gaps
|
|
97
|
-
report_id: REPORT-002
|
|
98
|
-
gaps: "Некорректная атрибуция root cause QA-001 (check-conditions.js вместо check-relevance.js); обнаружено противоречие между стейджами (dependencies.resolved=true vs dependencies.status=inactive) — требует расследования check-relevance.js и пересмотра рекомендаций отчёта."
|
|
99
|
-
---RESULT---
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"per_model": {
|
|
3
|
-
"claude-sonnet": {
|
|
4
|
-
"pass_count": 3,
|
|
5
|
-
"total": 3,
|
|
6
|
-
"trials": [
|
|
7
|
-
{
|
|
8
|
-
"trial": 1,
|
|
9
|
-
"score": 5,
|
|
10
|
-
"passed": true
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"trial": 2,
|
|
14
|
-
"score": 5,
|
|
15
|
-
"passed": true
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"trial": 3,
|
|
19
|
-
"score": 5,
|
|
20
|
-
"passed": true
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"kilo-glm": {
|
|
25
|
-
"pass_count": 3,
|
|
26
|
-
"total": 3,
|
|
27
|
-
"trials": [
|
|
28
|
-
{
|
|
29
|
-
"trial": 1,
|
|
30
|
-
"score": 5,
|
|
31
|
-
"passed": true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"trial": 2,
|
|
35
|
-
"score": 5,
|
|
36
|
-
"passed": true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"trial": 3,
|
|
40
|
-
"score": 5,
|
|
41
|
-
"passed": true
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"kilo-minimax": {
|
|
46
|
-
"pass_count": 3,
|
|
47
|
-
"total": 3,
|
|
48
|
-
"trials": [
|
|
49
|
-
{
|
|
50
|
-
"trial": 1,
|
|
51
|
-
"score": 5,
|
|
52
|
-
"passed": true
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"trial": 2,
|
|
56
|
-
"score": 4,
|
|
57
|
-
"passed": true
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"trial": 3,
|
|
61
|
-
"score": 5,
|
|
62
|
-
"passed": true
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
"kilo-deepseek": {
|
|
67
|
-
"pass_count": 3,
|
|
68
|
-
"total": 3,
|
|
69
|
-
"trials": [
|
|
70
|
-
{
|
|
71
|
-
"trial": 1,
|
|
72
|
-
"score": 5,
|
|
73
|
-
"passed": true
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"trial": 2,
|
|
77
|
-
"score": 5,
|
|
78
|
-
"passed": true
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"trial": 3,
|
|
82
|
-
"score": 5,
|
|
83
|
-
"passed": true
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"rubric_scores": [
|
|
89
|
-
{
|
|
90
|
-
"agentId": "kilo-deepseek",
|
|
91
|
-
"trial": 1,
|
|
92
|
-
"score": 5,
|
|
93
|
-
"errored": false
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
"agentId": "kilo-deepseek",
|
|
97
|
-
"trial": 2,
|
|
98
|
-
"score": 5,
|
|
99
|
-
"errored": false
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"agentId": "kilo-deepseek",
|
|
103
|
-
"trial": 3,
|
|
104
|
-
"score": 5,
|
|
105
|
-
"errored": false
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
"agentId": "kilo-glm",
|
|
109
|
-
"trial": 1,
|
|
110
|
-
"score": 5,
|
|
111
|
-
"errored": false
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"agentId": "kilo-glm",
|
|
115
|
-
"trial": 2,
|
|
116
|
-
"score": 5,
|
|
117
|
-
"errored": false
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"agentId": "kilo-glm",
|
|
121
|
-
"trial": 3,
|
|
122
|
-
"score": 5,
|
|
123
|
-
"errored": false
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"agentId": "kilo-minimax",
|
|
127
|
-
"trial": 1,
|
|
128
|
-
"score": 5,
|
|
129
|
-
"errored": false
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
"agentId": "kilo-minimax",
|
|
133
|
-
"trial": 2,
|
|
134
|
-
"score": 4,
|
|
135
|
-
"errored": false
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
"agentId": "kilo-minimax",
|
|
139
|
-
"trial": 3,
|
|
140
|
-
"score": 5,
|
|
141
|
-
"errored": false
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
"agentId": "claude-sonnet",
|
|
145
|
-
"trial": 1,
|
|
146
|
-
"score": 5,
|
|
147
|
-
"errored": false
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
"agentId": "claude-sonnet",
|
|
151
|
-
"trial": 2,
|
|
152
|
-
"score": 5,
|
|
153
|
-
"errored": false
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"agentId": "claude-sonnet",
|
|
157
|
-
"trial": 3,
|
|
158
|
-
"score": 5,
|
|
159
|
-
"errored": false
|
|
160
|
-
}
|
|
161
|
-
],
|
|
162
|
-
"timestamp": "2026-04-25T10:23:46.985Z"
|
|
163
|
-
}
|