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,97 +0,0 @@
|
|
|
1
|
-
# Алгоритм: Бюджетирование MCP-сессии
|
|
2
|
-
|
|
3
|
-
Формализованный расчёт и контроль расхода MCP-вызовов на тестовую сессию.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- Бюджет MCP-вызовов из `context.notes` тикета (или значение по умолчанию: 80)
|
|
8
|
-
- Количество тест-кейсов (TC) в скоупе
|
|
9
|
-
- Тип тестирования (smoke, regression, exploratory)
|
|
10
|
-
|
|
11
|
-
## Формула распределения
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
avg_cost_per_TC = 10 # среднее по 11 QA-сессиям (диапазон 8-12)
|
|
15
|
-
setup_reserve = 5 # Quick-start checklist (3-4 вызова + запуск приложения)
|
|
16
|
-
safety_margin = 0.1 # 10% резерв на непредвиденные ситуации
|
|
17
|
-
|
|
18
|
-
effective_budget = budget - setup_reserve
|
|
19
|
-
max_TC_per_session = floor(effective_budget * (1 - safety_margin) / avg_cost_per_TC)
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
**Пример:** бюджет = 80 → effective = 75 → max_TC = floor(75 × 0.9 / 10) = **6 TC за сессию**.
|
|
23
|
-
|
|
24
|
-
## Таблица быстрого расчёта
|
|
25
|
-
|
|
26
|
-
| Бюджет | Setup | Effective | Max TC | Примечание |
|
|
27
|
-
|--------|-------|-----------|--------|------------|
|
|
28
|
-
| 50 | 5 | 45 | 4 | Минимальная сессия |
|
|
29
|
-
| 80 | 5 | 75 | 6 | Стандартный бюджет |
|
|
30
|
-
| 100 | 5 | 95 | 8 | Расширенная сессия |
|
|
31
|
-
| 140 | 5 | 135 | 12 | Максимальная сессия |
|
|
32
|
-
|
|
33
|
-
## Правила
|
|
34
|
-
|
|
35
|
-
### Планирование continuation
|
|
36
|
-
|
|
37
|
-
Если тикет содержит больше TC, чем `max_TC_per_session`:
|
|
38
|
-
|
|
39
|
-
1. **Перед началом** запиши в тикет: «Запланирована continuation: TC-001..TC-006 в сессии 1, TC-007..TC-010 в сессии 2»
|
|
40
|
-
2. Выполняй TC по приоритету (быстрые → средние → длительные)
|
|
41
|
-
3. После завершения `max_TC` — зафиксируй прогресс и заверши сессию
|
|
42
|
-
|
|
43
|
-
### Checkpoint accounting
|
|
44
|
-
|
|
45
|
-
В начале каждого TC записывай номер текущего MCP-вызова:
|
|
46
|
-
|
|
47
|
-
```
|
|
48
|
-
TC-001 starts at call #6 → done at call #14 (8 calls)
|
|
49
|
-
TC-002 starts at call #14 → done at call #22 (8 calls)
|
|
50
|
-
TC-003 starts at call #22 → done at call #35 (13 calls) ← ПРЕВЫШЕНИЕ
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
Это даёт данные для калибровки `avg_cost_per_TC` в будущих сессиях.
|
|
54
|
-
|
|
55
|
-
### Жёсткий порог BLOCKED
|
|
56
|
-
|
|
57
|
-
- **TC > 12 MCP-вызовов = BLOCKED**, без исключений
|
|
58
|
-
- Зафиксируй: что наблюдалось, на чём застрял, сколько вызовов потрачено
|
|
59
|
-
- Переходи к следующему TC
|
|
60
|
-
|
|
61
|
-
### Явное намерение перед вызовом (Explicit Intent)
|
|
62
|
-
|
|
63
|
-
**Источник:** Advanced Tool Calling in LLM Agents (sparkco.ai, 2025)
|
|
64
|
-
|
|
65
|
-
Перед каждым **не очевидным** инструментальным вызовом задай себе вопрос:
|
|
66
|
-
> «Зачем именно этот вызов и что он подтвердит в рамках текущего TC?»
|
|
67
|
-
|
|
68
|
-
Если ответ не формулируется за 1 строку — это сигнал rabbit hole.
|
|
69
|
-
|
|
70
|
-
| Ситуация | Действие |
|
|
71
|
-
|----------|----------|
|
|
72
|
-
| Вызов прямо следует из шага TC | Выполняй |
|
|
73
|
-
| Цель вызова — «разобраться как работает X» | СТОП — это rabbit hole |
|
|
74
|
-
| Вызов — третий подряд без видимого прогресса | BLOCKED → зафиксируй, переходи к следующему TC |
|
|
75
|
-
|
|
76
|
-
### Rabbit hole detection (decision tree)
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
Текущее действие входит в шаги TC?
|
|
80
|
-
├── ДА → продолжай
|
|
81
|
-
└── НЕТ → это rabbit hole
|
|
82
|
-
├── Расследование инфраструктуры (Get-ChildItem, Test-Path, Get-Acl) → СТОП
|
|
83
|
-
├── Создание собственных инструментов (HTTP-клиент, скрипт обхода) → СТОП
|
|
84
|
-
├── Установка/запуск продукта из CLI при UI-тестировании → СТОП
|
|
85
|
-
└── Другое: задай вопрос «это в скоупе TC?» — если нет → BLOCKED
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### 50% checkpoint (из smoke.md)
|
|
89
|
-
|
|
90
|
-
- Потрачено >50% бюджета И выполнено <50% TC → **экономный режим**
|
|
91
|
-
- Экономный режим: минимум Snapshot, пропуск длительных TC, OBSERVATION вместо полного расследования
|
|
92
|
-
|
|
93
|
-
## Выход
|
|
94
|
-
|
|
95
|
-
- Распределение бюджета по TC (таблица: TC → allocated → actual)
|
|
96
|
-
- Решение о необходимости continuation
|
|
97
|
-
- Фактический расход для калибровки будущих сессий
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
# Алгоритм: Приоритизация тест-кейсов
|
|
2
|
-
|
|
3
|
-
Определение порядка выполнения тест-кейсов при ограниченном времени на тестирование.
|
|
4
|
-
|
|
5
|
-
## Вход
|
|
6
|
-
|
|
7
|
-
- Список тест-кейсов с описанием
|
|
8
|
-
- Информация об изменениях (что задеплоено/изменено)
|
|
9
|
-
- Доступное время на тестирование
|
|
10
|
-
- Контекст (тип релиза, критичность)
|
|
11
|
-
|
|
12
|
-
## Алгоритм
|
|
13
|
-
|
|
14
|
-
### 1. Оцени бизнес-критичность каждого тест-кейса
|
|
15
|
-
|
|
16
|
-
| Уровень | Описание | Вес |
|
|
17
|
-
|---------|----------|-----|
|
|
18
|
-
| **CRITICAL** | Невозможность использования продукта. Оплата, авторизация, основной бизнес-flow | 10 |
|
|
19
|
-
| **HIGH** | Серьёзное нарушение работы. Основные фичи, данные пользователя | 7 |
|
|
20
|
-
| **MEDIUM** | Снижение качества. Вторичные фичи, UX-проблемы | 4 |
|
|
21
|
-
| **LOW** | Косметические. Тексты, вёрстка, edge cases | 1 |
|
|
22
|
-
|
|
23
|
-
### 2. Оцени вероятность регрессии
|
|
24
|
-
|
|
25
|
-
| Фактор | Вес |
|
|
26
|
-
|--------|-----|
|
|
27
|
-
| Код модуля менялся в этом релизе | +5 |
|
|
28
|
-
| Код смежного модуля менялся | +3 |
|
|
29
|
-
| Модуль часто ломается (история багов) | +3 |
|
|
30
|
-
| Модуль стабилен, давно не менялся | +0 |
|
|
31
|
-
| Сложная бизнес-логика | +2 |
|
|
32
|
-
| Простая статика | +0 |
|
|
33
|
-
|
|
34
|
-
### 3. Рассчитай приоритет
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
Приоритет = Бизнес-критичность × Вероятность_регрессии
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
### 4. Распредели по группам
|
|
41
|
-
|
|
42
|
-
| Группа | Приоритет | Действие |
|
|
43
|
-
|--------|-----------|----------|
|
|
44
|
-
| **P0** | > 50 | Выполнить ОБЯЗАТЕЛЬНО, даже при минимальном времени |
|
|
45
|
-
| **P1** | 25-50 | Выполнить при наличии времени |
|
|
46
|
-
| **P2** | 10-24 | Выполнить при полной регрессии |
|
|
47
|
-
| **P3** | < 10 | Опционально |
|
|
48
|
-
|
|
49
|
-
### 5. При нехватке времени
|
|
50
|
-
|
|
51
|
-
1. Выполни все P0
|
|
52
|
-
2. Из P1 выбери те, чей модуль менялся в этом релизе
|
|
53
|
-
3. Для непроверенных P1/P2 — укажи `SKIPPED` с обоснованием в отчёте
|
|
54
|
-
|
|
55
|
-
## Выход
|
|
56
|
-
|
|
57
|
-
Упорядоченный список тест-кейсов с приоритетами P0-P3.
|
|
58
|
-
|
|
59
|
-
## Пример
|
|
60
|
-
|
|
61
|
-
Релиз включает изменения в модуле checkout. Время — 2 часа.
|
|
62
|
-
|
|
63
|
-
| Тест-кейс | Критичность | Вероятность | Приоритет | Группа |
|
|
64
|
-
|-----------|-------------|-------------|-----------|--------|
|
|
65
|
-
| Оплата картой | 10 (CRITICAL) | 8 (модуль менялся) | 80 | P0 |
|
|
66
|
-
| Логин | 10 (CRITICAL) | 0 (не менялся) | 0 | P3 |
|
|
67
|
-
| Корзина | 7 (HIGH) | 3 (смежный) | 21 | P2 |
|
|
68
|
-
| Фильтры товаров | 4 (MEDIUM) | 0 | 0 | P3 |
|
|
69
|
-
| Промокод при оплате | 7 (HIGH) | 8 (модуль менялся) | 56 | P0 |
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
# Тестирование браузерных расширений
|
|
2
|
-
|
|
3
|
-
Специфика, ограничения и стратегии тестирования браузерных расширений.
|
|
4
|
-
|
|
5
|
-
## Ограничения MCP-browser
|
|
6
|
-
|
|
7
|
-
MCP-browser запускает браузер без флага `--load-extension`, поэтому:
|
|
8
|
-
|
|
9
|
-
- `chrome://extensions` — заблокирован (политика безопасности браузера)
|
|
10
|
-
- Extension popup — недоступен через UI-клик на иконке расширения
|
|
11
|
-
- Extension API (хранилище, прокси и т.п.) — недоступны из внешнего контекста
|
|
12
|
-
- Service Worker расширения — недоступен через инструменты разработчика
|
|
13
|
-
|
|
14
|
-
**Это архитектурное ограничение MCP-browser, не баг.**
|
|
15
|
-
|
|
16
|
-
## Стратегии тестирования при ограничениях
|
|
17
|
-
|
|
18
|
-
### Стратегия 1: Тестовая HTML-страница (если есть в проекте)
|
|
19
|
-
|
|
20
|
-
Если проект предоставляет тестовую страницу расширения для локального запуска через HTTP-сервер — использовать её.
|
|
21
|
-
|
|
22
|
-
**Возможности:** UI-взаимодействия, формы, навигация.
|
|
23
|
-
|
|
24
|
-
**Ограничения:** Extension API (хранилище, прокси) могут быть недоступны или замоканы. Проверь shared knowledge проекта на наличие инструкций по тестовой среде.
|
|
25
|
-
|
|
26
|
-
### Стратегия 2: Прямой запуск с --load-extension (Playwright без MCP)
|
|
27
|
-
|
|
28
|
-
Используется в Playwright-тестах (не через MCP). Загрузка расширения при старте браузера:
|
|
29
|
-
|
|
30
|
-
```typescript
|
|
31
|
-
// Запуск браузера с расширением
|
|
32
|
-
const context = await chromium.launchPersistentContext('', {
|
|
33
|
-
headless: false, // headless:true не поддерживается для расширений
|
|
34
|
-
args: [
|
|
35
|
-
`--disable-extensions-except=${pathToExtension}`,
|
|
36
|
-
`--load-extension=${pathToExtension}`,
|
|
37
|
-
],
|
|
38
|
-
});
|
|
39
|
-
// Extension ID получается из URL service worker
|
|
40
|
-
const [background] = context.serviceWorkers();
|
|
41
|
-
const extensionId = background.url().split('/')[2];
|
|
42
|
-
// Popup открывается как обычная страница
|
|
43
|
-
const popup = await context.newPage();
|
|
44
|
-
await popup.goto(`chrome-extension://${extensionId}/popup.html`);
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
**Возможности:** Весь функционал расширения включая API хранилища и service worker.
|
|
48
|
-
|
|
49
|
-
**Источник:** [Playwright docs: Chrome extensions](https://playwright.dev/docs/chrome-extensions)
|
|
50
|
-
|
|
51
|
-
### Стратегия 3: Документирование BLOCKED + эскалация
|
|
52
|
-
|
|
53
|
-
Если ни одна из стратегий недоступна:
|
|
54
|
-
1. Записать TC как `BLOCKED` с указанием причины
|
|
55
|
-
2. Задокументировать шаги для ручного воспроизведения
|
|
56
|
-
3. Создать HUMAN-тикет если сценарий критический
|
|
57
|
-
|
|
58
|
-
**⛔ НЕ переключайся на code review или генерацию тестовых данных как замену реального тестирования** — это не входит в скоуп manual-testing.
|
|
59
|
-
|
|
60
|
-
## Выбор стратегии
|
|
61
|
-
|
|
62
|
-
Применяй стратегии строго по приоритету (сначала Стратегия 2, затем 1, затем 3):
|
|
63
|
-
|
|
64
|
-
| Ситуация | Стратегия |
|
|
65
|
-
|----------|-----------|
|
|
66
|
-
| Доступен инструмент выполнения произвольного кода (например, `browser_run_code` / `execute_script`) | **Стратегия 2** — запусти Playwright programmatically, получи `chrome-extension://` URL |
|
|
67
|
-
| Инструмент выполнения кода недоступен, но проект имеет тестовую HTML-страницу | Стратегия 1 → проверь shared knowledge проекта |
|
|
68
|
-
| Оба варианта выше недоступны | Стратегия 3 |
|
|
69
|
-
|
|
70
|
-
**⚠️ Наличие helper-модуля в проекте (`e2e/helpers/extension.ts` или аналог) = сигнал использовать Стратегию 2.** Проверь shared knowledge проекта на наличие готового helper перед выбором стратегии.
|
|
71
|
-
|
|
72
|
-
**⛔ Стратегия 1 (HTTP-сервер) не заменяет Стратегию 2** — chrome.storage и другие Extension API недоступны в HTTP-контексте. Используй Стратегию 1 только если Стратегия 2 технически невозможна.
|
|
73
|
-
|
|
74
|
-
## Тестирование API хранилища (при Стратегии 2)
|
|
75
|
-
|
|
76
|
-
При наличии доступа к extension-контексту:
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
// Читать состояние хранилища
|
|
80
|
-
const data = await popup.evaluate(() =>
|
|
81
|
-
chrome.storage.local.get(null) // null = все ключи
|
|
82
|
-
);
|
|
83
|
-
|
|
84
|
-
// Подготовить тест-данные в хранилище
|
|
85
|
-
await popup.evaluate((testData) =>
|
|
86
|
-
chrome.storage.local.set(testData), testData
|
|
87
|
-
);
|
|
88
|
-
|
|
89
|
-
// Сбросить состояние между тестами
|
|
90
|
-
await popup.evaluate(() => chrome.storage.local.clear());
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
## Типичные артефакты тестирования расширений
|
|
94
|
-
|
|
95
|
-
| Тип артефакта | Что проверять |
|
|
96
|
-
|---------------|---------------|
|
|
97
|
-
| UI popup | Отображение элементов, навигация, формы |
|
|
98
|
-
| Storage state | Структура данных, корректность сохранения |
|
|
99
|
-
| Service Worker logs | Ошибки, предупреждения при операциях |
|
|
100
|
-
| Extension API responses | Корректность применения настроек |
|
|
101
|
-
|
|
102
|
-
<!-- РАСШИРЕНИЕ: добавляй специфические паттерны тестирования расширений ниже -->
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
# Инструменты работы с браузером
|
|
2
|
-
|
|
3
|
-
Справочник по инструментам и командам для тестирования через браузер.
|
|
4
|
-
|
|
5
|
-
## Playwright MCP — основной инструмент
|
|
6
|
-
|
|
7
|
-
### Навигация
|
|
8
|
-
|
|
9
|
-
| Команда | Описание | Пример |
|
|
10
|
-
|---------|----------|--------|
|
|
11
|
-
| `browser_navigate` | Перейти по URL | `url: "https://example.com/login"` |
|
|
12
|
-
| `browser_go_back` | Назад | — |
|
|
13
|
-
| `browser_go_forward` | Вперёд | — |
|
|
14
|
-
| `browser_wait` | Ожидание (мс) | `time: 2000` |
|
|
15
|
-
|
|
16
|
-
### Взаимодействие с элементами
|
|
17
|
-
|
|
18
|
-
| Команда | Описание | Параметры |
|
|
19
|
-
|---------|----------|-----------|
|
|
20
|
-
| `browser_click` | Клик по элементу | `element: "описание элемента"`, `ref: "ref_id"` |
|
|
21
|
-
| `browser_type` | Ввод текста | `element: "описание поля"`, `ref: "ref_id"`, `text: "значение"` |
|
|
22
|
-
| `browser_select_option` | Выбор из списка | `element: "описание"`, `ref: "ref_id"`, `values: ["value"]` |
|
|
23
|
-
| `browser_hover` | Наведение курсора | `element: "описание"`, `ref: "ref_id"` |
|
|
24
|
-
| `browser_drag` | Перетаскивание | `startElement`, `endElement` |
|
|
25
|
-
|
|
26
|
-
### Фиксация состояния
|
|
27
|
-
|
|
28
|
-
| Команда | Описание | Когда использовать |
|
|
29
|
-
|---------|----------|-------------------|
|
|
30
|
-
| `browser_screenshot` | Скриншот страницы | На каждом значимом шаге, при обнаружении бага |
|
|
31
|
-
| `browser_snapshot` | Снимок accessibility tree | Для анализа структуры страницы |
|
|
32
|
-
| `browser_console_messages` | Логи консоли | Проверка JS-ошибок |
|
|
33
|
-
| `browser_network_requests` | Сетевые запросы | Проверка API-вызовов |
|
|
34
|
-
|
|
35
|
-
### Управление вкладками
|
|
36
|
-
|
|
37
|
-
| Команда | Описание |
|
|
38
|
-
|---------|----------|
|
|
39
|
-
| `browser_tab_list` | Список открытых вкладок |
|
|
40
|
-
| `browser_tab_new` | Открыть новую вкладку |
|
|
41
|
-
| `browser_tab_select` | Переключиться на вкладку |
|
|
42
|
-
| `browser_tab_close` | Закрыть вкладку |
|
|
43
|
-
|
|
44
|
-
### Работа с файлами
|
|
45
|
-
|
|
46
|
-
| Команда | Описание |
|
|
47
|
-
|---------|----------|
|
|
48
|
-
| `browser_file_upload` | Загрузка файла в input[type=file] |
|
|
49
|
-
| `browser_pdf_save` | Сохранить страницу как PDF |
|
|
50
|
-
|
|
51
|
-
## Паттерны тестирования через браузер
|
|
52
|
-
|
|
53
|
-
### Проверка формы
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
1. browser_navigate → страница с формой
|
|
57
|
-
2. browser_screenshot → начальное состояние
|
|
58
|
-
3. browser_type → заполнить каждое поле
|
|
59
|
-
4. browser_click → отправить форму
|
|
60
|
-
5. browser_screenshot → результат
|
|
61
|
-
6. Проверить: URL изменился? Сообщение об успехе? Ошибки?
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Проверка авторизации
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
1. browser_navigate → /login
|
|
68
|
-
2. browser_type → email
|
|
69
|
-
3. browser_type → password
|
|
70
|
-
4. browser_click → кнопка входа
|
|
71
|
-
5. browser_wait → ожидание редиректа
|
|
72
|
-
6. browser_screenshot → проверка dashboard
|
|
73
|
-
7. Проверить: URL = /dashboard? Имя пользователя отображается?
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### Проверка ошибок
|
|
77
|
-
|
|
78
|
-
```
|
|
79
|
-
1. browser_navigate → целевая страница
|
|
80
|
-
2. Выполнить действие, вызывающее ошибку
|
|
81
|
-
3. browser_console_messages → проверить JS-ошибки
|
|
82
|
-
4. browser_network_requests → проверить 4xx/5xx ответы
|
|
83
|
-
5. browser_screenshot → зафиксировать состояние
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
## cURL — проверка API
|
|
87
|
-
|
|
88
|
-
```bash
|
|
89
|
-
# GET запрос
|
|
90
|
-
curl -v https://api.example.com/endpoint
|
|
91
|
-
|
|
92
|
-
# POST с данными
|
|
93
|
-
curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL
|
|
94
|
-
|
|
95
|
-
# С авторизацией
|
|
96
|
-
curl -H "Authorization: Bearer TOKEN" URL
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
Проверяй:
|
|
100
|
-
- Статус-код (200, 201, 400, 401, 403, 404, 500)
|
|
101
|
-
- Тело ответа (структура JSON, данные)
|
|
102
|
-
- Заголовки ответа (Content-Type, Cache-Control)
|
|
103
|
-
- Время ответа
|
|
104
|
-
|
|
105
|
-
## Советы
|
|
106
|
-
|
|
107
|
-
- **Артефакты — в `reports/`** — все скриншоты и файлы сохраняй в `reports/` в корне проекта, не в корень
|
|
108
|
-
- **Всегда делай скриншот перед действием** — чтобы зафиксировать начальное состояние
|
|
109
|
-
- **Используй `browser_snapshot`** для получения ref-идентификаторов элементов
|
|
110
|
-
- **Проверяй консоль** после каждого значимого действия — JS-ошибки часто скрыты
|
|
111
|
-
- **Ожидание** — если страница загружается медленно, используй `browser_wait`
|
|
112
|
-
- **Несколько вкладок** — для тестирования одновременных сессий используй `browser_tab_new`
|
|
113
|
-
|
|
114
|
-
<!-- РАСШИРЕНИЕ: добавляй новые инструменты и паттерны тестирования ниже -->
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
# Desktop-инструменты: Advanced
|
|
2
|
-
|
|
3
|
-
Редко используемые команды и паттерны Windows-MCP. Загружай при работе со Snapshot, MultiEdit, Registry, Process, или при необходимости установки/настройки.
|
|
4
|
-
|
|
5
|
-
## Установка Windows-MCP
|
|
6
|
-
|
|
7
|
-
**Требования:** Python 3.13+, UV package manager (`pip install uv`).
|
|
8
|
-
|
|
9
|
-
```json
|
|
10
|
-
// Claude Code (.mcp.json) — на Windows нужен враппер cmd /c
|
|
11
|
-
{ "mcpServers": { "windows-mcp": { "command": "cmd", "args": ["/c", "uvx", "windows-mcp"] } } }
|
|
12
|
-
```
|
|
13
|
-
|
|
14
|
-
## Управление приложениями
|
|
15
|
-
|
|
16
|
-
| Команда | Описание | Параметры |
|
|
17
|
-
|---------|----------|-----------|
|
|
18
|
-
| `app` | Запуск/resize/move/switch окон | `action`, `app_name`, размеры |
|
|
19
|
-
| `shell` | PowerShell-команды | `command: string` |
|
|
20
|
-
|
|
21
|
-
## Работа с данными
|
|
22
|
-
|
|
23
|
-
| Команда | Описание | Параметры |
|
|
24
|
-
|---------|----------|-----------|
|
|
25
|
-
| `clipboard` | Буфер обмена | `action: "read"/"set"`, `content` |
|
|
26
|
-
| `multi_select` | Множественный выбор | `coordinates: [[x,y], ...]`, `use_ctrl` |
|
|
27
|
-
| `multi_edit` | Ввод в несколько полей | `fields: [{x, y, text}, ...]` |
|
|
28
|
-
|
|
29
|
-
## Системные инструменты
|
|
30
|
-
|
|
31
|
-
| Команда | Описание | Параметры |
|
|
32
|
-
|---------|----------|-----------|
|
|
33
|
-
| `process` | Список/завершение процессов | `action: "list"/"terminate"`, `pid`/`name` |
|
|
34
|
-
| `notification` | Toast-уведомление | `title`, `message` |
|
|
35
|
-
| `registry` | Реестр Windows | `action: "read"/"write"/"delete"/"list"`, `path` |
|
|
36
|
-
|
|
37
|
-
## Accessibility Tree
|
|
38
|
-
|
|
39
|
-
Snapshot возвращает дерево UI Automation с:
|
|
40
|
-
- **ID элементов** — для точных кликов через `label: int`
|
|
41
|
-
- **Имена и роли** — Button, TreeItem, MenuItem
|
|
42
|
-
- **Координаты** — для click/type когда label недоступен
|
|
43
|
-
- **Состояния** — enabled/disabled, expanded/collapsed, checked/unchecked
|
|
44
|
-
|
|
45
|
-
## Batch-действия
|
|
46
|
-
|
|
47
|
-
Группируй 2-3 MCP-вызова перед проверочным Snapshot. Каждый цикл «действие → Wait → Snapshot» стоит ~30-40 сек.
|
|
48
|
-
|
|
49
|
-
```
|
|
50
|
-
# ❌ Click(tab) → Wait → Snapshot → Click(button) → Wait → Snapshot
|
|
51
|
-
# ✅ Click(tab) → Click(button) → Snapshot (проверка результата)
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
Промежуточный Snapshot — только если следующее действие зависит от координат, которых ещё нет.
|
|
55
|
-
|
|
56
|
-
## Проверка Developer Console (DevTools)
|
|
57
|
-
|
|
58
|
-
1. `Shortcut("Ctrl+Shift+I")` — открыть DevTools
|
|
59
|
-
2. Snapshot → прочитать **счётчик ошибок** в заголовке Console (`🔴 N errors`)
|
|
60
|
-
3. Если счётчик > 0 — прокрутить лог вверх, проверить каждую ошибку
|
|
61
|
-
4. Отличить ошибки расширения от системных (Chromium, телеметрия)
|
|
62
|
-
5. PASS только если ошибок расширения = 0
|
|
63
|
-
|
|
64
|
-
**Антипаттерн:** игнорировать счётчик «19 errors» в заголовке, увидев одну строку внизу.
|
|
65
|
-
|
|
66
|
-
## Window management
|
|
67
|
-
|
|
68
|
-
Если `Shortcut` не закрыл/переключил окно:
|
|
69
|
-
1. `App(action: "switch", app_name: "...")` — перефокусировка
|
|
70
|
-
2. Click по title bar — альтернативная перефокусировка
|
|
71
|
-
3. Click по X — для закрытия через Snapshot + координаты
|
|
72
|
-
|
|
73
|
-
**Не повторяй тот же Shortcut** — если не сработал первый раз, повтор не поможет.
|
|
74
|
-
|
|
75
|
-
## Ctrl+Click альтернативы
|
|
76
|
-
|
|
77
|
-
| Задача | Альтернатива |
|
|
78
|
-
|--------|-------------|
|
|
79
|
-
| Go to Definition | F12 |
|
|
80
|
-
| Open Link | Command Palette → `Open Link` |
|
|
81
|
-
| Открыть файл по пути | `Ctrl+P` → ввести путь → Enter |
|
|
82
|
-
|
|
83
|
-
**Если TC требует Ctrl+Click — отметь BLOCKED** с причиной «MCP не поддерживает модификаторы + Click».
|
|
84
|
-
|
|
85
|
-
## Советы
|
|
86
|
-
|
|
87
|
-
- **Артефакты — в `reports/`**, не в корень проекта
|
|
88
|
-
- **Верификация перед действием** — убедись через Snapshot что элемент существует, не полагайся на визуальную интерпретацию
|
|
89
|
-
- **`shortcut` для навигации** — Command Palette быстрее поиска кнопок мышью
|
|
90
|
-
- **`shell` для подготовки** — создание тестовых файлов, запуск приложений с параметрами
|
|
91
|
-
|
|
92
|
-
<!-- РАСШИРЕНИЕ: добавляй advanced-паттерны ниже -->
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
# Desktop-инструменты: Core
|
|
2
|
-
|
|
3
|
-
Справочник по основным командам Windows-MCP для тестирования desktop-приложений через Accessibility Tree.
|
|
4
|
-
|
|
5
|
-
## Основные команды
|
|
6
|
-
|
|
7
|
-
| Команда | Описание | Ключевые параметры |
|
|
8
|
-
|---------|----------|--------------------|
|
|
9
|
-
| `screenshot` | Быстрый скриншот рабочего стола | `display: [0]` (опционально) |
|
|
10
|
-
| `snapshot` | A11y tree + скриншот (дорогой) | `use_vision: bool`, `use_dom: bool` |
|
|
11
|
-
| `click` | Клик по элементу | `loc: [x,y]` или `label: int`, `button`, `double` |
|
|
12
|
-
| `type` | Ввод текста | `loc`/`label` (обязательно), `text`, `press_enter`, `clear` |
|
|
13
|
-
| `scroll` | Прокрутка | `direction`, `wheel_times: int`, `loc: [x,y]` (предпочтительно) |
|
|
14
|
-
| `shortcut` | Клавиатурная комбинация | `shortcut: "ctrl+shift+p"` |
|
|
15
|
-
| `scrape` | Извлечение текста окна | — |
|
|
16
|
-
| `wait` | Пауза | `duration: float` |
|
|
17
|
-
|
|
18
|
-
> **Типы параметров:** `loc` — массив `[x, y]`, не строка. `label` — int. `wheel_times` — int. Нативные типы, без кавычек.
|
|
19
|
-
|
|
20
|
-
> **click/type/scroll требуют `loc` или `label`.** Для scroll предпочитай `loc` — label-ID устаревают между Snapshot-ами.
|
|
21
|
-
|
|
22
|
-
## Label-based навигация (ПРИОРИТЕТ)
|
|
23
|
-
|
|
24
|
-
**Всегда предпочитай `Click(label=N)` вместо `Click(loc=[x,y])`** — координаты нестабильны при resize/collapse.
|
|
25
|
-
|
|
26
|
-
- `label` — **числовой ID** из столбца `# id` в Snapshot. Текстовые имена (`Click(label="Save")`) вызовут ошибку `int_parsing`
|
|
27
|
-
- **Label-ID ОДНОРАЗОВЫЕ** — валидны только сразу после Snapshot. Любое действие между Snapshot и Click может сдвинуть ID
|
|
28
|
-
- При ошибке «Label N out of range» — **не повторяй**, сделай новый Snapshot и найди элемент по текстовому имени
|
|
29
|
-
|
|
30
|
-
**Паттерн:** запомни текстовое имя элемента → при каждом Snapshot ищи его числовой ID → передавай в Click(label=N).
|
|
31
|
-
|
|
32
|
-
## Snapshot budget
|
|
33
|
-
|
|
34
|
-
Snapshot — ~5-10k tokens. Чрезмерное использование вызывает context overflow.
|
|
35
|
-
|
|
36
|
-
| Когда делать | Когда НЕ делать |
|
|
37
|
-
|-------------|-----------------|
|
|
38
|
-
| Первый раз — ориентация в UI | После Escape/закрытия меню |
|
|
39
|
-
| После действия, меняющего набор элементов | Если label уже известен |
|
|
40
|
-
| Верификация появления/исчезновения элемента | «Проверка что ничего не сломалось» |
|
|
41
|
-
|
|
42
|
-
**Лимиты:** 1-2 Snapshot/TC, максимум 6/сессию. После нового Snapshot все предыдущие label-ID невалидны.
|
|
43
|
-
|
|
44
|
-
**`use_vision: false`** по умолчанию (экономия токенов). `true` — только когда нужна визуальная интерпретация.
|
|
45
|
-
|
|
46
|
-
## Minimal Thinking
|
|
47
|
-
|
|
48
|
-
Между MCP-вызовами — максимум 1 короткая строка. Анализ и выводы — в тикет.
|
|
49
|
-
|
|
50
|
-
## Прокрутка списков
|
|
51
|
-
|
|
52
|
-
Перед выводом «элемент отсутствует» — прокрути в обоих направлениях:
|
|
53
|
-
1. Snapshot → найти scrollable element, проверить `vertical_scroll_percent`
|
|
54
|
-
2. Scroll up до `scroll_percent = 0` → Snapshot → проверить
|
|
55
|
-
3. Scroll down до конца → Snapshot → проверить
|
|
56
|
-
4. Только после полной прокрутки можно утверждать «элемента нет»
|
|
57
|
-
|
|
58
|
-
**Антипаттерн:** dropdown может быть открыт в середине списка — элемент может быть выше видимой области.
|
|
59
|
-
|
|
60
|
-
## Выбор MCP-сервера
|
|
61
|
-
|
|
62
|
-
**⛔ Desktop-приложения тестируются ТОЛЬКО через Sandbox.** Используй `sandbox-desktop`.
|
|
63
|
-
|
|
64
|
-
| Среда | MCP-сервер | Префикс вызова |
|
|
65
|
-
|-------|-----------|----------------|
|
|
66
|
-
| Windows Sandbox (обязательно) | `sandbox-desktop` | `mcp__sandbox-desktop__*` |
|
|
67
|
-
|
|
68
|
-
Проверь `.mcp.json` проекта. В Sandbox **не используй `Wait`** — латентность MCP (3-10 сек) достаточна для обновления UI.
|
|
69
|
-
|
|
70
|
-
## Ключевые ограничения
|
|
71
|
-
|
|
72
|
-
- **Ctrl+Click невозможен** через MCP (нет модификаторов). Альтернативы: F12, Command Palette, Ctrl+P
|
|
73
|
-
- A11y tree не всегда гранулярен до символа
|
|
74
|
-
- В Sandbox начинай с `snapshot` — a11y tree надёжнее для верификации
|
|
75
|
-
|
|
76
|
-
<!-- РАСШИРЕНИЕ: добавляй новые core-паттерны ниже -->
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
# Тестирование в Windows Sandbox — Advanced
|
|
2
|
-
|
|
3
|
-
Расширенные сценарии: настройка .wsb, паттерны тестирования, MCP disconnect, управление контекстом. Базовые знания → `knowledge/sandbox-core.md`.
|
|
4
|
-
|
|
5
|
-
## Конфигурация .wsb файла
|
|
6
|
-
|
|
7
|
-
```xml
|
|
8
|
-
<Configuration>
|
|
9
|
-
<MappedFolders>
|
|
10
|
-
<MappedFolder>
|
|
11
|
-
<HostFolder><!-- путь к проекту --></HostFolder>
|
|
12
|
-
<SandboxFolder><!-- путь в Sandbox --></SandboxFolder>
|
|
13
|
-
<ReadOnly>false</ReadOnly>
|
|
14
|
-
</MappedFolder>
|
|
15
|
-
</MappedFolders>
|
|
16
|
-
<Networking>Enable</Networking>
|
|
17
|
-
<vGPU>Enable</vGPU>
|
|
18
|
-
<ClipboardRedirection>Enable</ClipboardRedirection>
|
|
19
|
-
<LogonCommand><Command><!-- путь к setup.cmd --></Command></LogonCommand>
|
|
20
|
-
</Configuration>
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Конкретные пути — см. `CLAUDE.md` и `.wsb`-файл в sandbox-директории. Офлайн-пакет содержит портативные Python, Node.js и wheels для `windows-mcp`. Копируй Python на `C:\sandbox\` (mapped folders могут быть read-only для pip).
|
|
24
|
-
|
|
25
|
-
## Паттерны тестирования
|
|
26
|
-
|
|
27
|
-
**Полный цикл:** Sandbox → LogonCommand → MCP подключение → запуск приложения → тест-кейсы → evidence в mapped folder → закрытие.
|
|
28
|
-
|
|
29
|
-
**Сравнение окружений:** один и тот же TC на хосте и в Sandbox — расхождения указывают на зависимость от окружения.
|
|
30
|
-
|
|
31
|
-
**Регрессия двух версий:** Sandbox 1 (текущая) → скриншоты → закрыть → Sandbox 2 (новая) → те же TC → сравнить.
|
|
32
|
-
|
|
33
|
-
## Приоритизация TC по длительности
|
|
34
|
-
|
|
35
|
-
| Фаза | Тип TC | MCP-вызовов |
|
|
36
|
-
|------|--------|-------------|
|
|
37
|
-
| Сначала | Быстрые (Snapshot + визуальная верификация) | 2-3 |
|
|
38
|
-
| Затем | Действие + проверка | 4-6 |
|
|
39
|
-
| В конце | Длительные с ожиданием | 6-10 |
|
|
40
|
-
|
|
41
|
-
Чем дольше TC — тем выше риск MCP disconnect. Быстрые TC первыми.
|
|
42
|
-
|
|
43
|
-
## MCP disconnect
|
|
44
|
-
|
|
45
|
-
### Sandbox закрылся
|
|
46
|
-
|
|
47
|
-
1. Немедленно зафиксируй результаты в тикет
|
|
48
|
-
2. Не пытайся переподключиться — Sandbox закрыт
|
|
49
|
-
3. Evidence на хосте сохранены (mapped folder пишет на диск хоста)
|
|
50
|
-
|
|
51
|
-
### MCP-прокси умер, Sandbox жив
|
|
52
|
-
|
|
53
|
-
MCP-инструменты возвращают «server not connected», но окно Sandbox видно. **Не реализуй HTTP-клиент** — это rabbit hole.
|
|
54
|
-
|
|
55
|
-
1. Зафиксируй выполненные TC
|
|
56
|
-
2. Пометь оставшиеся TC как BLOCKED: «MCP proxy disconnected»
|
|
57
|
-
3. Завершай тикет — следующая сессия продолжит
|
|
58
|
-
|
|
59
|
-
## Управление контекстом и continuation
|
|
60
|
-
|
|
61
|
-
### Планирование continuation
|
|
62
|
-
|
|
63
|
-
Рассчитай `max_TC_per_session` по формуле из `algorithms/mcp-budget.md`. Если TC больше — запланируй разбивку по сессиям до начала тестирования.
|
|
64
|
-
|
|
65
|
-
### Признаки context overflow
|
|
66
|
-
|
|
67
|
-
- Контекст >70% заполнен — завершай текущий TC
|
|
68
|
-
- 6+ Snapshot за сессию — переключись на Screenshot
|
|
69
|
-
- Модель «забывает» ранние TC — немедленно фиксируй прогресс
|
|
70
|
-
|
|
71
|
-
### Действия при overflow
|
|
72
|
-
|
|
73
|
-
1. Завершай текущий TC (PASS/FAIL/BLOCKED)
|
|
74
|
-
2. Запиши результаты, evidence paths, оставшиеся TC
|
|
75
|
-
3. Заверши сессию — не пытайся «успеть ещё один TC»
|
|
76
|
-
|
|
77
|
-
### Антипаттерн: ожидание смены UI-состояния
|
|
78
|
-
|
|
79
|
-
Не трать MCP-вызовы на цикл `Wait → Screenshot → «не сменилось»`. Запускай действие сразу:
|
|
80
|
-
```
|
|
81
|
-
# ❌ Wait(5) → Screenshot → "ещё Completed" → Wait(8) → Screenshot
|
|
82
|
-
# ✅ Shortcut(ctrl+shift+p) → Type("<команда>") → Snapshot
|
|
83
|
-
```
|