workflow-ai 1.0.68 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +49 -0
- package/README.md +105 -7
- package/configs/pipeline.yaml +23 -2
- package/package.json +44 -41
- package/src/lib/operations/plans.mjs +85 -0
- package/src/lib/operations/skills.mjs +124 -0
- package/src/lib/operations/tickets.mjs +430 -0
- package/src/lib/utils.mjs +286 -286
- package/src/runner.mjs +314 -34
- package/src/scripts/check-conditions.js +2 -2
- package/src/scripts/get-next-id.js +8 -31
- package/src/scripts/pick-next-task.js +3 -9
- package/src/skills/coach/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -0
- package/src/skills/review-result/SKILL.md +1 -0
- package/src/scripts/tests/timeout-cascade.test.js +0 -28
- package/src/skills/analyze-report/README.md +0 -44
- package/src/skills/analyze-report/algorithms/progress-assessment.md +0 -108
- package/src/skills/analyze-report/knowledge/analysis-frameworks.md +0 -66
- package/src/skills/analyze-report/knowledge/report-structure.md +0 -61
- package/src/skills/analyze-report/scripts/calc-plan-metrics.js +0 -234
- package/src/skills/analyze-report/templates/analysis-report.md +0 -80
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +0 -69
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +0 -99
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -88
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -100
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +0 -64
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +0 -110
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +0 -74
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +0 -38
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +0 -61
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +0 -60
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +0 -90
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +0 -84
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +0 -86
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +0 -44
- package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +0 -27
- package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +0 -32
- package/src/skills/analyze-report/tests/index.yaml +0 -25
- package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +0 -22
- package/src/skills/analyze-report/tests/rubrics/result-block-format.md +0 -22
- package/src/skills/analyze-report/workflows/progress.md +0 -158
- package/src/skills/analyze-report/workflows/retrospective.md +0 -143
- package/src/skills/coach/README.md +0 -43
- package/src/skills/coach/SKILL.md.legacy +0 -157
- package/src/skills/coach/algorithms/gap-analysis.md +0 -69
- package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
- package/src/skills/coach/algorithms/skill-scoring.md +0 -80
- package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +0 -11
- package/src/skills/coach/knowledge/backlog-management.md +0 -67
- package/src/skills/coach/knowledge/backlog-management.md.legacy +0 -90
- package/src/skills/coach/knowledge/common-antipatterns.md +0 -76
- package/src/skills/coach/knowledge/prompt-engineering.md +0 -45
- package/src/skills/coach/knowledge/shared-knowledge-guide.md +0 -44
- package/src/skills/coach/knowledge/skill-anatomy.md +0 -49
- package/src/skills/coach/knowledge/test-authorship.md +0 -141
- package/src/skills/coach/templates/audit-report.md +0 -39
- package/src/skills/coach/templates/coach-backlog-init.yaml +0 -14
- package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +0 -10
- package/src/skills/coach/templates/improvement-plan.md +0 -42
- package/src/skills/coach/templates/new-skill.md +0 -95
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +0 -65
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +0 -75
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +0 -81
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +0 -101
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +0 -91
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +0 -55
- package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +0 -53
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +0 -50
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +0 -37
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +0 -23
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +0 -29
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +0 -13
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +0 -19
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +0 -33
- package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +0 -57
- package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +0 -77
- package/src/skills/coach/tests/index.yaml +0 -29
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +0 -13
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +0 -29
- package/src/skills/coach/tests/rubrics/evidence-based.md +0 -26
- package/src/skills/coach/tests/rubrics/root-cause-first.md +0 -21
- package/src/skills/coach/workflows/analyze.md +0 -79
- package/src/skills/coach/workflows/analyze.md.legacy +0 -64
- package/src/skills/coach/workflows/audit.md +0 -74
- package/src/skills/coach/workflows/audit.md.legacy +0 -59
- package/src/skills/coach/workflows/create.md +0 -80
- package/src/skills/coach/workflows/create.md.legacy +0 -67
- package/src/skills/coach/workflows/improve.md +0 -71
- package/src/skills/coach/workflows/improve.md.legacy +0 -60
- package/src/skills/coach/workflows/research.md +0 -55
- package/src/skills/coach/workflows/review.md +0 -52
- package/src/skills/coach/workflows/review.md.legacy +0 -48
- package/src/skills/coach/workflows/test.md +0 -97
- package/src/skills/create-plan/README.md +0 -39
- package/src/skills/create-plan/algorithms/risk-assessment.md +0 -73
- package/src/skills/create-plan/knowledge/plan-completeness.md +0 -67
- package/src/skills/create-plan/knowledge/plan-lifecycle.md +0 -33
- package/src/skills/create-plan/knowledge/task-verification-pairs.md +0 -151
- package/src/skills/create-plan/knowledge/test-hygiene.md +0 -47
- package/src/skills/create-plan/scripts/validate-completeness.js +0 -182
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +0 -39
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +0 -35
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +0 -167
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -10
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +0 -26
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +0 -86
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +0 -119
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +0 -41
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +0 -164
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -3
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -13
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +0 -44
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +0 -49
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +0 -6
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +0 -16
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +0 -116
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +0 -39
- package/src/skills/create-plan/tests/index.yaml +0 -25
- package/src/skills/create-plan/tests/rubrics/task-granularity.md +0 -21
- package/src/skills/create-plan/tests/rubrics/validate-completeness.md +0 -21
- package/src/skills/create-plan/workflows/create.md +0 -136
- package/src/skills/create-report/README.md +0 -40
- package/src/skills/create-report/algorithms/metric-calculation.md +0 -93
- package/src/skills/create-report/knowledge/report-metrics.md +0 -82
- package/src/skills/create-report/scripts/calc-metrics.js +0 -383
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +0 -26
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +0 -28
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +0 -163
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -3
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +0 -8
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +0 -7
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +0 -22
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +0 -13
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +0 -115
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +0 -57
- package/src/skills/create-report/tests/index.yaml +0 -20
- package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +0 -21
- package/src/skills/create-report/workflows/standard.md +0 -175
- package/src/skills/decompose-gaps/README.md +0 -39
- package/src/skills/decompose-gaps/algorithms/scope-check.md +0 -110
- package/src/skills/decompose-gaps/knowledge/scope-validation.md +0 -65
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +0 -56
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +0 -164
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +0 -22
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +0 -29
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +0 -35
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +0 -18
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +0 -116
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +0 -46
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +0 -163
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +0 -21
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +0 -38
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +0 -16
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +0 -10
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +0 -9
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +0 -115
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +0 -36
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +0 -165
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +0 -37
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +0 -45
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +0 -117
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +0 -41
- package/src/skills/decompose-gaps/tests/index.yaml +0 -30
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +0 -21
- package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +0 -22
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +0 -21
- package/src/skills/decompose-gaps/workflows/decompose.md +0 -123
- package/src/skills/decompose-plan/README.md +0 -43
- package/src/skills/decompose-plan/algorithms/deduplication.md +0 -101
- package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +0 -139
- package/src/skills/decompose-plan/knowledge/capabilities.md +0 -68
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +0 -82
- package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +0 -73
- package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +0 -47
- package/src/skills/decompose-plan/scripts/check-duplicates.js +0 -323
- package/src/skills/decompose-plan/scripts/verify-atomicity.js +0 -408
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -20
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -28
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +0 -137
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +0 -188
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +0 -32
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +0 -110
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +0 -56
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +0 -47
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +0 -43
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -15
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -12
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +0 -34
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +0 -44
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +0 -21
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +0 -38
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +0 -48
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +0 -167
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +0 -62
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +0 -174
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +0 -55
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +0 -104
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +0 -45
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +0 -58
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +0 -193
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +0 -202
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +0 -155
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +0 -52
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +0 -64
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +0 -59
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +0 -204
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +0 -213
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +0 -57
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +0 -147
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +0 -165
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +0 -133
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +0 -81
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +0 -108
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +0 -3
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +0 -78
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +0 -225
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +0 -66
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +0 -67
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +0 -40
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +0 -122
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +0 -131
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +0 -138
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +0 -41
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +0 -88
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +0 -72
- package/src/skills/decompose-plan/tests/index.yaml +0 -45
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +0 -21
- package/src/skills/decompose-plan/workflows/decompose.md +0 -305
- package/src/skills/deep-research/README.md +0 -36
- package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
- package/src/skills/deep-research/algorithms/synthesis.md +0 -67
- package/src/skills/deep-research/knowledge/data-validation.md +0 -44
- package/src/skills/deep-research/knowledge/perplexity-config.md +0 -30
- package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
- package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
- package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
- package/src/skills/deep-research/templates/brief-summary.md +0 -25
- package/src/skills/deep-research/templates/research-report.md +0 -76
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +0 -48
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +0 -88
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +0 -163
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +0 -58
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +0 -249
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +0 -44
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +0 -96
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +0 -94
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +0 -115
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +0 -58
- package/src/skills/deep-research/tests/index.yaml +0 -20
- package/src/skills/deep-research/tests/rubrics/self-check-url.md +0 -34
- package/src/skills/deep-research/workflows/base-checklist.md +0 -19
- package/src/skills/deep-research/workflows/benchmark.md +0 -38
- package/src/skills/deep-research/workflows/competitor.md +0 -44
- package/src/skills/deep-research/workflows/custom.md +0 -32
- package/src/skills/deep-research/workflows/market.md +0 -44
- package/src/skills/deep-research/workflows/technology.md +0 -40
- package/src/skills/deep-research/workflows/trend.md +0 -40
- package/src/skills/execute-task/README.md +0 -44
- package/src/skills/execute-task/algorithms/execution-strategy.md +0 -136
- package/src/skills/execute-task/knowledge/context-checkpoints.md +0 -75
- package/src/skills/execute-task/knowledge/ticket-structure.md +0 -70
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +0 -48
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +0 -6
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +0 -9
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +0 -26
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +0 -44
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +0 -37
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +0 -18
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +0 -16
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +0 -14
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +0 -1
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +0 -50
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +0 -15
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +0 -39
- package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +0 -41
- package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +0 -40
- package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +0 -42
- package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +0 -41
- package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +0 -40
- package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +0 -36
- package/src/skills/execute-task/tests/index.yaml +0 -39
- package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +0 -22
- package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +0 -20
- package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +0 -21
- package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +0 -23
- package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +0 -22
- package/src/skills/execute-task/workflows/execute.md +0 -104
- package/src/skills/manual-testing/README.md +0 -63
- package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +0 -74
- package/src/skills/manual-testing/algorithms/bug-severity.md +0 -73
- package/src/skills/manual-testing/algorithms/mcp-budget.md +0 -97
- package/src/skills/manual-testing/algorithms/test-prioritization.md +0 -69
- package/src/skills/manual-testing/knowledge/browser-extension-testing.md +0 -102
- package/src/skills/manual-testing/knowledge/browser-tools.md +0 -114
- package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +0 -92
- package/src/skills/manual-testing/knowledge/desktop-tools-core.md +0 -76
- package/src/skills/manual-testing/knowledge/sandbox-advanced.md +0 -83
- package/src/skills/manual-testing/knowledge/sandbox-core.md +0 -67
- package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +0 -69
- package/src/skills/manual-testing/knowledge/test-case-design.md +0 -107
- package/src/skills/manual-testing/knowledge/testing-types.md +0 -45
- package/src/skills/manual-testing/templates/bug-report.md +0 -52
- package/src/skills/manual-testing/templates/test-case.md +0 -34
- package/src/skills/manual-testing/templates/test-plan.md +0 -97
- package/src/skills/manual-testing/templates/test-session-report.md +0 -56
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +0 -34
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +0 -4
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +0 -8
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +0 -38
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +0 -44
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +0 -47
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +0 -24
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +0 -13
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +0 -18
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +0 -21
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +0 -37
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +0 -76
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +0 -71
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +0 -85
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +0 -46
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +0 -36
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +0 -65
- package/src/skills/manual-testing/tests/index.yaml +0 -30
- package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +0 -140
- package/src/skills/manual-testing/tests/last-run-tc002.log +0 -1
- package/src/skills/manual-testing/tests/last-run.log +0 -1469
- package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +0 -31
- package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +0 -20
- package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +0 -21
- package/src/skills/manual-testing/workflows/acceptance.md +0 -80
- package/src/skills/manual-testing/workflows/exploratory.md +0 -84
- package/src/skills/manual-testing/workflows/regression.md +0 -76
- package/src/skills/manual-testing/workflows/smoke.md +0 -109
- package/src/skills/manual-testing/workflows/test-plan.md +0 -75
- package/src/skills/review-result/README.md +0 -59
- package/src/skills/review-result/algorithms/verification.md +0 -112
- package/src/skills/review-result/knowledge/dod-patterns.md +0 -115
- package/src/skills/review-result/knowledge/test-hygiene.md +0 -44
- package/src/skills/review-result/scripts/verify-artifacts.js +0 -497
- package/src/skills/review-result/templates/verdict.md +0 -153
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +0 -164
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +0 -49
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +0 -13
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +0 -116
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +0 -51
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +0 -25
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +0 -32
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +0 -34
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +0 -8
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-1.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-3.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-3.md +0 -11
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-1.md +0 -16
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-2.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-3.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-1.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-3.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003-test-isolation.yaml +0 -50
- package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +0 -43
- package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +0 -46
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/QA-904.md +0 -51
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/example-test.mjs +0 -36
- package/src/skills/review-result/tests/index.yaml +0 -30
- package/src/skills/review-result/tests/rubrics/path-line-suffix.md +0 -19
- package/src/skills/review-result/tests/rubrics/test-isolation.md +0 -20
- package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +0 -19
- package/src/skills/review-result/workflows/review.md +0 -209
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
# Алгоритм: Оценка прогресса по плану
|
|
2
|
-
|
|
3
|
-
Формализованный метод оценки текущего прогресса выполнения плана.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- Список всех тикетов плана с их статусами (done, in-progress, ready, blocked, backlog)
|
|
8
|
-
- Сложность каждого тикета (simple, medium, complex)
|
|
9
|
-
- Даты создания и завершения тикетов
|
|
10
|
-
- Данные ревью (прошёл / не прошёл / пропущен)
|
|
11
|
-
|
|
12
|
-
## Алгоритм
|
|
13
|
-
|
|
14
|
-
### 1. Подсчитай распределение по статусам
|
|
15
|
-
|
|
16
|
-
```
|
|
17
|
-
total = count(all tickets)
|
|
18
|
-
done = count(status == done)
|
|
19
|
-
in_progress = count(status == in-progress)
|
|
20
|
-
ready = count(status == ready)
|
|
21
|
-
blocked = count(status == blocked)
|
|
22
|
-
backlog = count(status == backlog)
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
### 2. Рассчитай Completion Rate
|
|
26
|
-
|
|
27
|
-
**Простой (по количеству):**
|
|
28
|
-
```
|
|
29
|
-
completion_rate = done / total × 100%
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
**Взвешенный (по сложности):**
|
|
33
|
-
|
|
34
|
-
| Сложность | Вес |
|
|
35
|
-
|-----------|-----|
|
|
36
|
-
| simple | 1 |
|
|
37
|
-
| medium | 2 |
|
|
38
|
-
| complex | 3 |
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
weighted_done = Σ(weight[t] for t in done_tickets)
|
|
42
|
-
weighted_total = Σ(weight[t] for t in all_tickets)
|
|
43
|
-
weighted_completion = weighted_done / weighted_total × 100%
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
### 3. Рассчитай Quality Rate
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
reviewed = count(tickets with review)
|
|
50
|
-
passed_first = count(tickets passed review on first attempt)
|
|
51
|
-
first_pass_rate = passed_first / reviewed × 100%
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### 4. Рассчитай Block Rate
|
|
55
|
-
|
|
56
|
-
```
|
|
57
|
-
block_rate = blocked / total × 100%
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
### 5. Определи статус прогресса
|
|
61
|
-
|
|
62
|
-
| Completion | Block Rate | First-Pass Rate | Статус | Рекомендация |
|
|
63
|
-
|------------|-----------|-----------------|--------|-------------|
|
|
64
|
-
| ≥80% | <10% | ≥70% | 🟢 ON_TRACK | Продолжить по плану |
|
|
65
|
-
| 50-80% | <20% | ≥50% | 🟡 ATTENTION | Обратить внимание на отстающие задачи |
|
|
66
|
-
| 30-50% | <30% | Любой | 🟠 AT_RISK | Пересмотреть приоритеты, разблокировать |
|
|
67
|
-
| <30% | ≥30% | Любой | 🔴 CRITICAL | Эскалировать, пересмотреть план |
|
|
68
|
-
|
|
69
|
-
### 6. Оцени тренд
|
|
70
|
-
|
|
71
|
-
Если есть данные за несколько периодов:
|
|
72
|
-
```
|
|
73
|
-
velocity_current = done_last_period / period_length
|
|
74
|
-
velocity_previous = done_prev_period / period_length
|
|
75
|
-
trend = velocity_current - velocity_previous
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
| Тренд | Интерпретация |
|
|
79
|
-
|-------|---------------|
|
|
80
|
-
| trend > 0 | 📈 Ускорение |
|
|
81
|
-
| trend ≈ 0 | ➡️ Стабильно |
|
|
82
|
-
| trend < 0 | 📉 Замедление |
|
|
83
|
-
|
|
84
|
-
## Выход
|
|
85
|
-
|
|
86
|
-
- Completion Rate (простой и взвешенный)
|
|
87
|
-
- Quality Rate (First-Pass Rate)
|
|
88
|
-
- Block Rate
|
|
89
|
-
- Статус прогресса (ON_TRACK / ATTENTION / AT_RISK / CRITICAL)
|
|
90
|
-
- Тренд (если данных достаточно)
|
|
91
|
-
- Распределение тикетов по статусам
|
|
92
|
-
|
|
93
|
-
## Пример
|
|
94
|
-
|
|
95
|
-
```
|
|
96
|
-
Total: 12 тикетов
|
|
97
|
-
Done: 7 (3 simple, 3 medium, 1 complex)
|
|
98
|
-
In-progress: 2 (1 medium, 1 complex)
|
|
99
|
-
Ready: 1 (simple)
|
|
100
|
-
Blocked: 2 (1 medium, 1 complex)
|
|
101
|
-
|
|
102
|
-
Completion Rate: 7/12 = 58%
|
|
103
|
-
Weighted: (3×1 + 3×2 + 1×3) / (4×1 + 4×2 + 4×3) = 12/24 = 50%
|
|
104
|
-
Block Rate: 2/12 = 17%
|
|
105
|
-
First-Pass Rate: 5/7 = 71%
|
|
106
|
-
|
|
107
|
-
Статус: 🟡 ATTENTION (50% weighted, 17% blocked, 71% first-pass)
|
|
108
|
-
```
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# Методологии анализа отчётов
|
|
2
|
-
|
|
3
|
-
Базовые фреймворки и метрики для анализа отчётов о выполненных задачах.
|
|
4
|
-
|
|
5
|
-
## Фреймворк анализа прогресса
|
|
6
|
-
|
|
7
|
-
### Количественные метрики
|
|
8
|
-
|
|
9
|
-
| Метрика | Формула | Интерпретация |
|
|
10
|
-
|---------|---------|---------------|
|
|
11
|
-
| **Completion Rate** | done / total × 100% | Общий прогресс по плану |
|
|
12
|
-
| **Weighted Completion** | Σ(done × complexity) / Σ(total × complexity) × 100% | Прогресс с учётом сложности |
|
|
13
|
-
| **Throughput** | done / time_elapsed | Скорость выполнения |
|
|
14
|
-
| **Block Rate** | blocked / total × 100% | Доля заблокированных задач |
|
|
15
|
-
| **Rework Rate** | reworked / done × 100% | Доля задач с переделками |
|
|
16
|
-
| **First-Pass Rate** | passed_review_first / done × 100% | Качество выполнения с первого раза |
|
|
17
|
-
|
|
18
|
-
### Качественные индикаторы
|
|
19
|
-
|
|
20
|
-
| Индикатор | Сигнал | Действие |
|
|
21
|
-
|-----------|--------|----------|
|
|
22
|
-
| Много заблокированных задач | Проблемы с зависимостями | Пересмотреть порядок задач |
|
|
23
|
-
| Низкий First-Pass Rate | Проблемы с качеством | Усилить критерии DoD |
|
|
24
|
-
| Высокий Rework Rate | Нечёткие требования | Улучшить описания задач |
|
|
25
|
-
| Throughput падает | Усталость / сложность растёт | Декомпозировать оставшиеся задачи |
|
|
26
|
-
|
|
27
|
-
## Фреймворк ретроспективы: Keep / Stop / Try
|
|
28
|
-
|
|
29
|
-
### Keep (Продолжать)
|
|
30
|
-
Практики, которые доказали эффективность:
|
|
31
|
-
- Что конкретно делалось?
|
|
32
|
-
- Какой результат это дало?
|
|
33
|
-
- Почему это сработало?
|
|
34
|
-
|
|
35
|
-
### Stop (Прекратить)
|
|
36
|
-
Практики, которые создавали проблемы:
|
|
37
|
-
- Что конкретно происходило?
|
|
38
|
-
- Какой вред это наносило?
|
|
39
|
-
- Что вызвало эту практику?
|
|
40
|
-
|
|
41
|
-
### Try (Попробовать)
|
|
42
|
-
Новые подходы для эксперимента:
|
|
43
|
-
- Что конкретно предлагается?
|
|
44
|
-
- Какую проблему это решает?
|
|
45
|
-
- Как измерить результат?
|
|
46
|
-
|
|
47
|
-
## Паттерны типичных проблем
|
|
48
|
-
|
|
49
|
-
| Паттерн | Симптомы | Корневая причина | Рекомендация |
|
|
50
|
-
|---------|---------|-----------------|--------------|
|
|
51
|
-
| **Scope Creep** | Количество задач растёт, прогресс стоит | Нечёткие границы плана | Зафиксировать скоуп, новые задачи — в следующий план |
|
|
52
|
-
| **Dependency Hell** | Много заблокированных задач | Плохая декомпозиция зависимостей | Пересмотреть порядок, разблокировать критический путь |
|
|
53
|
-
| **Quality Debt** | Высокий rework rate | Слабые критерии DoD | Усилить DoD, добавить чеклисты |
|
|
54
|
-
| **Single Point of Failure** | Один тип задач блокирует всё | Отсутствие параллелизма | Декомпозировать для параллельного выполнения |
|
|
55
|
-
| **Velocity Decay** | Throughput падает со временем | Растущая сложность / усталость | Декомпозировать крупные задачи, ротация фокуса |
|
|
56
|
-
|
|
57
|
-
## Классификация серьёзности проблем
|
|
58
|
-
|
|
59
|
-
| Уровень | Описание | Действие |
|
|
60
|
-
|---------|----------|----------|
|
|
61
|
-
| **CRITICAL** | Блокирует весь план, прогресс невозможен | Немедленное вмешательство |
|
|
62
|
-
| **HIGH** | Значительно замедляет прогресс | Решить в текущей итерации |
|
|
63
|
-
| **MEDIUM** | Влияет на качество, но не блокирует | Запланировать решение |
|
|
64
|
-
| **LOW** | Мелкие недочёты, потенциальные улучшения | Учесть при следующем планировании |
|
|
65
|
-
|
|
66
|
-
<!-- РАСШИРЕНИЕ: добавляй новые паттерны и фреймворки ниже -->
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Структура отчётов и извлечение данных
|
|
2
|
-
|
|
3
|
-
Описание типовой структуры отчётов workflow-ai и правила извлечения данных из них.
|
|
4
|
-
|
|
5
|
-
## Типовая структура отчёта
|
|
6
|
-
|
|
7
|
-
Отчёты находятся в `.workflow/reports/` и содержат:
|
|
8
|
-
|
|
9
|
-
| Секция | Что извлекать |
|
|
10
|
-
|--------|--------------|
|
|
11
|
-
| **Frontmatter** | ID, дата, связанный план, период |
|
|
12
|
-
| **Выполненные задачи** | Список завершённых тикетов, результаты |
|
|
13
|
-
| **Проблемы** | Заблокированные задачи, ошибки, отклонения |
|
|
14
|
-
| **Статистика** | Количественные данные: done/total, время |
|
|
15
|
-
| **Рекомендации** | Выводы предыдущего анализа (если есть) |
|
|
16
|
-
|
|
17
|
-
## Извлечение данных из тикетов
|
|
18
|
-
|
|
19
|
-
### Из завершённых тикетов (done/)
|
|
20
|
-
|
|
21
|
-
| Поле | Где искать | Зачем |
|
|
22
|
-
|------|-----------|-------|
|
|
23
|
-
| `id` | Frontmatter | Идентификация |
|
|
24
|
-
| `complexity` | Frontmatter | Weighted completion |
|
|
25
|
-
| `created_at` / `completed_at` | Frontmatter | Время выполнения |
|
|
26
|
-
| **Result** | Секция `## Result` | Что реально сделано |
|
|
27
|
-
| **DoD** | Секция критериев | Все ли выполнены |
|
|
28
|
-
| **Ревью** | Секция `## Ревью` | Прошёл ли с первого раза |
|
|
29
|
-
|
|
30
|
-
### Из заблокированных тикетов (blocked/)
|
|
31
|
-
|
|
32
|
-
| Поле | Зачем |
|
|
33
|
-
|------|-------|
|
|
34
|
-
| `id`, `title` | Идентификация |
|
|
35
|
-
| `dependencies` | Что блокирует |
|
|
36
|
-
| Причина блокировки | Для рекомендаций по разблокировке |
|
|
37
|
-
|
|
38
|
-
### Из тикетов в работе (in-progress/)
|
|
39
|
-
|
|
40
|
-
| Поле | Зачем |
|
|
41
|
-
|------|-------|
|
|
42
|
-
| `id`, `title` | Текущая работа |
|
|
43
|
-
| `created_at` | Как давно в работе |
|
|
44
|
-
|
|
45
|
-
## Извлечение данных из планов
|
|
46
|
-
|
|
47
|
-
| Секция плана | Что извлекать |
|
|
48
|
-
|-------------|--------------|
|
|
49
|
-
| **Цели** | Ожидаемые результаты для сравнения |
|
|
50
|
-
| **Задачи** | Полный список для подсчёта покрытия |
|
|
51
|
-
| **Приоритеты** | Для оценки порядка выполнения |
|
|
52
|
-
| **Риски** | Для проверки — сработали ли |
|
|
53
|
-
|
|
54
|
-
## Правила работы с данными
|
|
55
|
-
|
|
56
|
-
- **Считай только то, что есть** — не экстраполируй, не предполагай
|
|
57
|
-
- **Указывай источник** — для каждой метрики укажи откуда взяты данные
|
|
58
|
-
- **Отмечай пробелы** — если данных не хватает для вывода, явно укажи
|
|
59
|
-
- **Разделяй факты и выводы** — сначала данные, потом интерпретация
|
|
60
|
-
|
|
61
|
-
<!-- РАСШИРЕНИЕ: обновляй при изменении структуры отчётов -->
|
|
@@ -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-1.md
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
## Анализ прогресса PLAN-001 — Верификация атрибуции QA-001
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
## Executive Summary
|
|
6
|
-
|
|
7
|
-
Проведена верификация finding из REPORT-002 по логу пайплайна итерации от 2026-04-06. Root cause пропуска тикета QA-001 в REPORT-002 атрибутирован ошибочно: указан `check-conditions.js`, тогда как лог однозначно показывает, что `check-conditions` завершился с `conditions_ok`. Решение о пропуске приняла стадия `check-relevance` (Step 314, `decision=irrelevant`, `reason=dependencies_inactive`). Помимо некорректной атрибуции, лог выявляет внутреннее противоречие между показаниями двух стейджей по зависимостям — это самостоятельная проблема, требующая внимания.
|
|
8
|
-
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
## Верификация по логу — пошаговая
|
|
12
|
-
|
|
13
|
-
| Step | Стейдж | Компонент | Результат по логу | Вывод REPORT-002 |
|
|
14
|
-
|------|--------|-----------|-------------------|-----------------|
|
|
15
|
-
| 312 | `pick-next-task` | `script-pick` | QA-001 выбран, `status=ready` | — |
|
|
16
|
-
| 313 | `check-conditions` | `check-conditions.js` | `conditions_ok` (dependencies.resolved: **true**, prerequisites.met: true, blocking_tickets: []) | ❌ атрибутирован как root cause |
|
|
17
|
-
| 314 | `check-relevance` | `check-relevance.js` | `irrelevant`, `reason=dependencies_inactive` | ❌ не упомянут |
|
|
18
|
-
| 315 | `skip-ticket` | `script-skip` | QA-001 → skipped, reason из check-relevance: `dependencies_inactive` | — |
|
|
19
|
-
|
|
20
|
-
**Вывод `[HIGH]`:** `check-conditions.js` на Step 313 явно вернул `conditions_ok` и не является причиной пропуска. Решение о `skip` принято исключительно стейджем `check-relevance` на Step 314.
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## Findings
|
|
25
|
-
|
|
26
|
-
### Finding 1 — Некорректная атрибуция root cause в REPORT-002 `[HIGH]`
|
|
27
|
-
|
|
28
|
-
**Факт:** REPORT-002 указывает `check-conditions.js` как компонент, передавший тикет дальше без обработки. Лог опровергает это: Step 313 завершён со статусом `conditions_ok`, все три проверки условий пройдены.
|
|
29
|
-
|
|
30
|
-
**Корректная атрибуция:** `check-relevance.js` (Step 314) — именно этот скрипт принял решение `decision=irrelevant` и выставил `reason=dependencies_inactive`, что и повлекло переход к `skip-ticket`.
|
|
31
|
-
|
|
32
|
-
**Некорректная рекомендация в REPORT-002:** «Пересмотреть пороги `check-conditions.js`» — не релевантна, так как этот компонент отработал корректно.
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
### Finding 2 — Внутреннее противоречие между стейджами по зависимостям `[HIGH]`
|
|
37
|
-
|
|
38
|
-
**Факт:** Два стейджа дают взаимоисключающие данные о зависимостях QA-001:
|
|
39
|
-
|
|
40
|
-
| Стейдж | Поле | Значение |
|
|
41
|
-
|--------|------|----------|
|
|
42
|
-
| `check-conditions` (Step 313) | `dependencies.resolved` | `true` |
|
|
43
|
-
| `check-relevance` (Step 314) | `dependencies.status` | `inactive` |
|
|
44
|
-
|
|
45
|
-
**Интерпретация `[MEDIUM]`:** Вероятно, стейджи проверяют разные аспекты зависимостей — `check-conditions` проверяет блокирующие тикеты (есть ли незакрытые зависимости в трекере), `check-relevance` проверяет активность зависимых фич/компонентов в продукте. Это семантически разные проверки, но их терминология пересекается и создаёт риск будущих ошибок атрибуции.
|
|
46
|
-
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
## Скорректированные рекомендации
|
|
50
|
-
|
|
51
|
-
| # | Действие | Приоритет | Обоснование | Ожидаемый результат |
|
|
52
|
-
|---|----------|-----------|-------------|---------------------|
|
|
53
|
-
| 1 | Исправить root cause в REPORT-002: заменить `check-conditions.js` на `check-relevance.js` | HIGH | Лог Step 313 доказывает, что `check-conditions` вернул `conditions_ok` | Корректная история инцидента, правильный вектор исправления |
|
|
54
|
-
| 2 | Изучить логику `check-relevance.js`: почему `dependencies.status=inactive` при `dependencies.resolved=true` | HIGH | Противоречие между стейджами может скрывать баг или неконсистентное определение «зависимости» | Понимание реального сбоя, устранение потенциального источника ложных пропусков |
|
|
55
|
-
| 3 | Переименовать поля: `check-conditions` → `blocking_deps_resolved`, `check-relevance` → `feature_deps_active` | MEDIUM | Текущая терминология (`dependencies.*`) в обоих стейджах неотличима при анализе логов | Снижение риска ошибок атрибуции в будущих отчётах |
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## За пределами скоупа
|
|
60
|
-
|
|
61
|
-
Остальные 5 тикетов итерации упомянуты в REPORT-002 без деталей — их статусы не верифицировались в рамках данного анализа (лог содержит только шаги 312–315).
|
|
62
|
-
|
|
63
|
-
---
|
|
64
|
-
|
|
65
|
-
---RESULT---
|
|
66
|
-
status: has_gaps
|
|
67
|
-
report_id: REPORT-002
|
|
68
|
-
gaps: "Некорректная атрибуция root cause QA-001 (check-conditions.js вместо check-relevance.js); внутреннее противоречие между стейджами по статусу зависимостей требует расследования check-relevance.js."
|
|
69
|
-
---RESULT---
|