workflow-ai 1.0.63 → 1.0.65
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/README.md +239 -145
- package/configs/agent-health-rules.yaml +64 -0
- package/configs/config.yaml +134 -0
- package/configs/pipeline.yaml +901 -0
- package/configs/ticket-movement-rules.yaml +80 -0
- package/package.json +1 -1
- package/src/global-dir.mjs +25 -1
- package/src/init.mjs +20 -3
- package/src/lib/agent-health-registry.mjs +245 -0
- package/src/lib/artifact-snapshot.mjs +233 -0
- package/src/lib/error-classifier.mjs +274 -0
- package/src/lib/test-error-classifier.mjs +60 -0
- package/src/lib/test-extends.mjs +58 -0
- package/src/lib/test-version.mjs +21 -0
- package/src/scripts/move-to-review.js +5 -7
- package/src/scripts/reset-agent-health.js +62 -0
- package/src/scripts/run-skill-tests.js +348 -136
- package/src/skills/analyze-report/README.md +44 -0
- package/src/skills/analyze-report/SKILL.md +121 -0
- package/src/skills/analyze-report/algorithms/progress-assessment.md +108 -0
- package/src/skills/analyze-report/knowledge/analysis-frameworks.md +66 -0
- package/src/skills/analyze-report/knowledge/report-structure.md +61 -0
- package/src/skills/analyze-report/scripts/calc-plan-metrics.js +234 -0
- package/src/skills/analyze-report/templates/analysis-report.md +80 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-1.md +69 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-2.md +103 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/claude-sonnet/trial-3.md +99 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/judge.json +163 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-1.md +89 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-2.md +88 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-deepseek/trial-3.md +100 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-1.md +77 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-2.md +64 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md +110 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md +74 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md +38 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md +61 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/meta.json +115 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001-evidence-from-log.yaml +60 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md +90 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md +89 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-3.md +77 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/judge.json +163 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-1.md +84 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-2.md +77 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-deepseek/trial-3.md +89 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-1.md +103 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-2.md +103 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-glm/trial-3.md +103 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-1.md +93 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-2.md +93 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/kilo-minimax/trial-3.md +86 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/meta.json +115 -0
- package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002-result-block-format.yaml +44 -0
- package/src/skills/analyze-report/tests/fixtures/REPORT-002-incorrect-attribution.md +27 -0
- package/src/skills/analyze-report/tests/fixtures/pipeline-2026-04-06_qa-001-skip.log +32 -0
- package/src/skills/analyze-report/tests/index.yaml +25 -0
- package/src/skills/analyze-report/tests/rubrics/evidence-from-log.md +22 -0
- package/src/skills/analyze-report/tests/rubrics/result-block-format.md +22 -0
- package/src/skills/analyze-report/workflows/progress.md +158 -0
- package/src/skills/analyze-report/workflows/retrospective.md +143 -0
- package/src/skills/coach/README.md +43 -0
- package/src/skills/coach/SKILL.md +167 -0
- package/src/skills/coach/SKILL.md.legacy +157 -0
- package/src/skills/coach/algorithms/gap-analysis.md +69 -0
- package/src/skills/coach/algorithms/improvement-prioritization.md +62 -0
- package/src/skills/coach/algorithms/skill-scoring.md +80 -0
- package/src/skills/coach/knowledge/audit-applied-changes-clean.txt +11 -0
- package/src/skills/coach/knowledge/backlog-management.md +67 -0
- package/src/skills/coach/knowledge/backlog-management.md.legacy +90 -0
- package/src/skills/coach/knowledge/common-antipatterns.md +76 -0
- package/src/skills/coach/knowledge/prompt-engineering.md +45 -0
- package/src/skills/coach/knowledge/shared-knowledge-guide.md +44 -0
- package/src/skills/coach/knowledge/skill-anatomy.md +49 -0
- package/src/skills/coach/knowledge/test-authorship.md +141 -0
- package/src/skills/coach/templates/audit-report.md +39 -0
- package/src/skills/coach/templates/coach-backlog-init.yaml +14 -0
- package/src/skills/coach/templates/coach-backlog-init.yaml.legacy +10 -0
- package/src/skills/coach/templates/improvement-plan.md +42 -0
- package/src/skills/coach/templates/new-skill.md +95 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-1.md +58 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-2.md +65 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/claude-sonnet/trial-3.md +58 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/judge.json +151 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-deepseek/trial-1.md +46 -0
- 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 +75 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-1.md +81 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-2.md +101 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-glm/trial-3.md +91 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-1.md +48 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-2.md +30 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/kilo-minimax/trial-3.md +55 -0
- package/src/skills/coach/tests/cases/TC-COACH-001/current/meta.json +94 -0
- package/src/skills/coach/tests/cases/TC-COACH-001-evidence-based-temporal-diagram.yaml +53 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-1.md +46 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-2.md +50 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/claude-sonnet/trial-3.md +48 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/judge.json +151 -0
- 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 +37 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-deepseek/trial-3.md +30 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-1.md +23 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-2.md +29 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-glm/trial-3.md +35 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-1.md +13 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-2.md +19 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/kilo-minimax/trial-3.md +33 -0
- package/src/skills/coach/tests/cases/TC-COACH-002/current/meta.json +94 -0
- package/src/skills/coach/tests/cases/TC-COACH-002-root-cause-first.yaml +57 -0
- package/src/skills/coach/tests/fixtures/pipeline-2026-04-06_id-collision.log +77 -0
- package/src/skills/coach/tests/index.yaml +29 -0
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-bad.md +13 -0
- package/src/skills/coach/tests/rubrics/calibration/evidence-based-good.md +29 -0
- package/src/skills/coach/tests/rubrics/evidence-based.md +26 -0
- package/src/skills/coach/tests/rubrics/root-cause-first.md +21 -0
- package/src/skills/coach/workflows/analyze.md +79 -0
- package/src/skills/coach/workflows/analyze.md.legacy +64 -0
- package/src/skills/coach/workflows/audit.md +74 -0
- package/src/skills/coach/workflows/audit.md.legacy +59 -0
- package/src/skills/coach/workflows/create.md +80 -0
- package/src/skills/coach/workflows/create.md.legacy +67 -0
- package/src/skills/coach/workflows/improve.md +71 -0
- package/src/skills/coach/workflows/improve.md.legacy +60 -0
- package/src/skills/coach/workflows/research.md +55 -0
- package/src/skills/coach/workflows/review.md +52 -0
- package/src/skills/coach/workflows/review.md.legacy +48 -0
- package/src/skills/coach/workflows/test.md +97 -0
- package/src/skills/create-plan/README.md +39 -0
- package/src/skills/create-plan/SKILL.md +104 -0
- package/src/skills/create-plan/algorithms/risk-assessment.md +73 -0
- package/src/skills/create-plan/knowledge/plan-completeness.md +67 -0
- package/src/skills/create-plan/knowledge/plan-lifecycle.md +33 -0
- package/src/skills/create-plan/knowledge/task-verification-pairs.md +151 -0
- package/src/skills/create-plan/scripts/validate-completeness.js +182 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-1.md +5 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-2.md +39 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/claude-sonnet/trial-3.md +35 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/judge.json +167 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-1.md +5 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-2.md +10 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-deepseek/trial-3.md +5 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-1.md +26 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-2.md +86 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-glm/trial-3.md +5 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-1.md +11 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-2.md +15 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/kilo-minimax/trial-3.md +14 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001/current/meta.json +119 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-001-validate-completeness.yaml +41 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-1.md +25 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-2.md +30 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/claude-sonnet/trial-3.md +37 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/judge.json +164 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-1.md +3 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-2.md +11 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-deepseek/trial-3.md +13 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-1.md +44 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-2.md +5 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-glm/trial-3.md +49 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-1.md +6 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-2.md +11 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/kilo-minimax/trial-3.md +16 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002/current/meta.json +116 -0
- package/src/skills/create-plan/tests/cases/TC-CREATE-PLAN-002-task-granularity.yaml +39 -0
- package/src/skills/create-plan/tests/index.yaml +25 -0
- package/src/skills/create-plan/tests/rubrics/task-granularity.md +21 -0
- package/src/skills/create-plan/tests/rubrics/validate-completeness.md +21 -0
- package/src/skills/create-plan/workflows/create.md +136 -0
- package/src/skills/create-report/README.md +40 -0
- package/src/skills/create-report/SKILL.md +73 -0
- package/src/skills/create-report/algorithms/metric-calculation.md +93 -0
- package/src/skills/create-report/knowledge/report-metrics.md +82 -0
- package/src/skills/create-report/scripts/calc-metrics.js +383 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-1.md +25 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-2.md +26 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/claude-sonnet/trial-3.md +28 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/judge.json +163 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-1.md +4 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-2.md +3 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-deepseek/trial-3.md +6 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-1.md +8 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-2.md +12 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-glm/trial-3.md +7 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-1.md +12 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-2.md +22 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/kilo-minimax/trial-3.md +13 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001/current/meta.json +115 -0
- package/src/skills/create-report/tests/cases/TC-CREATE-REPORT-001-root-cause-attribution.yaml +57 -0
- package/src/skills/create-report/tests/index.yaml +20 -0
- package/src/skills/create-report/tests/rubrics/root-cause-attribution.md +21 -0
- package/src/skills/create-report/workflows/standard.md +175 -0
- package/src/skills/decompose-gaps/README.md +39 -0
- package/src/skills/decompose-gaps/SKILL.md +78 -0
- package/src/skills/decompose-gaps/algorithms/scope-check.md +110 -0
- package/src/skills/decompose-gaps/knowledge/scope-validation.md +65 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-1.md +41 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +41 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +56 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/judge.json +164 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-1.md +25 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-2.md +17 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +22 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +25 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-2.md +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-3.md +29 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +27 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +35 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +18 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/meta.json +116 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001-scope-exclusion.yaml +46 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-1.md +27 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +30 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +27 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +163 -0
- 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 +15 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-3.md +7 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-1.md +21 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +38 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +16 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +10 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +9 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +115 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +36 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-1.md +30 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-2.md +30 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/claude-sonnet/trial-3.md +30 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/judge.json +165 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-1.md +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-2.md +26 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-deepseek/trial-3.md +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-1.md +39 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-2.md +37 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-glm/trial-3.md +45 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-1.md +26 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-2.md +27 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/kilo-minimax/trial-3.md +7 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003/current/meta.json +117 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-003-parent-plan-mandatory.yaml +41 -0
- package/src/skills/decompose-gaps/tests/index.yaml +30 -0
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +21 -0
- package/src/skills/decompose-gaps/tests/rubrics/parent-plan-mandatory.md +22 -0
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +21 -0
- package/src/skills/decompose-gaps/workflows/decompose.md +123 -0
- package/src/skills/decompose-plan/README.md +43 -0
- package/src/skills/decompose-plan/SKILL.md +87 -0
- package/src/skills/decompose-plan/algorithms/deduplication.md +101 -0
- package/src/skills/decompose-plan/knowledge/atomicity-checklist.md +139 -0
- package/src/skills/decompose-plan/knowledge/capabilities.md +68 -0
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +82 -0
- package/src/skills/decompose-plan/knowledge/scope-guard-checklist.md +73 -0
- package/src/skills/decompose-plan/scripts/check-atomicity-limit.js +47 -0
- package/src/skills/decompose-plan/scripts/check-duplicates.js +323 -0
- package/src/skills/decompose-plan/scripts/verify-atomicity.js +408 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-1.md +30 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-2.md +36 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/claude-sonnet/trial-3.md +37 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/judge.json +163 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-1.md +20 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-2.md +17 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-deepseek/trial-3.md +28 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-1.md +114 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-2.md +137 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-glm/trial-3.md +188 -0
- 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 +32 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/kilo-minimax/trial-3.md +110 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001/current/meta.json +115 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-001-atomicity-no-1to1.yaml +56 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-1.md +47 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-2.md +54 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/claude-sonnet/trial-3.md +43 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/judge.json +163 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-1.md +15 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-2.md +5 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-deepseek/trial-3.md +12 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-1.md +34 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-2.md +30 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002/current/kilo-glm/trial-3.md +35 -0
- 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 +31 -0
- 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 +115 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-002-get-next-id-mandatory.yaml +44 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-1.md +21 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-2.md +38 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/claude-sonnet/trial-3.md +30 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/judge.json +163 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-1.md +31 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-2.md +35 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-deepseek/trial-3.md +48 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-1.md +167 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-2.md +62 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003/current/kilo-glm/trial-3.md +174 -0
- 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 +115 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-003-verbatim-dod-transfer.yaml +42 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-1.md +55 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-2.md +49 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/claude-sonnet/trial-3.md +49 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/judge.json +163 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-1.md +104 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-2.md +45 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-deepseek/trial-3.md +58 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-1.md +193 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-2.md +202 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-glm/trial-3.md +155 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-1.md +52 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004/current/kilo-minimax/trial-2.md +17 -0
- 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 +115 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-004-executor-atomicity.yaml +64 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-1.md +59 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-2.md +204 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/claude-sonnet/trial-3.md +213 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/judge.json +163 -0
- 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 +57 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-deepseek/trial-3.md +54 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-1.md +147 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-2.md +165 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-glm/trial-3.md +133 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-1.md +81 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-2.md +108 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/kilo-minimax/trial-3.md +3 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005/current/meta.json +114 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-005-capabilities-registry.yaml +78 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-1.md +225 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-2.md +66 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/claude-sonnet/trial-3.md +36 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/judge.json +163 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-1.md +42 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-2.md +67 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-deepseek/trial-3.md +40 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-1.md +122 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-2.md +131 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-glm/trial-3.md +138 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-1.md +41 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006/current/kilo-minimax/trial-2.md +88 -0
- 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 +115 -0
- package/src/skills/decompose-plan/tests/cases/TC-DECOMPOSE-PLAN-006-dod-threshold.yaml +72 -0
- package/src/skills/decompose-plan/tests/index.yaml +45 -0
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.md +21 -0
- package/src/skills/decompose-plan/tests/rubrics/capabilities-registry.md +21 -0
- package/src/skills/decompose-plan/tests/rubrics/dod-threshold.md +21 -0
- package/src/skills/decompose-plan/tests/rubrics/executor-atomicity.md +21 -0
- package/src/skills/decompose-plan/tests/rubrics/get-next-id-mandatory.md +21 -0
- package/src/skills/decompose-plan/tests/rubrics/verbatim-dod-transfer.md +21 -0
- package/src/skills/decompose-plan/workflows/decompose.md +305 -0
- package/src/skills/deep-research/README.md +36 -0
- package/src/skills/deep-research/SKILL.md +106 -0
- package/src/skills/deep-research/algorithms/source-scoring.md +63 -0
- package/src/skills/deep-research/algorithms/synthesis.md +67 -0
- package/src/skills/deep-research/knowledge/data-validation.md +44 -0
- package/src/skills/deep-research/knowledge/perplexity-config.md +30 -0
- package/src/skills/deep-research/knowledge/research-methodology.md +54 -0
- package/src/skills/deep-research/knowledge/source-evaluation.md +33 -0
- package/src/skills/deep-research/scripts/perplexity-research.js +315 -0
- package/src/skills/deep-research/templates/brief-summary.md +25 -0
- package/src/skills/deep-research/templates/research-report.md +76 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-1.md +48 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-2.md +88 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/claude-haiku/trial-3.md +56 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/judge.json +163 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-1.md +58 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-2.md +249 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-free/trial-3.md +44 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-1.md +96 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-2.md +56 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm/trial-3.md +94 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-1.md +11 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-2.md +1 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/kilo-glm-air/trial-3.md +1 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001/current/meta.json +115 -0
- package/src/skills/deep-research/tests/cases/TC-DEEP-RESEARCH-001-self-check-url.yaml +58 -0
- package/src/skills/deep-research/tests/index.yaml +20 -0
- package/src/skills/deep-research/tests/rubrics/self-check-url.md +34 -0
- package/src/skills/deep-research/workflows/base-checklist.md +19 -0
- package/src/skills/deep-research/workflows/benchmark.md +38 -0
- package/src/skills/deep-research/workflows/competitor.md +44 -0
- package/src/skills/deep-research/workflows/custom.md +32 -0
- package/src/skills/deep-research/workflows/market.md +44 -0
- package/src/skills/deep-research/workflows/technology.md +40 -0
- package/src/skills/deep-research/workflows/trend.md +40 -0
- package/src/skills/execute-task/README.md +44 -0
- package/src/skills/execute-task/SKILL.md +292 -0
- package/src/skills/execute-task/algorithms/execution-strategy.md +136 -0
- package/src/skills/execute-task/knowledge/context-checkpoints.md +75 -0
- package/src/skills/execute-task/knowledge/ticket-structure.md +70 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-1.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-2.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/claude-haiku/trial-3.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/judge.json +124 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-1.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-2.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-free/trial-3.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-1.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-2.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/kilo-glm-air/trial-3.md +11 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001/current/meta.json +88 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-001-no-ticket-creation.yaml +48 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-1.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-2.md +6 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/claude-haiku/trial-3.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/judge.json +124 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-1.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-2.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-free/trial-3.md +8 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-1.md +9 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-2.md +26 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/kilo-glm-air/trial-3.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002/current/meta.json +89 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-002-no-duplicate-dod.yaml +44 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-1.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-2.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/claude-haiku/trial-3.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/judge.json +46 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003/current/meta.json +37 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-003-verification-proportionality.yaml +46 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-1.md +18 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-2.md +16 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/claude-haiku/trial-3.md +14 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/judge.json +124 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-1.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-2.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-free/trial-3.md +1 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-1.md +8 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-2.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/kilo-glm-air/trial-3.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004/current/meta.json +89 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-004-no-foreign-ticket-edit.yaml +50 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-1.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-2.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/claude-haiku/trial-3.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/judge.json +124 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-1.md +15 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-2.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-free/trial-3.md +5 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-1.md +11 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-2.md +11 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/kilo-glm-air/trial-3.md +4 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005/current/meta.json +88 -0
- package/src/skills/execute-task/tests/cases/TC-EXECUTE-TASK-005-ticket-fields-updated.yaml +39 -0
- package/src/skills/execute-task/tests/fixtures/IMPL-902-create-file.md +41 -0
- package/src/skills/execute-task/tests/fixtures/IMPL-904-current-task.md +40 -0
- package/src/skills/execute-task/tests/fixtures/IMPL-906-fill-ticket.md +42 -0
- package/src/skills/execute-task/tests/fixtures/QA-901-button-click.md +41 -0
- package/src/skills/execute-task/tests/fixtures/QA-903-visual-figma.md +40 -0
- package/src/skills/execute-task/tests/fixtures/TASK-905-done-with-typo.md +36 -0
- package/src/skills/execute-task/tests/index.yaml +39 -0
- package/src/skills/execute-task/tests/rubrics/no-duplicate-dod.md +22 -0
- package/src/skills/execute-task/tests/rubrics/no-foreign-ticket-edit.md +20 -0
- package/src/skills/execute-task/tests/rubrics/no-ticket-creation.md +21 -0
- package/src/skills/execute-task/tests/rubrics/ticket-fields-updated.md +23 -0
- package/src/skills/execute-task/tests/rubrics/verification-proportionality.md +22 -0
- package/src/skills/execute-task/workflows/execute.md +104 -0
- package/src/skills/manual-testing/README.md +63 -0
- package/src/skills/manual-testing/SKILL.md +176 -0
- package/src/skills/manual-testing/algorithms/blocked-tool-strategy.md +74 -0
- package/src/skills/manual-testing/algorithms/bug-severity.md +73 -0
- package/src/skills/manual-testing/algorithms/mcp-budget.md +97 -0
- package/src/skills/manual-testing/algorithms/test-prioritization.md +69 -0
- package/src/skills/manual-testing/knowledge/browser-extension-testing.md +102 -0
- package/src/skills/manual-testing/knowledge/browser-tools.md +114 -0
- package/src/skills/manual-testing/knowledge/desktop-tools-advanced.md +92 -0
- package/src/skills/manual-testing/knowledge/desktop-tools-core.md +76 -0
- package/src/skills/manual-testing/knowledge/sandbox-advanced.md +83 -0
- package/src/skills/manual-testing/knowledge/sandbox-core.md +67 -0
- package/src/skills/manual-testing/knowledge/stateful-edge-cases.md +69 -0
- package/src/skills/manual-testing/knowledge/test-case-design.md +107 -0
- package/src/skills/manual-testing/knowledge/testing-types.md +45 -0
- package/src/skills/manual-testing/templates/bug-report.md +52 -0
- package/src/skills/manual-testing/templates/test-case.md +34 -0
- package/src/skills/manual-testing/templates/test-plan.md +97 -0
- package/src/skills/manual-testing/templates/test-session-report.md +56 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md +34 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +32 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +30 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/judge.json +163 -0
- 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 +7 -0
- 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 +4 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-2.md +15 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-glm/trial-3.md +8 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-1.md +5 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-2.md +7 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/kilo-minimax/trial-3.md +7 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/meta.json +114 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001-sandbox-mandatory.yaml +38 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-1.md +44 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +32 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +47 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/judge.json +163 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-1.md +19 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-2.md +15 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-deepseek/trial-3.md +24 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-1.md +19 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-2.md +13 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-glm/trial-3.md +18 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-1.md +21 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-2.md +15 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/kilo-minimax/trial-3.md +14 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/meta.json +114 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002-visual-tc-screenshot.yaml +37 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-1.md +76 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-2.md +71 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/claude-sonnet/trial-3.md +85 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/judge.json +46 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003/current/meta.json +36 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-003-qa-non-ui-assertion.yaml +65 -0
- package/src/skills/manual-testing/tests/index.yaml +30 -0
- package/src/skills/manual-testing/tests/last-run-tc001-sonnet.log +140 -0
- package/src/skills/manual-testing/tests/last-run-tc002.log +1 -0
- package/src/skills/manual-testing/tests/last-run.log +1469 -0
- package/src/skills/manual-testing/tests/rubrics/qa-non-ui-assertion.md +31 -0
- package/src/skills/manual-testing/tests/rubrics/sandbox-mandatory.md +20 -0
- package/src/skills/manual-testing/tests/rubrics/visual-tc-screenshot.md +21 -0
- package/src/skills/manual-testing/workflows/acceptance.md +80 -0
- package/src/skills/manual-testing/workflows/exploratory.md +84 -0
- package/src/skills/manual-testing/workflows/regression.md +76 -0
- package/src/skills/manual-testing/workflows/smoke.md +109 -0
- package/src/skills/manual-testing/workflows/test-plan.md +75 -0
- package/src/skills/review-result/README.md +59 -0
- package/src/skills/review-result/SKILL.md +138 -0
- package/src/skills/review-result/algorithms/verification.md +112 -0
- package/src/skills/review-result/knowledge/dod-patterns.md +115 -0
- package/src/skills/review-result/scripts/verify-artifacts.js +384 -0
- package/src/skills/review-result/templates/verdict.md +153 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-1.md +22 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-2.md +7 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-haiku/trial-3.md +21 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-1.md +6 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-2.md +6 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/claude-sonnet/trial-3.md +18 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/judge.json +164 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-1.md +5 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-2.md +7 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-deepseek/trial-3.md +6 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-1.md +49 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-2.md +28 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-glm/trial-3.md +37 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-1.md +22 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-2.md +13 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/kilo-minimax/trial-3.md +21 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001/current/meta.json +116 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-001-visual-tc-trigger.yaml +51 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-1.md +23 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-2.md +22 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-haiku/trial-3.md +28 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-1.md +4 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-2.md +36 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/claude-sonnet/trial-3.md +4 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/judge.json +163 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-deepseek/trial-1.md +4 -0
- 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 +4 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-1.md +39 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-2.md +25 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-glm/trial-3.md +32 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-1.md +34 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-2.md +8 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/kilo-minimax/trial-3.md +23 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002/current/meta.json +115 -0
- package/src/skills/review-result/tests/cases/TC-REVIEW-RESULT-002-path-line-suffix.yaml +39 -0
- package/src/skills/review-result/tests/fixtures/IMPL-902-path-with-line.md +43 -0
- package/src/skills/review-result/tests/fixtures/QA-901-visual-button.md +46 -0
- package/src/skills/review-result/tests/index.yaml +25 -0
- package/src/skills/review-result/tests/rubrics/path-line-suffix.md +19 -0
- package/src/skills/review-result/tests/rubrics/visual-tc-trigger.md +19 -0
- package/src/skills/review-result/workflows/review.md +209 -0
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Тестирование в Windows Sandbox — Core
|
|
2
|
+
|
|
3
|
+
Справочник по тестированию desktop-приложений в изолированном окружении Windows Sandbox.
|
|
4
|
+
|
|
5
|
+
## Архитектура
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────────────┐ ┌──────────────────────────┐
|
|
9
|
+
│ Хост (Claude Code) │ HTTP │ Windows Sandbox │
|
|
10
|
+
│ MCP Client │◄──────►│ windows-mcp (HTTP :8000) │
|
|
11
|
+
│ (sandbox-desktop) │ │ ↓ управляет UI │
|
|
12
|
+
└─────────────────────┘ └──────────────────────────┘
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Инструменты: `mcp__sandbox-desktop__*` (screenshot, click, type, snapshot и т.д.). Подключение — `.mcp.json` → `"url": "http://<sandbox-ip>:8000/mcp"`. Пути и конфигурация .wsb — см. `CLAUDE.md` проекта. Расширенная настройка .wsb → `knowledge/sandbox-advanced.md`.
|
|
16
|
+
|
|
17
|
+
## Quick-start checklist
|
|
18
|
+
|
|
19
|
+
Минимальный набор проверок перед тест-кейсами (3-4 MCP-вызова):
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
1. Screenshot → MCP работает, Sandbox активен
|
|
23
|
+
2. PowerShell → Test-Path "<path-to-portable-vscode>"
|
|
24
|
+
3. PowerShell → Test-Path "<path-to-test-workspace>"
|
|
25
|
+
4. → Запускай VSCode и тест-кейсы
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**⛔ Hard gate:** если к 5-му MCP-вызову не начал первый TC — СТОП, пересмотри план.
|
|
29
|
+
|
|
30
|
+
**Антипаттерны:**
|
|
31
|
+
- 10+ MCP-вызовов на разведку (`Get-ChildItem`, `Test-Path`, `echo test`) до первого TC
|
|
32
|
+
- Установка/запуск продукта из CLI вместо UI — тестирует другой code path
|
|
33
|
+
- Перезапись конфигов без проверки существующих
|
|
34
|
+
- **BOM-кодировка:** PowerShell 5.x `Set-Content -Encoding utf8` пишет с BOM. Используй `[System.IO.File]::WriteAllText($path, $content)` или `-Encoding utf8NoBOM` (PS 7+)
|
|
35
|
+
- **Backslash в JSON:** используй `ConvertTo-Json` для hashtable, не собирай JSON строками
|
|
36
|
+
- **Parent directory traversal:** приложения ищут конфиг в parent dirs. Для теста «нет конфига» нужен workspace вне дерева проекта. Если невозможно за 3-5 вызовов — TC = BLOCKED
|
|
37
|
+
|
|
38
|
+
## Персистенция evidence
|
|
39
|
+
|
|
40
|
+
**Sandbox эфемерен — всё удаляется при закрытии.** Сохраняй evidence на хост.
|
|
41
|
+
|
|
42
|
+
### ReadOnly: false (рекомендуемый)
|
|
43
|
+
|
|
44
|
+
Сохраняй скриншоты напрямую в `reports/` — они пишутся на хост (1 MCP-вызов):
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
PowerShell → "Add-Type -AssemblyName System.Windows.Forms,System.Drawing; $b = [System.Windows.Forms.Screen]::PrimaryScreen.Bounds; $bmp = New-Object System.Drawing.Bitmap($b.Width,$b.Height); $g = [System.Drawing.Graphics]::FromImage($bmp); $g.CopyFromScreen(0,0,0,0,$b.Size); $bmp.Save('<sandbox-project-path>\reports\TICKET-ID-screenshot-TC-NNN.png'); $g.Dispose(); $bmp.Dispose()"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### ReadOnly: true (fallback — 2 MCP-вызова)
|
|
51
|
+
|
|
52
|
+
Бинарная запись в ReadOnly mapped folder заблокирована. Сохрани в writable folder внутри Sandbox, затем скопируй на хост через Bash.
|
|
53
|
+
|
|
54
|
+
### Self-check
|
|
55
|
+
|
|
56
|
+
После сохранения **проверь на хосте** (не в Sandbox): `ls reports/*.png`. Если 0 файлов — evidence потеряны.
|
|
57
|
+
|
|
58
|
+
## Ключевые ограничения
|
|
59
|
+
|
|
60
|
+
| Ограничение | Обходной путь |
|
|
61
|
+
|------------|---------------|
|
|
62
|
+
| Одноразовость | Сохранять через mapped folders (ReadOnly: false) |
|
|
63
|
+
| Один экземпляр | Последовательное тестирование |
|
|
64
|
+
| FileSystem events не пробрасываются | TC с FileWatcher → BLOCKED |
|
|
65
|
+
| Латентность MCP 3-10 сек | `Wait` обычно не нужен |
|
|
66
|
+
|
|
67
|
+
Расширенные сценарии (MCP disconnect, continuation, .wsb конфигурация) → `knowledge/sandbox-advanced.md`.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: stateful-edge-cases
|
|
3
|
+
description: >
|
|
4
|
+
Edge-cases stateful-приложений для manual-testing. Помогает тестировщику
|
|
5
|
+
распознавать пропущенные паттерны в ходе тестирования, не перечисляет ТС явно.
|
|
6
|
+
load_strategy: lazy
|
|
7
|
+
load_when: "task.type == 'qa' AND app.type == 'stateful'"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Edge-cases stateful-приложений
|
|
11
|
+
|
|
12
|
+
## Когда загружать
|
|
13
|
+
|
|
14
|
+
Загружай этот модуль, если тестируемое приложение хранит состояние между сессиями (история, настройки, данные, логи).
|
|
15
|
+
|
|
16
|
+
## Ключевые паттерны
|
|
17
|
+
|
|
18
|
+
### 1. Persistence после перезапуска
|
|
19
|
+
|
|
20
|
+
**Признак:** приложение сохраняет данные между сессиями.
|
|
21
|
+
|
|
22
|
+
**Что проверять:**
|
|
23
|
+
- После перезапуска приложения — данные из предыдущей сессии присутствуют
|
|
24
|
+
- Частичные данные (незавершённая операция) — корректно восстановлены или отброшены
|
|
25
|
+
- После принудительного завершения (crash, kill) — приложение запускается без ошибок
|
|
26
|
+
|
|
27
|
+
**Сигнал:** любой TC, создающий/изменяющий данные → проверь: данные есть после перезапуска.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
### 2. Накопление данных (multi-run)
|
|
32
|
+
|
|
33
|
+
**Признак:** функция создаёт записи при каждом запуске (история, логи, очередь).
|
|
34
|
+
|
|
35
|
+
**Что проверять:**
|
|
36
|
+
- После N запусков операции — в хранилище ровно N записей (не 1 перезаписанная)
|
|
37
|
+
- При ожидаемом порядке (FIFO/LIFO) — порядок соответствует
|
|
38
|
+
- При достижении лимита хранилища — поведение определено (обрезка, ошибка, очистка)
|
|
39
|
+
|
|
40
|
+
**Сигнал:** TC использует слова «история», «журнал», «список» → запусти операцию дважды и проверь количество записей.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
### 3. Нестандартные конфигурации
|
|
45
|
+
|
|
46
|
+
**Признак:** поведение приложения зависит от конфигурационного файла или настроек.
|
|
47
|
+
|
|
48
|
+
**Что проверять:**
|
|
49
|
+
- Отсутствующий конфиг — приложение применяет значения по умолчанию без ошибок
|
|
50
|
+
- Неполный конфиг (часть полей отсутствует) — незаданные поля заполняются дефолтами
|
|
51
|
+
- Граничные значения в конфиге — приложение корректно обрабатывает минимум/максимум
|
|
52
|
+
|
|
53
|
+
**Сигнал:** TC ссылается на конфиг → дополнительно проверь: что если конфиг отсутствует или одно поле удалено.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Что НЕ входит в этот модуль
|
|
58
|
+
|
|
59
|
+
- **Data assertions** (конкретные ожидаемые значения) → ответственность create-plan
|
|
60
|
+
- **Перечисление entry points** → ответственность create-plan
|
|
61
|
+
- **Генерация тест-кейсов** → используй `knowledge/test-case-design.md`
|
|
62
|
+
|
|
63
|
+
## Таблица применимости
|
|
64
|
+
|
|
65
|
+
| Признак в тикете/задаче | Применимый паттерн |
|
|
66
|
+
|-------------------------|--------------------|
|
|
67
|
+
| «сохраняет состояние», «история», «настройки» | Persistence (п.1) |
|
|
68
|
+
| «каждый запуск», «накапливается», «лог», «список» | Multi-run (п.2) |
|
|
69
|
+
| «конфиг», «настройки», «config» | Config variations (п.3) |
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Техники проектирования тест-кейсов
|
|
2
|
+
|
|
3
|
+
Справочник по техникам проектирования тест-кейсов для обеспечения полноты покрытия.
|
|
4
|
+
|
|
5
|
+
## Основные техники
|
|
6
|
+
|
|
7
|
+
### Equivalence Partitioning (классы эквивалентности)
|
|
8
|
+
|
|
9
|
+
Разделение входных данных на группы, где поведение системы одинаково.
|
|
10
|
+
|
|
11
|
+
| Класс | Описание | Пример (поле «Возраст», допустимо 18-99) |
|
|
12
|
+
|-------|----------|------------------------------------------|
|
|
13
|
+
| Валидный | Данные в допустимом диапазоне | 25, 50, 75 |
|
|
14
|
+
| Невалидный (ниже) | Ниже минимума | -1, 0, 17 |
|
|
15
|
+
| Невалидный (выше) | Выше максимума | 100, 999 |
|
|
16
|
+
| Невалидный (тип) | Неправильный тип данных | "abc", "", null |
|
|
17
|
+
|
|
18
|
+
**Правило:** достаточно одного значения из каждого класса.
|
|
19
|
+
|
|
20
|
+
### Boundary Value Analysis (граничные значения)
|
|
21
|
+
|
|
22
|
+
Проверка значений на границах допустимых диапазонов.
|
|
23
|
+
|
|
24
|
+
| Граница | Значения для проверки | Пример (18-99) |
|
|
25
|
+
|---------|----------------------|----------------|
|
|
26
|
+
| Min - 1 | Чуть ниже минимума | 17 |
|
|
27
|
+
| Min | Минимальное допустимое | 18 |
|
|
28
|
+
| Min + 1 | Чуть выше минимума | 19 |
|
|
29
|
+
| Max - 1 | Чуть ниже максимума | 98 |
|
|
30
|
+
| Max | Максимальное допустимое | 99 |
|
|
31
|
+
| Max + 1 | Чуть выше максимума | 100 |
|
|
32
|
+
|
|
33
|
+
### Decision Table (таблица решений)
|
|
34
|
+
|
|
35
|
+
Для комбинаций условий и ожидаемых действий.
|
|
36
|
+
|
|
37
|
+
| Условие 1 | Условие 2 | Условие 3 | Ожидаемое действие |
|
|
38
|
+
|-----------|-----------|-----------|-------------------|
|
|
39
|
+
| Да | Да | Да | Действие A |
|
|
40
|
+
| Да | Да | Нет | Действие B |
|
|
41
|
+
| Да | Нет | — | Действие C |
|
|
42
|
+
| Нет | — | — | Действие D |
|
|
43
|
+
|
|
44
|
+
**Применять когда:** бизнес-логика зависит от комбинации нескольких условий.
|
|
45
|
+
|
|
46
|
+
### State Transition (переходы состояний)
|
|
47
|
+
|
|
48
|
+
Для объектов с жизненным циклом.
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
[Создан] → оплата → [Оплачен] → доставка → [Доставлен]
|
|
52
|
+
↓ ↓
|
|
53
|
+
отмена возврат
|
|
54
|
+
↓ ↓
|
|
55
|
+
[Отменён] [Возвращён]
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Проверяй:
|
|
59
|
+
- Все допустимые переходы
|
|
60
|
+
- Попытки недопустимых переходов (отменённый → оплачен)
|
|
61
|
+
- Состояние данных после каждого перехода
|
|
62
|
+
|
|
63
|
+
### Error Guessing (угадывание ошибок)
|
|
64
|
+
|
|
65
|
+
Основано на опыте — типичные места возникновения багов:
|
|
66
|
+
|
|
67
|
+
| Категория | Что проверять |
|
|
68
|
+
|-----------|-------------|
|
|
69
|
+
| **Пустые значения** | Пустые поля, null, undefined, пустые массивы |
|
|
70
|
+
| **Спецсимволы** | `<script>`, `'; DROP TABLE`, `../`, `%00` |
|
|
71
|
+
| **Unicode** | Эмодзи, RTL-текст, иероглифы, диакритика |
|
|
72
|
+
| **Длинные строки** | 1000+ символов, переполнение UI |
|
|
73
|
+
| **Числа** | 0, -1, MAX_INT, дробные, NaN |
|
|
74
|
+
| **Даты** | 29 февраля, 31 ноября, смена часовых поясов |
|
|
75
|
+
| **Файлы** | 0 байт, огромные файлы, неправильный формат |
|
|
76
|
+
| **Параллельность** | Два пользователя редактируют одно, двойной клик |
|
|
77
|
+
| **Сеть** | Медленная сеть, обрыв, повтор запроса |
|
|
78
|
+
|
|
79
|
+
## Структура тест-кейса
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
ID: QA-TC-001
|
|
83
|
+
Название: Авторизация с валидным email и паролем
|
|
84
|
+
Приоритет: P0
|
|
85
|
+
Предусловия: Пользователь зарегистрирован (email: test@example.com, пароль: Test123!)
|
|
86
|
+
Шаги:
|
|
87
|
+
1. Открыть /login
|
|
88
|
+
2. Ввести email: test@example.com
|
|
89
|
+
3. Ввести пароль: Test123!
|
|
90
|
+
4. Нажать кнопку «Войти»
|
|
91
|
+
Ожидаемый результат:
|
|
92
|
+
- Редирект на /dashboard
|
|
93
|
+
- Отображается имя пользователя в хедере
|
|
94
|
+
- Cookie/токен сессии установлен
|
|
95
|
+
Постусловия: Пользователь авторизован
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Чеклист полноты тест-кейсов
|
|
99
|
+
|
|
100
|
+
- [ ] Есть happy path (позитивный сценарий)
|
|
101
|
+
- [ ] Есть негативные сценарии (невалидные данные)
|
|
102
|
+
- [ ] Граничные значения проверены
|
|
103
|
+
- [ ] Тестовые данные конкретные (не «валидный email», а «user@test.com»)
|
|
104
|
+
- [ ] Шаги однозначны и воспроизводимы
|
|
105
|
+
- [ ] Ожидаемый результат конкретен и проверяем
|
|
106
|
+
|
|
107
|
+
<!-- РАСШИРЕНИЕ: добавляй новые техники проектирования тест-кейсов ниже -->
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Типы тестирования
|
|
2
|
+
|
|
3
|
+
Справочник по типам тестирования, их целям и применимости.
|
|
4
|
+
|
|
5
|
+
## Основные типы
|
|
6
|
+
|
|
7
|
+
| Тип | Цель | Когда применять | Охват |
|
|
8
|
+
|-----|------|----------------|-------|
|
|
9
|
+
| **Smoke** | Базовая работоспособность | После каждого деплоя | 5-15 критических сценариев |
|
|
10
|
+
| **Regression** | Нет регрессии от изменений | Перед релизом, после крупных изменений | Полный набор тест-кейсов |
|
|
11
|
+
| **Exploratory** | Поиск неочевидных багов | После стабилизации фичи | Свободное исследование |
|
|
12
|
+
| **Acceptance (UAT)** | Соответствие бизнес-требованиям | Финальная стадия перед релизом | По acceptance criteria |
|
|
13
|
+
| **Sanity** | Узкая проверка конкретного фикса | После hotfix | 1-3 сценария вокруг фикса |
|
|
14
|
+
|
|
15
|
+
## Дополнительные типы
|
|
16
|
+
|
|
17
|
+
| Тип | Цель | Когда применять |
|
|
18
|
+
|-----|------|----------------|
|
|
19
|
+
| **Cross-browser** | Работа в разных браузерах | Для web-приложений с широкой аудиторией |
|
|
20
|
+
| **Accessibility (a11y)** | Доступность для людей с ограничениями | Всегда для публичных интерфейсов, WCAG 2.1 |
|
|
21
|
+
| **Usability** | Удобство использования | При новых фичах, редизайне |
|
|
22
|
+
| **Visual** | Корректность отображения UI | При изменениях в стилях, вёрстке |
|
|
23
|
+
| **Negative** | Поведение при невалидных данных | Для форм, API, полей ввода |
|
|
24
|
+
|
|
25
|
+
## Подходы к тестированию
|
|
26
|
+
|
|
27
|
+
| Подход | Описание | Когда использовать |
|
|
28
|
+
|--------|----------|-------------------|
|
|
29
|
+
| **Risk-Based** | Приоритизация по бизнес-риску | Ограниченное время, нужна максимальная отдача |
|
|
30
|
+
| **Context-Driven** | Адаптация под контекст проекта | Всегда — нет универсального подхода |
|
|
31
|
+
| **Shift-Left** | Тестирование на ранних стадиях | Интеграция QA с момента требований |
|
|
32
|
+
| **Session-Based (SBTM)** | Таймбоксированные сессии исследования | Исследовательское тестирование |
|
|
33
|
+
|
|
34
|
+
## Матрица выбора типа тестирования
|
|
35
|
+
|
|
36
|
+
| Ситуация | Рекомендуемый тип |
|
|
37
|
+
|----------|------------------|
|
|
38
|
+
| Только что задеплоили | Smoke |
|
|
39
|
+
| Готовимся к релизу | Regression |
|
|
40
|
+
| Новая фича готова | Acceptance + Exploratory |
|
|
41
|
+
| Исправили баг | Sanity + Smoke |
|
|
42
|
+
| Жалобы на UX | Usability + Exploratory |
|
|
43
|
+
| Новый дизайн | Visual + Cross-browser |
|
|
44
|
+
|
|
45
|
+
<!-- РАСШИРЕНИЕ: добавляй новые типы тестирования и подходы ниже -->
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Шаблон: Баг-репорт (секция внутри QA-тикета)
|
|
2
|
+
|
|
3
|
+
> **⛔ Не создавай отдельный тикет для дефекта.** Этот шаблон — формат секции FAIL внутри QA-тикета.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
## DEFECT: [{Модуль}] {Краткое описание проблемы}
|
|
7
|
+
|
|
8
|
+
**Severity:** CRITICAL / HIGH / MEDIUM / LOW
|
|
9
|
+
**Priority:** P0 / P1 / P2 / P3 / P4
|
|
10
|
+
**Найден при:** {ID тест-кейса или описание сессии}
|
|
11
|
+
|
|
12
|
+
### Окружение
|
|
13
|
+
|
|
14
|
+
| Параметр | Значение |
|
|
15
|
+
|----------|----------|
|
|
16
|
+
| URL | {URL страницы} |
|
|
17
|
+
| Браузер | {Chrome 120 / Firefox 121 / Safari 17 / ...} |
|
|
18
|
+
| ОС | {Windows 11 / macOS 14 / ...} |
|
|
19
|
+
| Разрешение | {1920×1080 / 375×667 / ...} |
|
|
20
|
+
| Стенд | {production / staging / dev} |
|
|
21
|
+
|
|
22
|
+
### Шаги воспроизведения
|
|
23
|
+
|
|
24
|
+
1. {Конкретный шаг 1}
|
|
25
|
+
2. {Конкретный шаг 2}
|
|
26
|
+
3. {Конкретный шаг 3}
|
|
27
|
+
4. ...
|
|
28
|
+
|
|
29
|
+
### Фактический результат
|
|
30
|
+
|
|
31
|
+
{Что происходит на самом деле}
|
|
32
|
+
|
|
33
|
+
### Ожидаемый результат
|
|
34
|
+
|
|
35
|
+
{Что должно происходить}
|
|
36
|
+
|
|
37
|
+
### Скриншоты / Видео
|
|
38
|
+
|
|
39
|
+
- {screenshot_1.png — описание}
|
|
40
|
+
- {screenshot_2.png — описание}
|
|
41
|
+
|
|
42
|
+
### Дополнительная информация
|
|
43
|
+
|
|
44
|
+
- **Console errors:** {JS-ошибки из консоли, если есть}
|
|
45
|
+
- **Network:** {Проблемные запросы: статус-код, URL}
|
|
46
|
+
- **Частота воспроизведения:** Always / Often / Sometimes / Rarely
|
|
47
|
+
- **Workaround:** {Обходной путь, если есть}
|
|
48
|
+
|
|
49
|
+
### Обоснование Severity
|
|
50
|
+
|
|
51
|
+
{1-2 предложения: почему именно такая серьёзность}
|
|
52
|
+
```
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Шаблон: Тест-кейс
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
## QA-TC-{NNN}: {Название тест-кейса}
|
|
5
|
+
|
|
6
|
+
**Приоритет:** P0 / P1 / P2 / P3
|
|
7
|
+
**Тип:** Functional / Negative / Boundary / Cross-browser / Accessibility
|
|
8
|
+
**Связь:** {ID требования или user story}
|
|
9
|
+
|
|
10
|
+
### Предусловия
|
|
11
|
+
|
|
12
|
+
- {Состояние системы перед началом теста}
|
|
13
|
+
- {Тестовые данные, аккаунты, окружение}
|
|
14
|
+
|
|
15
|
+
### Шаги
|
|
16
|
+
|
|
17
|
+
| # | Действие | Ожидаемый результат |
|
|
18
|
+
|---|----------|-------------------|
|
|
19
|
+
| 1 | {Конкретное действие} | {Конкретный ожидаемый результат} |
|
|
20
|
+
| 2 | {Конкретное действие} | {Конкретный ожидаемый результат} |
|
|
21
|
+
| 3 | ... | ... |
|
|
22
|
+
|
|
23
|
+
### Тестовые данные
|
|
24
|
+
|
|
25
|
+
| Параметр | Значение |
|
|
26
|
+
|----------|----------|
|
|
27
|
+
| {Поле 1} | {Конкретное значение} |
|
|
28
|
+
| {Поле 2} | {Конкретное значение} |
|
|
29
|
+
|
|
30
|
+
### Постусловия
|
|
31
|
+
|
|
32
|
+
- {Состояние системы после теста}
|
|
33
|
+
- {Что нужно очистить / откатить}
|
|
34
|
+
```
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Шаблон: Тест-план
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# Тест-план: {Название фичи / релиза}
|
|
5
|
+
|
|
6
|
+
**Дата:** {YYYY-MM-DD}
|
|
7
|
+
**Автор:** QA
|
|
8
|
+
**Версия:** 1.0
|
|
9
|
+
|
|
10
|
+
## 1. Цели тестирования
|
|
11
|
+
|
|
12
|
+
{Что проверяем и зачем}
|
|
13
|
+
|
|
14
|
+
## 2. Scope
|
|
15
|
+
|
|
16
|
+
### В скоупе
|
|
17
|
+
|
|
18
|
+
- {Модуль / фича 1}
|
|
19
|
+
- {Модуль / фича 2}
|
|
20
|
+
|
|
21
|
+
### Вне скоупа
|
|
22
|
+
|
|
23
|
+
- {Что НЕ тестируем и почему}
|
|
24
|
+
|
|
25
|
+
## 3. Стратегия тестирования
|
|
26
|
+
|
|
27
|
+
| Тип тестирования | Применяется | Обоснование |
|
|
28
|
+
|-----------------|-------------|-------------|
|
|
29
|
+
| Smoke | Да / Нет | {Почему} |
|
|
30
|
+
| Functional | Да / Нет | {Почему} |
|
|
31
|
+
| Regression | Да / Нет | {Почему} |
|
|
32
|
+
| Cross-browser | Да / Нет | {Почему} |
|
|
33
|
+
| Accessibility | Да / Нет | {Почему} |
|
|
34
|
+
| Exploratory | Да / Нет | {Почему} |
|
|
35
|
+
|
|
36
|
+
## 4. Окружение
|
|
37
|
+
|
|
38
|
+
### Браузеры
|
|
39
|
+
|
|
40
|
+
| Браузер | Версия | Приоритет |
|
|
41
|
+
|---------|--------|-----------|
|
|
42
|
+
| {Chrome} | {latest} | {P0} |
|
|
43
|
+
| ... | ... | ... |
|
|
44
|
+
|
|
45
|
+
### Устройства / Разрешения
|
|
46
|
+
|
|
47
|
+
| Устройство | Разрешение | Приоритет |
|
|
48
|
+
|-----------|-----------|-----------|
|
|
49
|
+
| {Desktop} | {1920×1080} | {P0} |
|
|
50
|
+
| {Mobile} | {375×667} | {P1} |
|
|
51
|
+
|
|
52
|
+
### Стенды
|
|
53
|
+
|
|
54
|
+
| Стенд | URL | Назначение |
|
|
55
|
+
|-------|-----|-----------|
|
|
56
|
+
| {staging} | {URL} | {Основное тестирование} |
|
|
57
|
+
|
|
58
|
+
## 5. Тест-кейсы
|
|
59
|
+
|
|
60
|
+
### P0 — Critical Path
|
|
61
|
+
|
|
62
|
+
| ID | Название | Тип | Статус |
|
|
63
|
+
|----|----------|-----|--------|
|
|
64
|
+
| QA-TC-001 | {Название} | {Functional} | {Pending} |
|
|
65
|
+
| ... | ... | ... | ... |
|
|
66
|
+
|
|
67
|
+
### P1 — Major Flows
|
|
68
|
+
|
|
69
|
+
| ID | Название | Тип | Статус |
|
|
70
|
+
|----|----------|-----|--------|
|
|
71
|
+
| ... | ... | ... | ... |
|
|
72
|
+
|
|
73
|
+
### P2 — Edge Cases
|
|
74
|
+
|
|
75
|
+
| ID | Название | Тип | Статус |
|
|
76
|
+
|----|----------|-----|--------|
|
|
77
|
+
| ... | ... | ... | ... |
|
|
78
|
+
|
|
79
|
+
## 6. Критерии входа
|
|
80
|
+
|
|
81
|
+
- [ ] Фича задеплоена на тестовый стенд
|
|
82
|
+
- [ ] Тестовые данные подготовлены
|
|
83
|
+
- [ ] Нет блокирующих багов из предыдущих итераций
|
|
84
|
+
|
|
85
|
+
## 7. Критерии выхода
|
|
86
|
+
|
|
87
|
+
- [ ] Все P0 тест-кейсы: PASS
|
|
88
|
+
- [ ] Все P1 тест-кейсы: PASS (или обоснован SKIP)
|
|
89
|
+
- [ ] Нет открытых CRITICAL/HIGH багов
|
|
90
|
+
- [ ] Отчёт о тестировании сформирован
|
|
91
|
+
|
|
92
|
+
## 8. Риски
|
|
93
|
+
|
|
94
|
+
| Риск | Вероятность | Влияние | Митигация |
|
|
95
|
+
|------|-------------|---------|-----------|
|
|
96
|
+
| {Описание} | {High/Med/Low} | {High/Med/Low} | {Как снизить} |
|
|
97
|
+
```
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Шаблон: Отчёт о тестовой сессии
|
|
2
|
+
|
|
3
|
+
```markdown
|
|
4
|
+
# Отчёт о тестировании: {Название сессии}
|
|
5
|
+
|
|
6
|
+
**Дата:** {YYYY-MM-DD}
|
|
7
|
+
**Тип тестирования:** Smoke / Regression / Exploratory / Acceptance
|
|
8
|
+
**Тестировщик:** QA
|
|
9
|
+
**Окружение:** {URL стенда}
|
|
10
|
+
**Браузер:** {Браузер и версия}
|
|
11
|
+
|
|
12
|
+
## Вердикт
|
|
13
|
+
|
|
14
|
+
**{PASSED / FAILED / PASSED WITH ISSUES / ACCEPTED / REJECTED}**
|
|
15
|
+
|
|
16
|
+
{1-2 предложения обоснование вердикта}
|
|
17
|
+
|
|
18
|
+
## Статистика
|
|
19
|
+
|
|
20
|
+
| Метрика | Значение |
|
|
21
|
+
|---------|----------|
|
|
22
|
+
| Всего тест-кейсов | {N} |
|
|
23
|
+
| Пройдено (PASS) | {N} ({%}) |
|
|
24
|
+
| Упало (FAIL) | {N} ({%}) |
|
|
25
|
+
| Заблокировано (BLOCKED) | {N} ({%}) |
|
|
26
|
+
| Пропущено (SKIPPED) | {N} ({%}) |
|
|
27
|
+
|
|
28
|
+
## Результаты по тест-кейсам
|
|
29
|
+
|
|
30
|
+
| # | ID | Название | Приоритет | Статус | Комментарий |
|
|
31
|
+
|---|-----|----------|-----------|--------|-------------|
|
|
32
|
+
| 1 | QA-TC-001 | {Название} | P0 | PASS / FAIL | {Ссылка на баг если FAIL} |
|
|
33
|
+
| 2 | ... | ... | ... | ... | ... |
|
|
34
|
+
|
|
35
|
+
## Найденные баги
|
|
36
|
+
|
|
37
|
+
| # | TC | Название | Severity | Priority |
|
|
38
|
+
|---|----|----------|----------|----------|
|
|
39
|
+
| 1 | TC-{NNN} | {Краткое описание} | {CRITICAL} | {P0} |
|
|
40
|
+
| 2 | ... | ... | ... | ... |
|
|
41
|
+
|
|
42
|
+
(Подробности — в секциях DEFECT внутри QA-тикета)
|
|
43
|
+
|
|
44
|
+
## Наблюдения
|
|
45
|
+
|
|
46
|
+
{Заметки, UX-проблемы, рекомендации, непокрытые области — всё, что не является формальным багом, но заслуживает внимания}
|
|
47
|
+
|
|
48
|
+
## Скриншоты
|
|
49
|
+
|
|
50
|
+
{Ключевые скриншоты сессии с подписями}
|
|
51
|
+
|
|
52
|
+
## Рекомендации
|
|
53
|
+
|
|
54
|
+
- {Рекомендация 1}
|
|
55
|
+
- {Рекомендация 2}
|
|
56
|
+
```
|
package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-1.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
## Стратегия тестирования VSCode-расширения
|
|
2
|
+
|
|
3
|
+
### Инструмент
|
|
4
|
+
|
|
5
|
+
**Windows-MCP через Windows Sandbox** — единственный допустимый вариант для desktop-приложений согласно матрице выбора инструмента:
|
|
6
|
+
|
|
7
|
+
| Тип приложения | Инструмент | Knowledge |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| Desktop (VSCode-расширение) | **Windows-MCP через Sandbox** | `desktop-tools-core.md` + `sandbox-core.md` |
|
|
10
|
+
|
|
11
|
+
### Среда запуска: Windows Sandbox
|
|
12
|
+
|
|
13
|
+
**Обязательно** — прямое тестирование на хосте запрещено по двум причинам:
|
|
14
|
+
1. **Загрязнение рабочей среды** — расширение может изменить настройки VSCode, установить зависимости, создать файлы
|
|
15
|
+
2. **Нет чистого состояния** — хост уже содержит расширения, настройки, историю; воспроизводимость нарушена
|
|
16
|
+
|
|
17
|
+
Sandbox даёт изолированную Windows-среду с чистым VSCode при каждом запуске.
|
|
18
|
+
|
|
19
|
+
### Последовательность подготовки
|
|
20
|
+
|
|
21
|
+
1. Загрузить `knowledge/sandbox-core.md` — quick-start Sandbox, персистенция evidence
|
|
22
|
+
2. Загрузить `knowledge/desktop-tools-core.md` — команды Windows-MCP, навигация, бюджет Snapshot
|
|
23
|
+
3. Прочитать `../shared/README.md` (если существует) — проектно-специфичные пути и конфигурация
|
|
24
|
+
4. Установить VSCode + расширение в Sandbox
|
|
25
|
+
5. Выполнять тест-кейсы через Windows-MCP (клики, ввод, навигация)
|
|
26
|
+
6. Получать evidence через **a11y tree (Snapshot)** — основной инструмент проверки состояния UI; скриншоты — только для визуальных критериев (принцип 8)
|
|
27
|
+
|
|
28
|
+
### Важно про evidence в Sandbox
|
|
29
|
+
|
|
30
|
+
Файлы внутри Sandbox эфемерны — при закрытии Sandbox всё уничтожается. Скриншоты и другие артефакты нужно выносить на хост до завершения сессии. Детали — в `knowledge/sandbox-core.md` → «Персистенция evidence».
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
Если у тебя есть конкретный тикет `QA-*` — передай его, и я загружу нужные модули и начну выполнение по соответствующему workflow.
|
package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
## Стратегия тестирования VSCode-расширения
|
|
2
|
+
|
|
3
|
+
### Инструмент: Windows-MCP через Sandbox
|
|
4
|
+
|
|
5
|
+
VSCode-расширение — это **desktop-приложение**, поэтому по правилам скила:
|
|
6
|
+
|
|
7
|
+
| Параметр | Выбор | Обоснование |
|
|
8
|
+
|----------|-------|-------------|
|
|
9
|
+
| **Инструмент** | Windows-MCP | Desktop UI не доступен через Playwright/browser |
|
|
10
|
+
| **Среда** | Windows Sandbox | Обязательная изоляция для desktop-приложений |
|
|
11
|
+
| **Метод проверки** | a11y tree (Snapshot) | Основной способ верификации состояния UI в desktop |
|
|
12
|
+
|
|
13
|
+
### Почему именно Sandbox, а не хост?
|
|
14
|
+
|
|
15
|
+
1. **Изоляция** — расширение не загрязняет рабочую среду разработчика (настройки VS Code, установленные расширения, workspace state)
|
|
16
|
+
2. **Воспроизводимость** — каждый запуск начинается с чистого состояния, без накопленных артефактов
|
|
17
|
+
3. **Безопасность** — расширение может иметь side effects на файловую систему и реестр
|
|
18
|
+
|
|
19
|
+
### Следующие шаги перед запуском
|
|
20
|
+
|
|
21
|
+
1. Загрузить `knowledge/sandbox-core.md` — quick-start и персистенция evidence
|
|
22
|
+
2. Загрузить `knowledge/desktop-tools-core.md` — команды Windows-MCP, паттерны навигации
|
|
23
|
+
3. Проверить наличие `../shared/README.md` — проектно-специфичные пути и конфигурация
|
|
24
|
+
4. Определить тип тестирования (smoke / regression / acceptance / exploratory) → загрузить соответствующий workflow
|
|
25
|
+
|
|
26
|
+
### Что потребуется для старта
|
|
27
|
+
|
|
28
|
+
- Артефакт расширения (`.vsix` файл или путь к нему)
|
|
29
|
+
- Описание тест-кейсов или acceptance criteria
|
|
30
|
+
- Тикет `QA-*` с типом тестирования
|
|
31
|
+
|
|
32
|
+
Есть конкретный тикет для выполнения или нужно составить тест-план?
|
package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Согласно таблице выбора инструмента в скиле:
|
|
2
|
+
|
|
3
|
+
| Критерий | Решение |
|
|
4
|
+
|----------|---------|
|
|
5
|
+
| **Тип приложения** | Desktop (VSCode-расширение) |
|
|
6
|
+
| **Основной инструмент** | Windows-MCP |
|
|
7
|
+
| **Среда запуска** | **Windows Sandbox** (обязательно) |
|
|
8
|
+
| **Knowledge-модули** | `knowledge/desktop-tools-core.md` + `knowledge/sandbox-core.md` |
|
|
9
|
+
|
|
10
|
+
**Почему Sandbox, а не хост:**
|
|
11
|
+
|
|
12
|
+
Скил явно запрещает прямое тестирование на хосте — это загрязняет рабочую среду разработчика и не воспроизводит чистое состояние (расширение может вести себя иначе из-за существующих настроек, других расширений, кэша).
|
|
13
|
+
|
|
14
|
+
**Первые шаги перед тестированием:**
|
|
15
|
+
|
|
16
|
+
1. Проверить наличие `../shared/README.md` — прочитать и загрузить проектные модули
|
|
17
|
+
2. Загрузить `knowledge/sandbox-core.md` — настройка Sandbox, quick-start, персистенция evidence
|
|
18
|
+
3. Загрузить `knowledge/desktop-tools-core.md` — команды Windows-MCP, паттерны навигации, бюджет Snapshot
|
|
19
|
+
4. Определить тип тикета (SMOKE / ACCEPTANCE / REGRESSION / EXPLORATORY) → загрузить соответствующий workflow
|
|
20
|
+
|
|
21
|
+
**Общая схема:**
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
Windows Sandbox
|
|
25
|
+
└── VSCode (установить расширение)
|
|
26
|
+
└── Windows-MCP (управление UI)
|
|
27
|
+
└── Snapshot (a11y tree assertions как evidence)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Скриншоты — только если тикет требует их в DoD или TC содержит визуальный критерий (принцип 8).
|