workflow-ai 1.1.0 → 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 -44
- package/src/lib/operations/tickets.mjs +305 -207
- 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 +144 -41
- package/src/scripts/move-ticket.js +225 -68
- package/src/scripts/pick-next-task.js +753 -93
- package/src/skills/coach/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -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 -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,151 +0,0 @@
|
|
|
1
|
-
# Парные задачи верификации
|
|
2
|
-
|
|
3
|
-
Каждая задача плана, которая изменяет код продукта, должна сопровождаться задачами верификации. Набор парных задач зависит от характера изменения.
|
|
4
|
-
|
|
5
|
-
## Правило
|
|
6
|
-
|
|
7
|
-
Если задача плана предполагает **изменение кода продукта** (исправление, доработка, новая функциональность), определи для неё необходимые задачи верификации:
|
|
8
|
-
|
|
9
|
-
1. **Актуализация автотестов** (обязательна всегда) — добавление или обновление unit/integration-тестов, покрывающих изменённое поведение
|
|
10
|
-
2. **Ручная проверка** (если изменение наблюдаемо пользователем) — тестировщик вручную проверяет исправление по шагам воспроизведения или acceptance criteria
|
|
11
|
-
|
|
12
|
-
## Определение набора парных задач
|
|
13
|
-
|
|
14
|
-
Для каждой задачи, изменяющей код, архитектор определяет какие верификационные задачи нужны, задавая два вопроса:
|
|
15
|
-
|
|
16
|
-
1. **Может ли пользователь заметить изменение?** (видимый эффект в UI, поведении, выводе) → если да, нужна **ручная проверка**
|
|
17
|
-
2. **Можно ли покрыть изменение автоматическим тестом?** (есть вход/выход, поведение формализуемо) → если да, нужна **актуализация автотестов**
|
|
18
|
-
|
|
19
|
-
| Ответы на вопросы | Автотесты | Ручная проверка |
|
|
20
|
-
|---|---|---|
|
|
21
|
-
| Пользователь заметит + можно покрыть тестом | Да | Да |
|
|
22
|
-
| Пользователь заметит + нельзя покрыть тестом (чисто визуальное) | Нет | Да |
|
|
23
|
-
| Пользователь не заметит + можно покрыть тестом | Да | Нет |
|
|
24
|
-
| Пользователь не заметит + нельзя покрыть тестом | Обосновать в плане, почему верификация не нужна |
|
|
25
|
-
|
|
26
|
-
Если не очевидно — включай обе задачи (лучше проверить лишний раз).
|
|
27
|
-
|
|
28
|
-
## Структура группы задач
|
|
29
|
-
|
|
30
|
-
```
|
|
31
|
-
# Полная группа (изменение с наблюдаемым эффектом):
|
|
32
|
-
Задача N: Изменение кода (исполнитель: agent)
|
|
33
|
-
Задача N+1: Ручная проверка задачи N (исполнитель: agent, зависимость: задача N)
|
|
34
|
-
Задача N+2: Актуализация автотестов для задачи N (исполнитель: agent, зависимость: задача N)
|
|
35
|
-
|
|
36
|
-
# Сокращённая группа (внутреннее изменение без UI-эффекта):
|
|
37
|
-
Задача N: Изменение кода (исполнитель: agent)
|
|
38
|
-
Задача N+1: Актуализация автотестов для задачи N (исполнитель: agent, зависимость: задача N)
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Когда применять
|
|
42
|
-
|
|
43
|
-
- **Применяется:** задача изменяет исходный код продукта (логику, UI, стили, конфигурацию продукта)
|
|
44
|
-
- **НЕ применяется:** задача изменяет только документацию, тестовые утилиты (mock, test helpers), workflow-артефакты, или является чисто исследовательской
|
|
45
|
-
|
|
46
|
-
## Исключения
|
|
47
|
-
|
|
48
|
-
Объединение ручных проверок нескольких задач в одну сводную задачу **по умолчанию запрещено**. Каждая задача изменения кода с наблюдаемым эффектом получает **свою** парную задачу ручной проверки рядом — не в конце плана.
|
|
49
|
-
|
|
50
|
-
**Когда сводная задача допустима** (все условия одновременно):
|
|
51
|
-
1. Объединяемые задачи изменяют **один и тот же UI-объект** (одна view, один компонент, один экран) — а не несколько независимых областей продукта
|
|
52
|
-
2. Каждая отдельная проверка тривиальна (1-2 шага) — иначе сводный сценарий распухает и теряет фокус
|
|
53
|
-
3. В плане **явно перечислены** ID объединяемых задач и обоснование, почему раздельная проверка избыточна
|
|
54
|
-
|
|
55
|
-
**Антипаттерн:** одна задача «Ручная проверка задач 1-7» в конце плана, охватывающая разные UI-области. Это не сводная проверка — это пропуск парных задач. Декомпозитор не сможет создать корректные парные тикеты, верификация теряет связь с исходной задачей, ревью затрудняется.
|
|
56
|
-
|
|
57
|
-
## Self-check перед сохранением плана
|
|
58
|
-
|
|
59
|
-
Перед записью файла плана пройди по списку задач и для **каждой** задачи, изменяющей код продукта с наблюдаемым эффектом, ответь:
|
|
60
|
-
|
|
61
|
-
1. Есть ли рядом с этой задачей парная задача ручной проверки именно для неё?
|
|
62
|
-
2. Если ручная проверка вынесена в сводную задачу — выполнены ли все три условия из секции «Исключения»?
|
|
63
|
-
3. Если не выполнены — разбей сводную задачу на парные и помести каждую рядом с её основной задачей.
|
|
64
|
-
|
|
65
|
-
Если задача изменения кода найдена без парной ручной проверки и без обоснованного исключения — план **не готов к сохранению**.
|
|
66
|
-
|
|
67
|
-
## Data assertions в QA-задачах
|
|
68
|
-
|
|
69
|
-
Каждый тест-кейс в QA-задаче плана должен содержать **ожидаемое значение**, а не только ожидаемое наличие элемента.
|
|
70
|
-
|
|
71
|
-
### Правило
|
|
72
|
-
|
|
73
|
-
Вместо «компонент X находится в состоянии Y» → «компонент X показывает конкретное значение `Z`».
|
|
74
|
-
|
|
75
|
-
### Критерий применения
|
|
76
|
-
|
|
77
|
-
Задай вопрос: **«Может ли значение измениться между запусками или зависит от входных данных?»**
|
|
78
|
-
|
|
79
|
-
| Ответ | Тип данных | Примеры | Нужен data assertion |
|
|
80
|
-
|-------|-----------|---------|----------------------|
|
|
81
|
-
| Да | Динамические: счётчики, имена, время, параметризованные статусы | «Прогресс: 3 из 5» | ✅ Да |
|
|
82
|
-
| Нет | Статические: иконки, фиксированные подписи, кнопки | «Кнопка «Открыть» видна» | ❌ Нет |
|
|
83
|
-
|
|
84
|
-
### Примеры переформулировки
|
|
85
|
-
|
|
86
|
-
| Слабое (только наличие) | Сильное (data assertion) |
|
|
87
|
-
|-------------------------|--------------------------|
|
|
88
|
-
| «Статус-строка показывает Running» | «Статус-строка показывает `Running \| <имя текущего шага>`» |
|
|
89
|
-
| «История содержит записи» | «История содержит N записей, каждая с временем > 0s» |
|
|
90
|
-
|
|
91
|
-
### Ограничения
|
|
92
|
-
|
|
93
|
-
- Не требуй data assertion для непредсказуемых значений (случайные ID, временны́е метки с миллисекундной точностью) — в таких случаях проверяй формат: «timestamp соответствует паттерну `ISO 8601`»
|
|
94
|
-
- Одна проверка значения на ключевой динамический элемент достаточна — не раздувай тест-кейс
|
|
95
|
-
|
|
96
|
-
<!-- РАСШИРЕНИЕ: добавляй уточнения и исключения ниже -->
|
|
97
|
-
|
|
98
|
-
## Entry points и config variations в QA-задачах
|
|
99
|
-
|
|
100
|
-
При создании QA-задачи для функции/команды необходимо перечислить ВСЕ способы её вызова и все конфигурации, влияющие на поведение.
|
|
101
|
-
|
|
102
|
-
### Правило
|
|
103
|
-
|
|
104
|
-
Для каждой тестируемой функции/команды выполни 4 шага:
|
|
105
|
-
|
|
106
|
-
1. **Определи все entry points** — изучи проектный манифест (конфиг, декларацию расширения/плагина) и код, чтобы найти ВСЕ точки входа (меню, сочетания клавиш, inline UI, контекстное меню, программный API). Каждый entry point — потенциально отдельный TC.
|
|
107
|
-
|
|
108
|
-
2. **Покрой каждый entry point TC-ом** — не ограничивайся «основным» способом запуска. Функция считается протестированной только если каждый задекларированный entry point проверен отдельно.
|
|
109
|
-
|
|
110
|
-
3. **Определи config variations** — найди все конфигурационные параметры, влияющие на поведение функции: допустимые значения, граничные значения, отсутствие опциональных параметров. Каждая значимая вариация — отдельный TC или параметризованный шаг.
|
|
111
|
-
|
|
112
|
-
4. **Добавь persistence TC для stateful-функций** — если функция сохраняет данные (история, кэш, настройки), включи TC: данные сохраняются после перезапуска приложения и корректно накапливаются при повторных запусках.
|
|
113
|
-
|
|
114
|
-
### Критерий применения
|
|
115
|
-
|
|
116
|
-
Задай вопрос: **«Может ли пользователь вызвать эту функцию более чем одним способом?»**
|
|
117
|
-
|
|
118
|
-
| Ответ | Действие |
|
|
119
|
-
|-------|----------|
|
|
120
|
-
| Да | Перечислить все entry points, добавить TC на каждый |
|
|
121
|
-
| Нет | Один TC на единственный entry point |
|
|
122
|
-
|
|
123
|
-
И: **«Зависит ли поведение от конфигурации или сохраняет ли функция данные между сессиями?»**
|
|
124
|
-
|
|
125
|
-
| Ответ | Действие |
|
|
126
|
-
|-------|----------|
|
|
127
|
-
| Да, конфиг влияет | TC для каждого значения/варианта, влияющего на поведение |
|
|
128
|
-
| Да, данные сохраняются | TC на persistence и накопление |
|
|
129
|
-
| Нет | Конфигурационные и persistence TC не нужны |
|
|
130
|
-
|
|
131
|
-
### Пример структуры анализа entry points (абстрактный)
|
|
132
|
-
|
|
133
|
-
```
|
|
134
|
-
Функция: «Запустить проверку»
|
|
135
|
-
|
|
136
|
-
Entry points (из манифеста и кода):
|
|
137
|
-
[ ] Главное меню → «App: Run Check»
|
|
138
|
-
[ ] Клавиатурное сочетание → Ctrl+Shift+R
|
|
139
|
-
[ ] Контекстное меню → правый клик → «Run Check»
|
|
140
|
-
[ ] Inline-кнопка → иконка ▶ в строке элемента
|
|
141
|
-
[ ] Программный API → app.runCheck()
|
|
142
|
-
|
|
143
|
-
Config variations:
|
|
144
|
-
[ ] mode = fast (по умолчанию)
|
|
145
|
-
[ ] mode = full
|
|
146
|
-
[ ] mode отсутствует (edge case)
|
|
147
|
-
|
|
148
|
-
Persistence (если stateful):
|
|
149
|
-
[ ] История запусков сохраняется после перезапуска
|
|
150
|
-
[ ] Накопление: N запусков → N записей в истории
|
|
151
|
-
```
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Изоляция тестов в плане
|
|
2
|
-
|
|
3
|
-
Когда план содержит задачи на создание/правку автотестов, в **описании** задачи и в её DoD должно быть зафиксировано требование: **тест не пишет артефакты (файлы, директории, конфиги, БД) в рабочий репозиторий или в общие системные пути**. Все файловые операции теста — во временной директории, создаваемой стандартной библиотекой языка.
|
|
4
|
-
|
|
5
|
-
## Зачем
|
|
6
|
-
|
|
7
|
-
Тесты, которые пишут в рабочий репозиторий:
|
|
8
|
-
- затирают файлы, нужные параллельно выполняющимся задачам/агентам проекта;
|
|
9
|
-
- оставляют "призрачный" state при прерывании (Ctrl+C, краш, таймаут) — следующий прогон подхватывает оставленные данные как настоящие и даёт ложный результат;
|
|
10
|
-
- делают тесты зависимыми от чистоты CWD — то же поведение на машине разработчика и в CI отличается;
|
|
11
|
-
- провоцируют ложные вердикты механических проверок, завязанных на mtime/наличие файлов (verify-artifacts, git-status-снапшоты);
|
|
12
|
-
- могут случайно коммититься в историю, если test-runner создал файл в tracked-директории.
|
|
13
|
-
|
|
14
|
-
## Критерий проверки для плана
|
|
15
|
-
|
|
16
|
-
Каждая задача, результат которой — тестовый файл или правка тестового файла, должна явно описывать **корень изоляции**. Варианты:
|
|
17
|
-
|
|
18
|
-
| Источник корня | Когда подходит |
|
|
19
|
-
|----------------|----------------|
|
|
20
|
-
| Стандартный системный tmp языка | Тест создаёт одноразовое окружение на прогон (самое частое) |
|
|
21
|
-
| Специально выделенная fixtures-директория теста | Неизменяемые шаблонные данные, read-only |
|
|
22
|
-
| Изолированный git-worktree | Тест проверяет поведение на полноценной копии репо |
|
|
23
|
-
| Иной способ изоляции | Явно обоснован в плане: почему перечисленных выше недостаточно |
|
|
24
|
-
|
|
25
|
-
Если задача не попадает ни в один вариант — план должен явно обосновать, почему этот тест имеет право писать в рабочий репозиторий (например, тест-генератор, который коммитится в репо как артефакт).
|
|
26
|
-
|
|
27
|
-
**Конкретное имя функции стандартной библиотеки — на стороне исполнителя**, не на стороне плана. План фиксирует требование, не реализацию.
|
|
28
|
-
|
|
29
|
-
## Что фиксировать в задаче плана
|
|
30
|
-
|
|
31
|
-
- **Корень изоляции** — один из вариантов из таблицы выше (или явно обоснованный иной).
|
|
32
|
-
- **Гарантия очистки** — тест обязан удалять созданный корень при любом исходе, включая падение assertion (teardown/after-hook, а не ad-hoc cleanup в конце test-функции).
|
|
33
|
-
- **Антипаттерн** — явный запрет на запись в реальные каталоги проекта (любые config-, data-, state-, cache-каталоги внутри корня репозитория).
|
|
34
|
-
|
|
35
|
-
## Что фиксировать в DoD
|
|
36
|
-
|
|
37
|
-
- Пункт DoD явно требует изолированный корень (формулировка вроде «тест создаёт и уничтожает tmp-корень, не пишет в рабочий репозиторий»).
|
|
38
|
-
- При наличии соседних тестовых файлов в модуле — пункт DoD требует сверки с уже принятым в проекте паттерном изоляции (не изобретать новый способ).
|
|
39
|
-
|
|
40
|
-
## Self-check при создании плана
|
|
41
|
-
|
|
42
|
-
Перед сохранением плана ответь себе по каждой задаче, результат которой связан с тестами:
|
|
43
|
-
1. Указан ли корень изоляции в описании задачи?
|
|
44
|
-
2. Зафиксирован ли teardown в DoD?
|
|
45
|
-
3. Есть ли в проекте уже принятый паттерн изоляции, и задача ссылается на него?
|
|
46
|
-
|
|
47
|
-
Если хотя бы на один вопрос "нет" — задача недооформлена.
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* validate-completeness.js — валидация полноты плана по чеклисту из plan-completeness.md
|
|
5
|
-
*
|
|
6
|
-
* Использование:
|
|
7
|
-
* node validate-completeness.js <path-to-plan>
|
|
8
|
-
*
|
|
9
|
-
* Проверяет:
|
|
10
|
-
* - Обязательные поля frontmatter (id, title, status, author, created_at)
|
|
11
|
-
* - Обязательные секции (# Цель, ## Контекст, ## Справочные данные, ## Scope, ## Высокоуровневые задачи, ## Риски, ## Критерии успеха)
|
|
12
|
-
* - Красные флаги (отсылки вместо содержания, пустые секции)
|
|
13
|
-
*
|
|
14
|
-
* Вывод: JSON {errors, warnings, valid} через ---RESULT---
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import fs from 'fs';
|
|
18
|
-
import path from 'path';
|
|
19
|
-
import { findProjectRoot } from 'workflow-ai/lib/find-root.mjs';
|
|
20
|
-
import { printResult } from 'workflow-ai/lib/utils.mjs';
|
|
21
|
-
|
|
22
|
-
const REQUIRED_FRONTMATTER_FIELDS = ['id', 'title', 'status', 'author', 'created_at'];
|
|
23
|
-
|
|
24
|
-
const REQUIRED_SECTIONS = [
|
|
25
|
-
'# Цель',
|
|
26
|
-
'## Контекст',
|
|
27
|
-
'## Справочные данные',
|
|
28
|
-
'## Scope',
|
|
29
|
-
'## Высокоуровневые задачи',
|
|
30
|
-
'## Риски',
|
|
31
|
-
'## Критерии успеха'
|
|
32
|
-
];
|
|
33
|
-
|
|
34
|
-
const RED_FLAG_PATTERNS = [
|
|
35
|
-
{ pattern: /см\.\s*ТЗ|по ссылке|см\.\s*документацию|описано в спецификации/gi, message: 'Отсылка к внешнему документу вместо содержания' },
|
|
36
|
-
{ pattern: /URL[а-яё]*\s*(уже создан|создан|получен)|credentials\s*(настроены|получены|готовы)/gi, message: 'Значение не указано (только упоминание)' },
|
|
37
|
-
{ pattern: /^#\s*.+\n\n+$/gm, message: 'Пустая секция (только заголовок без содержания)', isEmptySection: true }
|
|
38
|
-
];
|
|
39
|
-
|
|
40
|
-
function parseArgs() {
|
|
41
|
-
const args = process.argv.slice(2);
|
|
42
|
-
if (args.length === 0) {
|
|
43
|
-
console.error('Ошибка: не указан путь к файлу плана');
|
|
44
|
-
console.error('Использование: node validate-completeness.js <path-to-plan>');
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
return args[0];
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function parseFrontmatter(content) {
|
|
51
|
-
const fmMatch = content.match(/^---\n([\s\S]*?)\n---/);
|
|
52
|
-
if (!fmMatch) {
|
|
53
|
-
return { raw: null, data: null };
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
const fmContent = fmMatch[1];
|
|
57
|
-
const data = {};
|
|
58
|
-
|
|
59
|
-
const lines = fmContent.split('\n');
|
|
60
|
-
for (const line of lines) {
|
|
61
|
-
const colonIdx = line.indexOf(':');
|
|
62
|
-
if (colonIdx === -1) continue;
|
|
63
|
-
|
|
64
|
-
const key = line.slice(0, colonIdx).trim();
|
|
65
|
-
let value = line.slice(colonIdx + 1).trim();
|
|
66
|
-
|
|
67
|
-
if (value.startsWith('"') && value.endsWith('"')) {
|
|
68
|
-
value = value.slice(1, -1);
|
|
69
|
-
} else if (value.startsWith("'") && value.endsWith("'")) {
|
|
70
|
-
value = value.slice(1, -1);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
data[key] = value;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
return { raw: fmMatch[0], data };
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
function checkFrontmatter(fm) {
|
|
80
|
-
const errors = [];
|
|
81
|
-
|
|
82
|
-
if (!fm || !fm.data) {
|
|
83
|
-
errors.push({ field: 'frontmatter', message: 'Frontmatter отсутствует' });
|
|
84
|
-
return errors;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
for (const field of REQUIRED_FRONTMATTER_FIELDS) {
|
|
88
|
-
if (!fm.data[field]) {
|
|
89
|
-
errors.push({ field, message: `Обязательное поле "${field}" отсутствует` });
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
return errors;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
function checkSections(content) {
|
|
97
|
-
const errors = [];
|
|
98
|
-
const lines = content.split('\n');
|
|
99
|
-
|
|
100
|
-
for (const section of REQUIRED_SECTIONS) {
|
|
101
|
-
const sectionPattern = section.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
102
|
-
const regex = new RegExp(sectionPattern, 'i');
|
|
103
|
-
|
|
104
|
-
if (!regex.test(content)) {
|
|
105
|
-
errors.push({ section, message: `Секция "${section}" отсутствует` });
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
return errors;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
function checkRedFlags(content) {
|
|
113
|
-
const warnings = [];
|
|
114
|
-
const lines = content.split('\n');
|
|
115
|
-
|
|
116
|
-
for (const { pattern, message, isEmptySection } of RED_FLAG_PATTERNS) {
|
|
117
|
-
if (isEmptySection) {
|
|
118
|
-
const matches = content.match(/^#+\s+.+$/gm);
|
|
119
|
-
if (matches) {
|
|
120
|
-
for (const heading of matches) {
|
|
121
|
-
const headingLineNum = content.split('\n').findIndex(l => l.trim() === heading.trim());
|
|
122
|
-
if (headingLineNum !== -1) {
|
|
123
|
-
const nextLine = lines[headingLineNum + 1];
|
|
124
|
-
if (!nextLine || !nextLine.trim()) {
|
|
125
|
-
warnings.push({ pattern: heading, message: `Пустая секция: ${heading}` });
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
} else {
|
|
131
|
-
const matches = content.match(pattern);
|
|
132
|
-
if (matches) {
|
|
133
|
-
for (const match of matches) {
|
|
134
|
-
warnings.push({ pattern: match.slice(0, 50), message });
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
return warnings;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
function validatePlan(planPath) {
|
|
144
|
-
const errors = [];
|
|
145
|
-
const warnings = [];
|
|
146
|
-
|
|
147
|
-
if (!fs.existsSync(planPath)) {
|
|
148
|
-
errors.push({ file: planPath, message: 'Файл не существует' });
|
|
149
|
-
return { errors, warnings, valid: false };
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
const content = fs.readFileSync(planPath, 'utf-8');
|
|
153
|
-
|
|
154
|
-
const fmErrors = checkFrontmatter(parseFrontmatter(content));
|
|
155
|
-
errors.push(...fmErrors);
|
|
156
|
-
|
|
157
|
-
const sectionErrors = checkSections(content);
|
|
158
|
-
errors.push(...sectionErrors);
|
|
159
|
-
|
|
160
|
-
const redFlagWarnings = checkRedFlags(content);
|
|
161
|
-
warnings.push(...redFlagWarnings);
|
|
162
|
-
|
|
163
|
-
const valid = errors.length === 0;
|
|
164
|
-
|
|
165
|
-
return { errors, warnings, valid };
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
function main() {
|
|
169
|
-
const planPath = parseArgs();
|
|
170
|
-
|
|
171
|
-
const absolutePath = path.isAbsolute(planPath)
|
|
172
|
-
? planPath
|
|
173
|
-
: path.resolve(process.cwd(), planPath);
|
|
174
|
-
|
|
175
|
-
const result = validatePlan(absolutePath);
|
|
176
|
-
|
|
177
|
-
console.log('---RESULT---');
|
|
178
|
-
console.log(JSON.stringify(result, null, 2));
|
|
179
|
-
console.log('---RESULT---');
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
main();
|
package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
`valid: true`, errors пусты. Предупреждения о "пустых секциях" — артефакт валидатора, который проверяет следующую строку после заголовка: в markdown принято оставлять пустую строку после `##`. Эти предупреждения некритичны (они есть в любом корректно отформатированном Markdown-файле).
|
|
2
|
-
|
|
3
|
-
Финальный план сохранён:
|
|
4
|
-
|
|
5
|
-
`.workflow/plans/current/PLAN-001.md`
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## PLAN-001: Добавить тёмную тему в приложение
|
|
10
|
-
|
|
11
|
-
**Статус:** `draft`
|
|
12
|
-
|
|
13
|
-
### Что сделано
|
|
14
|
-
|
|
15
|
-
**Цель (SMART):** реализовать переключение light/dark-темы с сохранением выбора в `localStorage` без перезагрузки страницы, подтверждённое ручной проверкой и автотестами.
|
|
16
|
-
|
|
17
|
-
**Справочные данные зафиксированы:** ключ localStorage — `app-theme`, атрибут — `data-theme`, дефолт — `light`, файл токенов — `src/styles/tokens.css`.
|
|
18
|
-
|
|
19
|
-
**13 задач** с парными задачами верификации:
|
|
20
|
-
|
|
21
|
-
| Задача | Тип |
|
|
22
|
-
|--------|-----|
|
|
23
|
-
| 1. Аудировать цветовую схему | Исследование |
|
|
24
|
-
| 2. Создать CSS-токены light/dark | Реализация |
|
|
25
|
-
| 2.1. Ручная проверка токенов | Верификация |
|
|
26
|
-
| 3. Заменить хардкод-цвета на CSS-переменные | Реализация |
|
|
27
|
-
| 3.1. Ручная проверка регрессии светлой темы | Верификация |
|
|
28
|
-
| 3.2. Актуализировать автотесты | Верификация |
|
|
29
|
-
| 4. Создать компонент ThemeToggle | Реализация |
|
|
30
|
-
| 4.1. Ручная проверка переключателя | Верификация |
|
|
31
|
-
| 4.2. Автотесты ThemeToggle | Верификация |
|
|
32
|
-
| 5. Логика переключения + localStorage | Реализация |
|
|
33
|
-
| 5.1–5.2. Ручная проверка + автотесты | Верификация |
|
|
34
|
-
| 6. Инициализация темы при старте | Реализация |
|
|
35
|
-
| 6.1–6.2. Ручная проверка + автотесты | Верификация |
|
|
36
|
-
| 7. Совместимость иконок/изображений | Реализация |
|
|
37
|
-
| 7.1. Ручная проверка иконок | Верификация |
|
|
38
|
-
|
|
39
|
-
**4 риска** оценены по матрице (MEDIUM×2, HIGH×1, MEDIUM×1) с митигацией.
|
package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
Валидация прошла: `valid: true`. Предупреждения о "пустых секциях" — ложные срабатывания скрипта (он проверяет только следующую строку после заголовка, а стандартный Markdown предполагает пустую строку между заголовком и контентом). Все секции плана содержат содержательный текст.
|
|
2
|
-
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
План создан: **`.workflow/plans/current/PLAN-001.md`**
|
|
6
|
-
|
|
7
|
-
## Что сделано
|
|
8
|
-
|
|
9
|
-
**SMART-цель:** к 2026-04-27 пользователь может переключать light/dark тему через кнопку в Header, выбор сохраняется между сессиями, все основные компоненты корректно стилизованы.
|
|
10
|
-
|
|
11
|
-
**Справочные данные** содержат:
|
|
12
|
-
- Полные CSS design tokens (14 переменных для обеих тем)
|
|
13
|
-
- localStorage-схему (ключ `theme`, допустимые значения)
|
|
14
|
-
- Алгоритм инициализации с fallback на `prefers-color-scheme`
|
|
15
|
-
- Таблицу иконок и aria-label для ThemeToggle
|
|
16
|
-
|
|
17
|
-
**15 задач** — атомарные, одно действие на задачу:
|
|
18
|
-
|
|
19
|
-
| Задачи | Тип |
|
|
20
|
-
|--------|-----|
|
|
21
|
-
| 1 | Аудит хардкодных цветов (исследование) |
|
|
22
|
-
| 2 | CSS custom properties → global.css |
|
|
23
|
-
| 3–4 | Ручная проверка + автотесты для задачи 2 |
|
|
24
|
-
| 5 | ThemeContext с `data-theme` на `<html>` |
|
|
25
|
-
| 6–7 | Ручная проверка + автотесты для задачи 5 |
|
|
26
|
-
| 8 | Сохранение темы в localStorage |
|
|
27
|
-
| 9–10 | Ручная проверка + автотесты для задачи 8 |
|
|
28
|
-
| 11 | Компонент ThemeToggle |
|
|
29
|
-
| 12 | Интеграция ThemeToggle в Header |
|
|
30
|
-
| 13 | Сводная ручная проверка задач 11+12 |
|
|
31
|
-
| 14–15 | Автотесты для задач 11 и 12 |
|
|
32
|
-
|
|
33
|
-
**5 рисков** с митигацией (2× HIGH: хардкодные цвета и CSS-in-JS стек).
|
|
34
|
-
|
|
35
|
-
**Статус:** `draft` — ожидает утверждения стейкхолдером.
|
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"per_model": {
|
|
3
|
-
"claude-sonnet": {
|
|
4
|
-
"pass_count": 0,
|
|
5
|
-
"total": 3,
|
|
6
|
-
"trials": [
|
|
7
|
-
{
|
|
8
|
-
"trial": 1,
|
|
9
|
-
"score": null,
|
|
10
|
-
"passed": false
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"trial": 2,
|
|
14
|
-
"score": 2,
|
|
15
|
-
"passed": false
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"trial": 3,
|
|
19
|
-
"score": 3,
|
|
20
|
-
"passed": false
|
|
21
|
-
}
|
|
22
|
-
]
|
|
23
|
-
},
|
|
24
|
-
"kilo-glm": {
|
|
25
|
-
"pass_count": 2,
|
|
26
|
-
"total": 3,
|
|
27
|
-
"trials": [
|
|
28
|
-
{
|
|
29
|
-
"trial": 1,
|
|
30
|
-
"score": 4,
|
|
31
|
-
"passed": true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"trial": 2,
|
|
35
|
-
"score": 5,
|
|
36
|
-
"passed": true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
"trial": 3,
|
|
40
|
-
"score": null,
|
|
41
|
-
"passed": false
|
|
42
|
-
}
|
|
43
|
-
]
|
|
44
|
-
},
|
|
45
|
-
"kilo-minimax": {
|
|
46
|
-
"pass_count": 0,
|
|
47
|
-
"total": 3,
|
|
48
|
-
"trials": [
|
|
49
|
-
{
|
|
50
|
-
"trial": 1,
|
|
51
|
-
"score": 2,
|
|
52
|
-
"passed": false
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"trial": 2,
|
|
56
|
-
"score": 3,
|
|
57
|
-
"passed": false
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"trial": 3,
|
|
61
|
-
"score": 3,
|
|
62
|
-
"passed": false
|
|
63
|
-
}
|
|
64
|
-
]
|
|
65
|
-
},
|
|
66
|
-
"kilo-deepseek": {
|
|
67
|
-
"pass_count": 0,
|
|
68
|
-
"total": 3,
|
|
69
|
-
"trials": [
|
|
70
|
-
{
|
|
71
|
-
"trial": 1,
|
|
72
|
-
"score": null,
|
|
73
|
-
"passed": false
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"trial": 2,
|
|
77
|
-
"score": 2,
|
|
78
|
-
"passed": false
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"trial": 3,
|
|
82
|
-
"score": null,
|
|
83
|
-
"passed": false
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"rubric_scores": [
|
|
89
|
-
{
|
|
90
|
-
"agentId": "claude-sonnet",
|
|
91
|
-
"trial": 1,
|
|
92
|
-
"score": null,
|
|
93
|
-
"errored": true,
|
|
94
|
-
"error": "Stage \"TC-CREATE-PLAN-001-claude-sonnet-trial-1\" timed out after 1200s"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"agentId": "claude-sonnet",
|
|
98
|
-
"trial": 2,
|
|
99
|
-
"score": 2,
|
|
100
|
-
"errored": false
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
"agentId": "claude-sonnet",
|
|
104
|
-
"trial": 3,
|
|
105
|
-
"score": 3,
|
|
106
|
-
"errored": false
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
"agentId": "kilo-deepseek",
|
|
110
|
-
"trial": 1,
|
|
111
|
-
"score": null,
|
|
112
|
-
"errored": true,
|
|
113
|
-
"error": "Stage \"TC-CREATE-PLAN-001-kilo-deepseek-trial-1\" timed out after 1200s"
|
|
114
|
-
},
|
|
115
|
-
{
|
|
116
|
-
"agentId": "kilo-deepseek",
|
|
117
|
-
"trial": 2,
|
|
118
|
-
"score": 2,
|
|
119
|
-
"errored": false
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"agentId": "kilo-deepseek",
|
|
123
|
-
"trial": 3,
|
|
124
|
-
"score": null,
|
|
125
|
-
"errored": true,
|
|
126
|
-
"error": "Stage \"TC-CREATE-PLAN-001-kilo-deepseek-trial-3\" timed out after 1200s"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"agentId": "kilo-glm",
|
|
130
|
-
"trial": 1,
|
|
131
|
-
"score": 4,
|
|
132
|
-
"errored": false
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"agentId": "kilo-glm",
|
|
136
|
-
"trial": 2,
|
|
137
|
-
"score": 5,
|
|
138
|
-
"errored": false
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
"agentId": "kilo-glm",
|
|
142
|
-
"trial": 3,
|
|
143
|
-
"score": null,
|
|
144
|
-
"errored": true,
|
|
145
|
-
"error": "Stage \"TC-CREATE-PLAN-001-kilo-glm-trial-3\" timed out after 1200s"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"agentId": "kilo-minimax",
|
|
149
|
-
"trial": 1,
|
|
150
|
-
"score": 2,
|
|
151
|
-
"errored": false
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
"agentId": "kilo-minimax",
|
|
155
|
-
"trial": 2,
|
|
156
|
-
"score": 3,
|
|
157
|
-
"errored": false
|
|
158
|
-
},
|
|
159
|
-
{
|
|
160
|
-
"agentId": "kilo-minimax",
|
|
161
|
-
"trial": 3,
|
|
162
|
-
"score": 3,
|
|
163
|
-
"errored": false
|
|
164
|
-
}
|
|
165
|
-
],
|
|
166
|
-
"timestamp": "2026-04-20T12:04:59.082Z"
|
|
167
|
-
}
|
package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
План создан и сохранён в `.workflow/plans/current/PLAN-001.md`.
|
|
2
|
-
|
|
3
|
-
**Ключевые элементы плана:**
|
|
4
|
-
- Цель: реализация тёмной темы с переключением без перезагрузки
|
|
5
|
-
- Справочные данные: цветовые палитры для светлой и тёмной тем
|
|
6
|
-
- Scope: включено переключение темы, обновление стилей, сохранение в localStorage; исключена системная тема и кастомизация
|
|
7
|
-
- 10 задач с парной верификацией (ручные проверки и автотесты для каждой задачи изменения кода)
|
|
8
|
-
- Риски и митигация, критерии успеха
|
|
9
|
-
|
|
10
|
-
План имеет статус `draft` и готов к утверждению стейкхолдером перед декомпозицией.
|