workflow-ai 1.1.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +61 -0
- package/README.md +37 -377
- package/configs/pipeline.yaml +113 -4
- package/package.json +54 -44
- package/src/lib/operations/tickets.mjs +305 -207
- package/src/lib/utils.mjs +286 -286
- package/src/runner.mjs +316 -35
- package/src/scripts/check-conditions.js +2 -2
- package/src/scripts/check-relevance.js +3 -1
- package/src/scripts/get-next-id.js +144 -41
- package/src/scripts/mark-blocked.js +160 -0
- package/src/scripts/move-ticket.js +305 -83
- package/src/scripts/pick-next-task.js +782 -93
- package/src/skills/__test-cal-001-1777553217513/SKILL.md +2 -0
- package/src/skills/__test-runner-1777553217483/SKILL.md +5 -0
- package/src/skills/coach/SKILL.md +2 -2
- package/src/skills/execute-task/SKILL.md +1 -1
- package/src/skills/manual-testing/SKILL.md +2 -0
- package/src/skills/review-result/SKILL.md +23 -1
- package/src/scripts/tests/timeout-cascade.test.js +0 -28
- package/src/skills/analyze-report/README.md +0 -44
- package/src/skills/analyze-report/algorithms/progress-assessment.md +0 -108
- package/src/skills/analyze-report/knowledge/analysis-frameworks.md +0 -66
- package/src/skills/analyze-report/knowledge/report-structure.md +0 -61
- package/src/skills/analyze-report/scripts/calc-plan-metrics.js +0 -234
- package/src/skills/analyze-report/templates/analysis-report.md +0 -80
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +0 -98
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +0 -99
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -88
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -100
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +0 -64
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +0 -110
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +0 -74
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +0 -38
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +0 -61
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +0 -60
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +0 -90
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +0 -5
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +0 -163
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +0 -84
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +0 -77
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +0 -89
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +0 -103
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +0 -93
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +0 -86
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +0 -115
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +0 -44
- package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +0 -27
- package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +0 -32
- package/src/skills/analyze-report/tests/index.yaml +0 -25
- package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +0 -22
- package/src/skills/analyze-report/tests/rubrics/result-block-format.md +0 -22
- package/src/skills/analyze-report/workflows/progress.md +0 -158
- package/src/skills/analyze-report/workflows/retrospective.md +0 -143
- package/src/skills/coach/README.md +0 -43
- package/src/skills/coach/SKILL.md.legacy +0 -157
- package/src/skills/coach/algorithms/gap-analysis.md +0 -69
- package/src/skills/coach/algorithms/improvement-prioritization.md +0 -62
- package/src/skills/coach/algorithms/skill-scoring.md +0 -80
- package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +0 -11
- package/src/skills/coach/knowledge/backlog-management.md +0 -67
- package/src/skills/coach/knowledge/backlog-management.md.legacy +0 -90
- package/src/skills/coach/knowledge/common-antipatterns.md +0 -76
- package/src/skills/coach/knowledge/prompt-engineering.md +0 -45
- package/src/skills/coach/knowledge/shared-knowledge-guide.md +0 -44
- package/src/skills/coach/knowledge/skill-anatomy.md +0 -49
- package/src/skills/coach/knowledge/test-authorship.md +0 -141
- package/src/skills/coach/templates/audit-report.md +0 -39
- package/src/skills/coach/templates/coach-backlog-init.yaml +0 -14
- package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +0 -10
- package/src/skills/coach/templates/improvement-plan.md +0 -42
- package/src/skills/coach/templates/new-skill.md +0 -95
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +0 -65
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +0 -58
- package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-3.md +0 -75
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +0 -81
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +0 -101
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +0 -91
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +0 -55
- package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +0 -53
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +0 -46
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +0 -50
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +0 -48
- package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +0 -151
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-2.md +0 -37
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +0 -30
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +0 -23
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +0 -29
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +0 -13
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +0 -19
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +0 -33
- package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +0 -94
- package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +0 -57
- package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +0 -77
- package/src/skills/coach/tests/index.yaml +0 -29
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +0 -13
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +0 -29
- package/src/skills/coach/tests/rubrics/evidence-based.md +0 -26
- package/src/skills/coach/tests/rubrics/root-cause-first.md +0 -21
- package/src/skills/coach/workflows/analyze.md +0 -79
- package/src/skills/coach/workflows/analyze.md.legacy +0 -64
- package/src/skills/coach/workflows/audit.md +0 -74
- package/src/skills/coach/workflows/audit.md.legacy +0 -59
- package/src/skills/coach/workflows/create.md +0 -80
- package/src/skills/coach/workflows/create.md.legacy +0 -67
- package/src/skills/coach/workflows/improve.md +0 -71
- package/src/skills/coach/workflows/improve.md.legacy +0 -60
- package/src/skills/coach/workflows/research.md +0 -55
- package/src/skills/coach/workflows/review.md +0 -52
- package/src/skills/coach/workflows/review.md.legacy +0 -48
- package/src/skills/coach/workflows/test.md +0 -97
- package/src/skills/create-plan/README.md +0 -39
- package/src/skills/create-plan/algorithms/risk-assessment.md +0 -73
- package/src/skills/create-plan/knowledge/plan-completeness.md +0 -67
- package/src/skills/create-plan/knowledge/plan-lifecycle.md +0 -33
- package/src/skills/create-plan/knowledge/task-verification-pairs.md +0 -151
- package/src/skills/create-plan/knowledge/test-hygiene.md +0 -47
- package/src/skills/create-plan/scripts/validate-completeness.js +0 -182
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +0 -39
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +0 -35
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +0 -167
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -10
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +0 -26
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +0 -86
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +0 -119
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +0 -41
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +0 -164
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -3
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -13
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +0 -44
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +0 -49
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +0 -6
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +0 -11
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +0 -16
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +0 -116
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +0 -39
- package/src/skills/create-plan/tests/index.yaml +0 -25
- package/src/skills/create-plan/tests/rubrics/task-granularity.md +0 -21
- package/src/skills/create-plan/tests/rubrics/validate-completeness.md +0 -21
- package/src/skills/create-plan/workflows/create.md +0 -136
- package/src/skills/create-report/README.md +0 -40
- package/src/skills/create-report/algorithms/metric-calculation.md +0 -93
- package/src/skills/create-report/knowledge/report-metrics.md +0 -82
- package/src/skills/create-report/scripts/calc-metrics.js +0 -383
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +0 -25
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +0 -26
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +0 -28
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +0 -163
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +0 -3
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +0 -8
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +0 -7
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +0 -12
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +0 -22
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +0 -13
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +0 -115
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +0 -57
- package/src/skills/create-report/tests/index.yaml +0 -20
- package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +0 -21
- package/src/skills/create-report/workflows/standard.md +0 -175
- package/src/skills/decompose-gaps/README.md +0 -39
- package/src/skills/decompose-gaps/algorithms/scope-check.md +0 -110
- package/src/skills/decompose-gaps/knowledge/scope-validation.md +0 -65
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +0 -41
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +0 -56
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +0 -164
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +0 -22
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +0 -25
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +0 -29
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +0 -35
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +0 -18
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +0 -116
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +0 -46
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +0 -163
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +0 -21
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +0 -38
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +0 -16
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +0 -10
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +0 -9
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +0 -115
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +0 -36
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +0 -165
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +0 -5
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +0 -37
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +0 -45
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +0 -26
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +0 -27
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +0 -117
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +0 -41
- package/src/skills/decompose-gaps/tests/index.yaml +0 -30
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +0 -21
- package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +0 -22
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +0 -21
- package/src/skills/decompose-gaps/workflows/decompose.md +0 -123
- package/src/skills/decompose-plan/README.md +0 -43
- package/src/skills/decompose-plan/algorithms/deduplication.md +0 -101
- package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +0 -139
- package/src/skills/decompose-plan/knowledge/capabilities.md +0 -68
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +0 -82
- package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +0 -73
- package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +0 -47
- package/src/skills/decompose-plan/scripts/check-duplicates.js +0 -323
- package/src/skills/decompose-plan/scripts/verify-atomicity.js +0 -408
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +0 -37
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +0 -20
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +0 -28
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +0 -137
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +0 -188
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-2.md +0 -32
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +0 -110
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +0 -56
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +0 -47
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +0 -43
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +0 -15
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +0 -12
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +0 -34
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +0 -44
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +0 -21
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +0 -38
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +0 -31
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +0 -35
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +0 -48
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +0 -167
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +0 -62
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +0 -174
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-2.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +0 -55
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +0 -49
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +0 -104
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +0 -45
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +0 -58
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +0 -193
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +0 -202
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +0 -155
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +0 -52
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +0 -17
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +0 -64
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +0 -59
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +0 -204
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +0 -213
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-2.md +0 -57
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +0 -54
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +0 -147
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +0 -165
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +0 -133
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +0 -81
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +0 -108
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +0 -3
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +0 -114
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +0 -78
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +0 -225
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +0 -66
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +0 -36
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +0 -163
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +0 -42
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +0 -67
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +0 -40
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +0 -122
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +0 -131
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +0 -138
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +0 -41
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +0 -88
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-3.md +0 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/meta.json +0 -115
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +0 -72
- package/src/skills/decompose-plan/tests/index.yaml +0 -45
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +0 -21
- package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +0 -21
- package/src/skills/decompose-plan/workflows/decompose.md +0 -305
- package/src/skills/deep-research/README.md +0 -36
- package/src/skills/deep-research/algorithms/source-scoring.md +0 -63
- package/src/skills/deep-research/algorithms/synthesis.md +0 -67
- package/src/skills/deep-research/knowledge/data-validation.md +0 -44
- package/src/skills/deep-research/knowledge/perplexity-config.md +0 -30
- package/src/skills/deep-research/knowledge/research-methodology.md +0 -54
- package/src/skills/deep-research/knowledge/source-evaluation.md +0 -33
- package/src/skills/deep-research/scripts/perplexity-research.js +0 -315
- package/src/skills/deep-research/templates/brief-summary.md +0 -25
- package/src/skills/deep-research/templates/research-report.md +0 -76
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +0 -48
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +0 -88
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +0 -163
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +0 -58
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +0 -249
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +0 -44
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +0 -96
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +0 -56
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +0 -94
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +0 -1
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +0 -115
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +0 -58
- package/src/skills/deep-research/tests/index.yaml +0 -20
- package/src/skills/deep-research/tests/rubrics/self-check-url.md +0 -34
- package/src/skills/deep-research/workflows/base-checklist.md +0 -19
- package/src/skills/deep-research/workflows/benchmark.md +0 -38
- package/src/skills/deep-research/workflows/competitor.md +0 -44
- package/src/skills/deep-research/workflows/custom.md +0 -32
- package/src/skills/deep-research/workflows/market.md +0 -44
- package/src/skills/deep-research/workflows/technology.md +0 -40
- package/src/skills/deep-research/workflows/trend.md +0 -40
- package/src/skills/execute-task/README.md +0 -44
- package/src/skills/execute-task/algorithms/execution-strategy.md +0 -136
- package/src/skills/execute-task/knowledge/context-checkpoints.md +0 -75
- package/src/skills/execute-task/knowledge/ticket-structure.md +0 -70
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +0 -48
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +0 -6
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +0 -9
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +0 -26
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +0 -44
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +0 -37
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +0 -46
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +0 -18
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +0 -16
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +0 -14
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +0 -1
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +0 -8
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +0 -89
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +0 -50
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +0 -124
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +0 -15
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +0 -5
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +0 -11
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +0 -4
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +0 -88
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +0 -39
- package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +0 -41
- package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +0 -40
- package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +0 -42
- package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +0 -41
- package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +0 -40
- package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +0 -36
- package/src/skills/execute-task/tests/index.yaml +0 -39
- package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +0 -22
- package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +0 -20
- package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +0 -21
- package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +0 -23
- package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +0 -22
- package/src/skills/execute-task/workflows/execute.md +0 -104
- package/src/skills/manual-testing/README.md +0 -63
- package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +0 -74
- package/src/skills/manual-testing/algorithms/bug-severity.md +0 -73
- package/src/skills/manual-testing/algorithms/mcp-budget.md +0 -97
- package/src/skills/manual-testing/algorithms/test-prioritization.md +0 -69
- package/src/skills/manual-testing/knowledge/browser-extension-testing.md +0 -102
- package/src/skills/manual-testing/knowledge/browser-tools.md +0 -114
- package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +0 -92
- package/src/skills/manual-testing/knowledge/desktop-tools-core.md +0 -76
- package/src/skills/manual-testing/knowledge/sandbox-advanced.md +0 -83
- package/src/skills/manual-testing/knowledge/sandbox-core.md +0 -67
- package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +0 -69
- package/src/skills/manual-testing/knowledge/test-case-design.md +0 -107
- package/src/skills/manual-testing/knowledge/testing-types.md +0 -45
- package/src/skills/manual-testing/templates/bug-report.md +0 -52
- package/src/skills/manual-testing/templates/test-case.md +0 -34
- package/src/skills/manual-testing/templates/test-plan.md +0 -97
- package/src/skills/manual-testing/templates/test-session-report.md +0 -56
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +0 -34
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +0 -30
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-1.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-deepseek/trial-3.md +0 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-1.md +0 -4
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +0 -8
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +0 -5
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +0 -7
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +0 -38
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +0 -44
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +0 -32
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +0 -47
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +0 -163
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +0 -24
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +0 -19
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +0 -13
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +0 -18
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +0 -21
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +0 -15
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +0 -14
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +0 -114
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +0 -37
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +0 -76
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +0 -71
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +0 -85
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +0 -46
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +0 -36
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +0 -65
- package/src/skills/manual-testing/tests/index.yaml +0 -30
- package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +0 -140
- package/src/skills/manual-testing/tests/last-run-tc002.log +0 -1
- package/src/skills/manual-testing/tests/last-run.log +0 -1469
- package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +0 -31
- package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +0 -20
- package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +0 -21
- package/src/skills/manual-testing/workflows/acceptance.md +0 -80
- package/src/skills/manual-testing/workflows/exploratory.md +0 -84
- package/src/skills/manual-testing/workflows/regression.md +0 -76
- package/src/skills/manual-testing/workflows/smoke.md +0 -109
- package/src/skills/manual-testing/workflows/test-plan.md +0 -75
- package/src/skills/review-result/README.md +0 -59
- package/src/skills/review-result/algorithms/verification.md +0 -112
- package/src/skills/review-result/knowledge/baseline-snapshot-validation.md +0 -67
- package/src/skills/review-result/knowledge/dod-patterns.md +0 -116
- package/src/skills/review-result/knowledge/test-hygiene.md +0 -44
- package/src/skills/review-result/scripts/verify-artifacts.js +0 -497
- package/src/skills/review-result/templates/verdict.md +0 -153
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +0 -164
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +0 -49
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +0 -13
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +0 -21
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +0 -116
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +0 -51
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +0 -22
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +0 -28
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-2.md +0 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-3.md +0 -4
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +0 -25
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +0 -32
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +0 -34
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +0 -8
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +0 -23
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +0 -39
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-1.md +0 -40
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-2.md +0 -15
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/claude-sonnet/trial-3.md +0 -7
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/judge.json +0 -163
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-deepseek/trial-3.md +0 -11
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-1.md +0 -16
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-2.md +0 -18
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-glm/trial-3.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-1.md +0 -17
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-2.md +0 -31
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/kilo-minimax/trial-3.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003/current/meta.json +0 -115
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-003-test-isolation.yaml +0 -50
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-1.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-2.md +0 -5
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/claude-sonnet/trial-3.md +0 -6
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/judge.json +0 -46
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004/current/meta.json +0 -37
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-004-baseline-snapshot.yaml +0 -50
- package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +0 -43
- package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +0 -46
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/QA-904.md +0 -51
- package/src/skills/review-result/tests/fixtures/QA-904-test-isolation-violation/example-test.mjs +0 -36
- package/src/skills/review-result/tests/fixtures/QA-905-baseline-regex-instead-of-snapshot/QA-905.md +0 -62
- package/src/skills/review-result/tests/fixtures/QA-905-baseline-regex-instead-of-snapshot/baseline.test.mjs +0 -124
- package/src/skills/review-result/tests/index.yaml +0 -35
- package/src/skills/review-result/tests/rubrics/baseline-snapshot.md +0 -20
- package/src/skills/review-result/tests/rubrics/path-line-suffix.md +0 -19
- package/src/skills/review-result/tests/rubrics/test-isolation.md +0 -20
- package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +0 -19
- package/src/skills/review-result/workflows/review.md +0 -209
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
# Алгоритм верификации результата
|
|
2
|
-
|
|
3
|
-
Формализованный метод проверки что результат выполнения тикета реален, а не является галлюцинацией агента.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- Тикет с заполненной секцией «Результат выполнения»
|
|
8
|
-
- Список файлов из секции «Изменённые файлы»
|
|
9
|
-
- Чеклист DoD с отметками `[x]`
|
|
10
|
-
|
|
11
|
-
## Выход
|
|
12
|
-
|
|
13
|
-
- `verified` — все артефакты реальны и соответствуют заявленному
|
|
14
|
-
- `not_verified` — обнаружены расхождения + список проблем
|
|
15
|
-
|
|
16
|
-
## Алгоритм
|
|
17
|
-
|
|
18
|
-
### Шаг 1: Проверка существования файлов
|
|
19
|
-
|
|
20
|
-
```
|
|
21
|
-
ДЛЯ КАЖДОГО файла из «Изменённые файлы»:
|
|
22
|
-
1. Выполни Read(файл) или Glob(паттерн)
|
|
23
|
-
2. ЕСЛИ файл не найден через Read/Glob →
|
|
24
|
-
FALLBACK: выполни Bash("ls -la {путь}") для подтверждения
|
|
25
|
-
(Glob может не видеть файлы в новых untracked директориях)
|
|
26
|
-
3. ЕСЛИ файл не найден И через fallback → добавь в issues: "Файл {путь} не существует"
|
|
27
|
-
4. ЕСЛИ файл найден любым способом → перейди к шагу 2
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
> **⚠️ Почему fallback:** Glob/Read могут не находить файлы в новых директориях,
|
|
31
|
-
> которые ещё не добавлены в git index. Bash(`ls`) работает напрямую с файловой
|
|
32
|
-
> системой и всегда видит реальные файлы. Без fallback ревьюер ложно репортит
|
|
33
|
-
> отсутствие файлов, которые были корректно созданы исполнителем.
|
|
34
|
-
|
|
35
|
-
### Шаг 2: Проверка содержимого
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
ДЛЯ КАЖДОГО найденного файла:
|
|
39
|
-
1. Открой файл через Read
|
|
40
|
-
2. Проверь:
|
|
41
|
-
a. Файл НЕ пустой (> 0 строк содержательного контента)
|
|
42
|
-
b. Файл НЕ содержит только шаблонные плейсхолдеры
|
|
43
|
-
c. Контент соответствует типу файла (код = код, документ = текст)
|
|
44
|
-
3. ЕСЛИ файл пуст или placeholder → добавь в issues: "Файл {путь} — пустой/placeholder"
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### Шаг 3: Проверка Summary
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
1. Найди секцию «Результат выполнения» → «Summary»
|
|
51
|
-
2. ЕСЛИ Summary пуст или содержит заглушку ("TODO", "...", "Заполнить") → issues
|
|
52
|
-
3. ЕСЛИ Summary < 10 слов → предупреждение (может быть слишком кратким)
|
|
53
|
-
4. ЕСЛИ Summary содержательный → OK
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### Шаг 4: Кросс-валидация DoD ↔ Артефакты
|
|
57
|
-
|
|
58
|
-
```
|
|
59
|
-
ДЛЯ КАЖДОГО пункта DoD отмеченного [x]:
|
|
60
|
-
1. Определи артефакт, к которому относится пункт
|
|
61
|
-
2. Открой артефакт
|
|
62
|
-
3. Проверь что критерий ДЕЙСТВИТЕЛЬНО выполнен:
|
|
63
|
-
- "Файл создан" → файл существует и не пуст
|
|
64
|
-
- "Секция X добавлена" → секция присутствует в файле
|
|
65
|
-
- "Нет ссылок на Y" → поиск Y по файлу = 0 результатов
|
|
66
|
-
- "Тесты проходят" → запустить тесты (если возможно)
|
|
67
|
-
4. ЕСЛИ критерий НЕ выполнен → issues: "DoD '{критерий}' отмечен [x], но не подтверждён"
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Шаг 5: Формирование результата
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
ЕСЛИ issues пуст:
|
|
74
|
-
→ verified
|
|
75
|
-
ИНАЧЕ:
|
|
76
|
-
→ not_verified + список issues
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
## Пороги и правила
|
|
80
|
-
|
|
81
|
-
| Правило | Значение |
|
|
82
|
-
|---------|----------|
|
|
83
|
-
| Минимум строк для «не пустой» файл | > 3 строки содержательного контента |
|
|
84
|
-
| Маркеры placeholder | `TODO`, `TBD`, `XXX`, `FIXME`, `заполнить`, `...` |
|
|
85
|
-
| Минимум слов в Summary | 10 слов |
|
|
86
|
-
| Любой issue = failed | Да, без исключений |
|
|
87
|
-
|
|
88
|
-
## Граничные случаи
|
|
89
|
-
|
|
90
|
-
| Случай | Решение |
|
|
91
|
-
|--------|---------|
|
|
92
|
-
| Тикет с `executor_type: human` | Пропустить верификацию файлов — человек мог внести изменения вне системы |
|
|
93
|
-
| Файл удалён как часть задачи | Проверить что файл действительно НЕ существует (обратная проверка) |
|
|
94
|
-
| DoD содержит субъективный критерий | Оценить по best effort, отметить в комментарии |
|
|
95
|
-
| Файл изменён, но не создан | Проверить что изменения присутствуют (diff или содержимое) |
|
|
96
|
-
|
|
97
|
-
## Пример применения
|
|
98
|
-
|
|
99
|
-
**Вход:**
|
|
100
|
-
- Тикет XXX-005 с DoD: `[x] Создан workflows/process.md`, `[x] README создан`
|
|
101
|
-
- Изменённые файлы: `workflows/process.md`, `README.md`
|
|
102
|
-
|
|
103
|
-
**Проверка:**
|
|
104
|
-
1. `Read("src/skills/example-skill/workflows/process.md")` → файл существует, 45 строк → OK
|
|
105
|
-
2. `Read("src/skills/example-skill/README.md")` → файл существует, 30 строк → OK
|
|
106
|
-
3. Summary: "Модульная реструктуризация..." — 15 слов → OK
|
|
107
|
-
4. DoD `[x] workflows/` → файл есть, содержит шаги → verified
|
|
108
|
-
5. DoD `[x] README` → файл есть, структура верна → verified
|
|
109
|
-
|
|
110
|
-
**Результат:** `verified`
|
|
111
|
-
|
|
112
|
-
<!-- РАСШИРЕНИЕ: добавляй новые проверки и граничные случаи ниже -->
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
# Проверка baseline/snapshot-тестов на ревью
|
|
2
|
-
|
|
3
|
-
Когда DoD тикета требует **baseline-теста**, **snapshot-сравнения**, **регрессионного эталона** или **побайтного/посимвольного совпадения** результата с зафиксированной версией, ревьюер обязан проверить **способ реализации теста**, а не только факт его существования и зелёный статус прогона.
|
|
4
|
-
|
|
5
|
-
## Зачем ревьюеру проверять это отдельно
|
|
6
|
-
|
|
7
|
-
«Тесты зелёные» и «файл создан» — необходимые, но не достаточные признаки. Тест может быть зелёным и одновременно не выполнять заявленной функции baseline:
|
|
8
|
-
|
|
9
|
-
- ассерт по совпадению с регулярным выражением ловит только то, что регекс уже описывает; всё, что вне регекса, тест не отслеживает;
|
|
10
|
-
- ассерт «значение truthy» или равенство одного поля проверяют точечный признак, а не целостный эталон;
|
|
11
|
-
- проверка наличия подстроки в выводе — не сравнение с эталоном.
|
|
12
|
-
|
|
13
|
-
Такие тесты **тавтологичны**: они зафиксированы лишь в той части, где автор уже знал ответ. Регрессия в любой другой части (новые поля, изменённые ключи, изменённый формат, потерянные строки stdout) проходит мимо. Если назначение теста — поймать **любую** регрессию по сравнению с эталонной версией, ассерт по фрагментам не реализует это назначение.
|
|
14
|
-
|
|
15
|
-
## Триггеры применения
|
|
16
|
-
|
|
17
|
-
Шаг применяется, если в DoD, секции «Детали задачи» или «Критериях успеха» родительского плана встречаются формулировки уровня семантического намерения:
|
|
18
|
-
|
|
19
|
-
- baseline / эталон / reference / зафиксированный output;
|
|
20
|
-
- snapshot / inline-snapshot / external-snapshot;
|
|
21
|
-
- побайтное / посимвольное / точное совпадение;
|
|
22
|
-
- регрессия (ловить регрессию, регрессионный тест на изменение формата);
|
|
23
|
-
- «output не должен меняться», «формат стабилизирован», «контракт фиксируется».
|
|
24
|
-
|
|
25
|
-
Если хотя бы одна формулировка присутствует — это не обычный «тест проходит», а заявление о наличии **эталона**, и проверка способа реализации обязательна.
|
|
26
|
-
|
|
27
|
-
## Как проверять
|
|
28
|
-
|
|
29
|
-
1. **Открой файл теста физически** (Read), не доверяй секции Result. Найди ассерты, относящиеся к baseline-проверке.
|
|
30
|
-
2. **Сверь способ ассерта со способом, заявленным в DoD/плане:**
|
|
31
|
-
|
|
32
|
-
| Заявлено в DoD/плане | Что обязано быть в тесте | Что недопустимо |
|
|
33
|
-
|---|---|---|
|
|
34
|
-
| inline-snapshot / точное совпадение / эталон | Точное равенство (deep-equality для структур, побайтное равенство для строк) нормализованного output с зафиксированным литералом-эталоном. Эталон лежит **в файле теста как литерал** (или как сериализованный snapshot, на который тест ссылается). | Ассерт по регулярному выражению, проверка наличия подстроки, ассерт по одному полю без сверки остального вывода. |
|
|
35
|
-
| regression / not-changed / стабилизирован | Точное сравнение всего нормализованного output с эталоном. Любое отклонение должно ронять тест. | Набор фрагментарных ассертов (несколько регекс-проверок подряд) — не отвергает структурные изменения вне зон проверки. |
|
|
36
|
-
| побайтное совпадение | Бинарное/посимвольное равенство (буфер/строка целиком) после задокументированной нормализации. Нормализация описана в коде теста. | Любая «приблизительная» проверка. |
|
|
37
|
-
|
|
38
|
-
3. **Проверь, что эталон существует физически.** Inline-snapshot должен быть литералом в коде; external-snapshot — отдельным файлом, на который тест ссылается. Если эталона нет — тест не baseline.
|
|
39
|
-
|
|
40
|
-
4. **Проверь полноту нормализации.** Заявленные в DoD динамические поля (timestamps, абсолютные пути, рандомные id) должны нормализоваться **до** сравнения, а не игнорироваться через регекс. Если нормализация не реализована или неполна — тест либо хрупкий, либо тавтологичный.
|
|
41
|
-
|
|
42
|
-
## Красные флаги при чтении теста
|
|
43
|
-
|
|
44
|
-
- Регекс-ассерт в роли единственной проверки baseline-заявленного output.
|
|
45
|
-
- Несколько фрагментарных ассертов (regex-match, substring-include) подряд по разным частям одного output без сравнения целого.
|
|
46
|
-
- Отсутствие литерала-эталона в файле теста (нет inline-string, нет ссылки на snapshot-файл).
|
|
47
|
-
- Нормализация-функция объявлена, но её результат используется только для фрагментарных ассертов, не для равенства целого.
|
|
48
|
-
- DoD пункт «эталон зафиксирован» отмечен `[x]`, но в коде нет ни одного точного сравнения.
|
|
49
|
-
- Утверждения в Result вида «N snapshot-тестов зелёные», когда в файле теста нет ни одного snapshot/equality-вызова.
|
|
50
|
-
|
|
51
|
-
## Зелёные сигналы
|
|
52
|
-
|
|
53
|
-
- Каждый baseline-сценарий завершается одним точным сравнением целого нормализованного output с литералом-эталоном.
|
|
54
|
-
- Эталон прочитываем глазами: видно структуру и порядок полей; ревьюер может сказать, какое именно изменение уронит тест.
|
|
55
|
-
- Нормализация описана и применяется ко всему output до сравнения.
|
|
56
|
-
- При попытке вручную «сломать» один символ в эталоне или в исходнике — тест падает с понятной diff-разницей.
|
|
57
|
-
|
|
58
|
-
## Что делать при обнаружении нарушения
|
|
59
|
-
|
|
60
|
-
- `failed` с конкретным issue: какой пункт DoD заявил эталон, какой ассерт фактически реализован, почему ассерт не отвергает регрессии вне его покрытия.
|
|
61
|
-
- Процитировать дословно: строку DoD с формулировкой эталона **и** строку теста с фактическим ассертом. Не пересказывать.
|
|
62
|
-
- Не смягчать finding на основании того, что «тесты зелёные» или «количество кейсов соответствует» — проверка способа реализации ортогональна прогону и счётчику.
|
|
63
|
-
|
|
64
|
-
## Когда проверка не применяется
|
|
65
|
-
|
|
66
|
-
- DoD не содержит формулировок уровня эталона/snapshot/baseline/побайтного совпадения. Тест нацелен на проверку отдельной инвариантной фичи (наличие поля, формат id) — обычные ассерты допустимы.
|
|
67
|
-
- В тикете явно зафиксировано, что эталон будет добавлен следующим тикетом, и текущая задача — только smoke-каркас. Такая декомпозиция должна быть явной в плане; молчаливое сведение baseline к smoke — нарушение.
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
# Паттерны DoD по типам тикетов
|
|
2
|
-
|
|
3
|
-
Справочник типичных критериев готовности (Definition of Done) для разных типов задач. Помогает ревьюеру определить тип проверки и ожидания.
|
|
4
|
-
|
|
5
|
-
## Паттерны по типу тикета
|
|
6
|
-
|
|
7
|
-
### impl (реализация)
|
|
8
|
-
|
|
9
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
10
|
-
|--------------|-------------|-------------------------|
|
|
11
|
-
| Файл `X` создан / изменён | `file_exists` | Проверить что файл не пустой, содержит реальный код |
|
|
12
|
-
| Тесты проходят | `tests` | Запустить тесты, проверить покрытие |
|
|
13
|
-
| Код проходит линтер | `compilation` | Запустить lint |
|
|
14
|
-
| Реализована функция X | `text` | Проверить наличие функции, её сигнатуру и логику |
|
|
15
|
-
| Тесты на маппинг/парсинг данных | `tests` + `text` | Проверить, что тестовые fixtures содержат **реальные** значения из runtime-источника (лог, конфиг, API), а не синтетические. Прочитать источник данных и сверить с fixtures. Если fixtures не соответствуют реальным данным — тесты тавтологичны |
|
|
16
|
-
| Baseline / snapshot / эталон / regression-фиксация | `tests` + `structure` | Проверка способа реализации теста (точное сравнение нормализованного output с литералом-эталоном vs регекс/includes по подстроке). См. `knowledge/baseline-snapshot-validation.md` — обязательная загрузка при триггерных формулировках DoD. |
|
|
17
|
-
| Документация обновлена | `text` | Проверить JSDoc / README / комментарии |
|
|
18
|
-
|
|
19
|
-
### fix (исправление бага)
|
|
20
|
-
|
|
21
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
22
|
-
|--------------|-------------|-------------------------|
|
|
23
|
-
| Баг исправлен | `tests` | Регрессионный тест покрывает сценарий бага |
|
|
24
|
-
| Тесты не сломаны | `tests` | Все существующие тесты проходят |
|
|
25
|
-
| Нет побочных эффектов | `text` | Минимальность изменений, не затронуты несвязанные файлы |
|
|
26
|
-
|
|
27
|
-
### docs (документация)
|
|
28
|
-
|
|
29
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
30
|
-
|--------------|-------------|-------------------------|
|
|
31
|
-
| Документ создан | `file_exists` | Файл существует и не пустой |
|
|
32
|
-
| Структура соответствует шаблону | `structure` | Все обязательные секции присутствуют |
|
|
33
|
-
| Файл самодостаточен | `text` | → Применить шаг 3.5 (проверка с позиции аудитории) |
|
|
34
|
-
| Нет плейсхолдеров | `text` | Поиск `TODO`, `XXX`, `TBD`, `заменить` |
|
|
35
|
-
|
|
36
|
-
### coach (улучшение скилов)
|
|
37
|
-
|
|
38
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
39
|
-
|--------------|-------------|-------------------------|
|
|
40
|
-
| Файлы скила созданы | `file_exists` | workflows/, knowledge/, algorithms/ существуют |
|
|
41
|
-
| SKILL.md обновлён | `text` | Таблицы загрузки, маршрутизация |
|
|
42
|
-
| Нет ссылок на имена скилов | `text` | Поиск хардкода ролей — проверка изоляции |
|
|
43
|
-
| README создан | `file_exists` + `structure` | Все обязательные секции |
|
|
44
|
-
|
|
45
|
-
### rsh (исследование)
|
|
46
|
-
|
|
47
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
48
|
-
|--------------|-------------|-------------------------|
|
|
49
|
-
| Отчёт создан | `file_exists` | Файл существует |
|
|
50
|
-
| Источники указаны | `text` | Ссылки на источники, не голословные утверждения |
|
|
51
|
-
| Выводы структурированы | `structure` | Секции, таблицы, приоритизация |
|
|
52
|
-
|
|
53
|
-
### admin (административная)
|
|
54
|
-
|
|
55
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
56
|
-
|--------------|-------------|-------------------------|
|
|
57
|
-
| Конфигурация обновлена | `file_exists` + `text` | Файл изменён, значения корректны |
|
|
58
|
-
| Система работает | `compilation` | Проверить что конфиг валиден |
|
|
59
|
-
|
|
60
|
-
## Универсальные проверки
|
|
61
|
-
|
|
62
|
-
Применяются ко **всем** типам тикетов:
|
|
63
|
-
|
|
64
|
-
| Проверка | Описание |
|
|
65
|
-
|----------|----------|
|
|
66
|
-
| Summary не пустой | Секция «Результат выполнения» содержит содержательное описание |
|
|
67
|
-
| Изменённые файлы перечислены | Список файлов не пуст (для тикетов с артефактами) |
|
|
68
|
-
| Файлы реально существуют | Все перечисленные файлы доступны через Read/Glob |
|
|
69
|
-
| DoD ↔ Result согласованы | Каждый пункт DoD отражён в результате |
|
|
70
|
-
|
|
71
|
-
### qa (тестирование / manual testing)
|
|
72
|
-
|
|
73
|
-
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
74
|
-
|--------------|-------------|-------------------------|
|
|
75
|
-
| Сценарий X протестирован | `text` | Результат (PASS/FAIL/BLOCKER) задокументирован с evidence (a11y assertion + шаги) |
|
|
76
|
-
| Найденные дефекты зафиксированы | `text` | Дефекты содержат шаги воспроизведения, ожидаемый/фактический результат |
|
|
77
|
-
| Скриншоты приложены (если требуются в DoD) | `file_exists` + `visual` | Файлы существуют, **содержимое визуально проверено** — скриншот подтверждает заявление TC (шаг 3.7 review.md) |
|
|
78
|
-
|
|
79
|
-
> **⚠️ КРИТИЧЕСКИ ВАЖНО — Правило оценки QA-тикетов:**
|
|
80
|
-
>
|
|
81
|
-
> Для QA-тикетов обнаружение дефекта продукта — это **правильно выполненная работа тестировщика**, а НЕ ошибка выполнения тикета.
|
|
82
|
-
>
|
|
83
|
-
> - Если тестировщик обнаружил, что функционал отсутствует или сломан, и **задокументировал это** (описал дефект, шаги воспроизведения, a11y assertion) → пункт DoD **выполнен**. Тестировщик не может починить продукт — его задача найти и зафиксировать проблему. Скриншоты от исполнителя не обязательны по умолчанию — только если явно требуются в DoD. Однако если TC содержит визуальный критерий (как объект выглядит пользователю) — ревьюер обязан применить шаг 4.7 review.md: найти скриншоты, открыть и визуально проверить, либо зафиксировать отсутствие визуального evidence как issue.
|
|
84
|
-
> - FAIL на ревью QA-тикета допустим только если тестировщик **не выполнил свою работу**: не протестировал сценарий, не задокументировал результат, не приложил доказательства, пропустил сценарии без объяснения.
|
|
85
|
-
> - Статус сценария BLOCKER/FAIL в матрице результатов ≠ FAIL ревью тикета. Это выявленный дефект = ценный результат работы.
|
|
86
|
-
|
|
87
|
-
> **⚠️ КРИТИЧЕСКИ ВАЖНО — Подмена ручной проверки запуском автотестов:**
|
|
88
|
-
>
|
|
89
|
-
> Если QA-тикет содержит DoD «проверены визуально», «UI протестирован», «рендеринг проверен» (или аналог, требующий реального host-окружения), а evidence в результате — assertion из unit/integration-тест файлов разработки (`.test.ts`, `.test.js`), запуск `mocha`/`jest`/`vitest`/любого test runner'а — это **fail ревью** независимо от того, сколько тестов прошло.
|
|
90
|
-
>
|
|
91
|
-
> **Признаки подмены:**
|
|
92
|
-
> - В Evidence для каждого TC указан assertion вида `assert.strictEqual(icon.id, ...)` со ссылкой на файл `*.test.*`
|
|
93
|
-
> - В «Протоколе выполнения» — команда запуска test runner вместо MCP-вызовов desktop/browser-инструмента
|
|
94
|
-
> - В заметках формулировка типа «эквивалентно визуальной проверке, так как объект X создаётся теми же конструкторами»
|
|
95
|
-
> - Отсутствуют MCP snapshot/screenshot из реального host-окружения, в котором продукт исполняется конечным пользователем
|
|
96
|
-
>
|
|
97
|
-
> **Почему это fail:** unit-тесты, на которые ссылается evidence, **уже были зелёными** до создания QA-тикета (они прошли в задаче реализации). Их повторный запуск не подтверждает работоспособность в реальной среде — он подтверждает только то, что уже было известно. Эквивалентность «конструктор объекта в unit-тесте = отрендеренный объект в реальном UI» ложная: unit-тест не воспроизводит host runtime, интеграцию с системой, accessibility tree, реальный пользовательский ввод.
|
|
98
|
-
>
|
|
99
|
-
> **Правильное поведение тестировщика при недоступности host-окружения:** BLOCKED с обоснованной причиной + создание HUMAN-тикета, если сценарий критический. См. `manual-testing/algorithms/blocked-tool-strategy.md`. Ревьюер обязан принимать BLOCKED как валидный результат и отклонять подмену.
|
|
100
|
-
>
|
|
101
|
-
> **Регресс между итерациями ревью:** если предыдущая итерация ревью корректно отклонила evidence как «code review без реальных assertions из запущенного расширения», а следующая итерация принимает **то же самое** evidence с переформулированным обоснованием — это сигнал, что ревьюер поддался на риторику «обоснования недоступности» вместо проверки фактов. Перечитай предыдущее ревью: если оно отклонило по той же причине — текущее evidence должно содержать **новый тип данных** (MCP snapshot, скриншот из host, лог реального запуска), а не переформулировку старого.
|
|
102
|
-
|
|
103
|
-
## Специальные паттерны
|
|
104
|
-
|
|
105
|
-
### Self-Modified DoD (`[x]` + дискламер «НЕ ПРОЙДЕН»)
|
|
106
|
-
|
|
107
|
-
**Признак:** пункт DoD помечен `[x]`, но рядом написано «НЕ ПРОЙДЕН», «FAIL», «фактически: X».
|
|
108
|
-
|
|
109
|
-
**Правило:** `[x]` + «НЕ ПРОЙДЕН» = структурный дефект артефакта. Тестировщик перепутал «проверен» с «выполнен».
|
|
110
|
-
|
|
111
|
-
**Действие ревьюера:**
|
|
112
|
-
- Зафиксировать как issue: «DoD п.N: помечен `[x]`, но фактически не выполнен — ожидалось Y, получено Z»
|
|
113
|
-
- Общий вердикт определяется по фактическому результату (Z), а не по `[x]`
|
|
114
|
-
- Если фактический результат соответствует ожиданиям задачи (например, задача — зафиксировать состояние, а не достичь цели) → passed, но issue фиксируется как LOW
|
|
115
|
-
|
|
116
|
-
<!-- РАСШИРЕНИЕ: добавляй новые паттерны DoD по типам тикетов ниже -->
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# Проверка изоляции тестов на ревью
|
|
2
|
-
|
|
3
|
-
Когда DoD тикета требует создать/изменить автотест, ревьюер **отдельно** проверяет, что тест не пишет артефакты в рабочий репозиторий или в общие системные пути. Это не дублирует обычный «тесты проходят» — проверка изоляции ортогональна результату прогона (зелёный тест всё равно может быть токсичным).
|
|
4
|
-
|
|
5
|
-
## Зачем ревьюеру проверять это отдельно
|
|
6
|
-
|
|
7
|
-
Тест, который проходит в чистом прогоне, но пишет в рабочий репозиторий, создаёт отложенные инциденты:
|
|
8
|
-
- в CI / на второй машине / при параллельном запуске тесты ложно падают или ложно проходят;
|
|
9
|
-
- при прерывании (Ctrl+C, таймаут) оставленный state подхватывается следующим прогоном как валидный;
|
|
10
|
-
- затираются файлы, нужные параллельным агентам/пайплайну;
|
|
11
|
-
- ложно срабатывают механические проверки (verify-artifacts, git-snapshot).
|
|
12
|
-
|
|
13
|
-
Поэтому «зелёный прогон» — необходимый, но не достаточный сигнал. Нужна **отдельная** проверка изоляции.
|
|
14
|
-
|
|
15
|
-
## Что читать
|
|
16
|
-
|
|
17
|
-
1. Файл(ы) теста, затронутые тикетом.
|
|
18
|
-
2. Соседние test-файлы в той же директории — какой паттерн изоляции уже принят в проекте.
|
|
19
|
-
|
|
20
|
-
## Красные флаги при чтении теста
|
|
21
|
-
|
|
22
|
-
- Путь к тест-артефакту строится от корня репозитория или CWD (любая конструкция «директория исходника + подъём к корню», «текущий рабочий каталог», «заранее заданный projectRoot») **без** префикса стандартного системного tmp-корня языка.
|
|
23
|
-
- `cleanup`-функция удаляет конкретный файл, а не весь tmp-корень. При прерывании до её вызова файл останется в рабочем репозитории.
|
|
24
|
-
- Cleanup — в теле test-функции, а не в teardown/after-hook. Падение assertion до cleanup-вызова = утечка state.
|
|
25
|
-
- Тест модифицирует реальный файл в config-, data-, state-, cache- или иных рабочих каталогах проекта внутри корня репозитория.
|
|
26
|
-
- Глобальные константы теста указывают на рабочий репозиторий и используются более чем в одном тест-кейсе (shared mutable state).
|
|
27
|
-
|
|
28
|
-
## Зелёные сигналы
|
|
29
|
-
|
|
30
|
-
- Корень артефактов создаётся через стандартную tmp-функцию стандартной библиотеки языка (исполнитель выбирает конкретную по языку проекта).
|
|
31
|
-
- Cleanup удаляет **весь корень** рекурсивно и идемпотентен (можно вызвать повторно без ошибки).
|
|
32
|
-
- Cleanup в teardown/after-hook, гарантированно выполняется при любом исходе теста.
|
|
33
|
-
- Каждый тест получает свой свежий корень — нет разделяемого изменяемого состояния между тестами.
|
|
34
|
-
|
|
35
|
-
## Что делать при обнаружении нарушения
|
|
36
|
-
|
|
37
|
-
- Если нарушена изоляция — `failed` с конкретным issue: какая строка файла указывает на реальный каталог проекта, почему cleanup не защищает от прерывания.
|
|
38
|
-
- Не смягчай finding на основании того, что тест «проходит» — проверка изоляции ортогональна прогону.
|
|
39
|
-
- В issue — процитировать фрагмент теста дословно (путь до корня проекта, функция очистки), а не пересказать.
|
|
40
|
-
|
|
41
|
-
## Когда проверка не применяется
|
|
42
|
-
|
|
43
|
-
- Тикет явно просит тест-генератор, который коммитит файлы в репозиторий как артефакт. В этом случае в DoD должно быть явное обоснование.
|
|
44
|
-
- Тест read-only: не создаёт и не модифицирует файлы (только reads).
|