workflow-ai 1.0.63 → 1.0.64
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/configs/config.yaml +134 -0
- package/configs/pipeline.yaml +884 -0
- package/configs/ticket-movement-rules.yaml +80 -0
- package/package.json +1 -1
- package/src/global-dir.mjs +25 -1
- 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 +166 -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 +95 -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 +95 -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 +49 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-2.md +56 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/claude-sonnet/trial-3.md +39 -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 +11 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-deepseek/trial-3.md +26 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-glm/trial-1.md +19 -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 +28 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-1.md +23 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-2.md +27 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-001/current/kilo-minimax/trial-3.md +25 -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 +32 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-2.md +20 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/claude-sonnet/trial-3.md +26 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/judge.json +164 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-1.md +7 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-deepseek/trial-2.md +16 -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 +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-2.md +11 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-glm/trial-3.md +13 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-1.md +13 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-2.md +12 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/kilo-minimax/trial-3.md +5 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002/current/meta.json +116 -0
- package/src/skills/decompose-gaps/tests/cases/TC-DECOMPOSE-GAPS-002-glob-before-write.yaml +36 -0
- package/src/skills/decompose-gaps/tests/index.yaml +25 -0
- package/src/skills/decompose-gaps/tests/rubrics/glob-before-write.md +21 -0
- package/src/skills/decompose-gaps/tests/rubrics/scope-exclusion.md +21 -0
- package/src/skills/decompose-gaps/workflows/decompose.md +120 -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 +113 -0
- package/src/skills/decompose-plan/knowledge/capabilities.md +44 -0
- package/src/skills/decompose-plan/knowledge/human-task-rules.md +67 -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/index.yaml +30 -0
- package/src/skills/decompose-plan/tests/rubrics/atomicity-no-1to1.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 +272 -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 +89 -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 +89 -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 +174 -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 +21 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-2.md +65 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-001/current/claude-sonnet/trial-3.md +35 -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 +47 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-2.md +39 -0
- package/src/skills/manual-testing/tests/cases/TC-MANUAL-TESTING-002/current/claude-sonnet/trial-3.md +40 -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/index.yaml +25 -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/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 +354 -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,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: review-result
|
|
3
|
+
description: >
|
|
4
|
+
Скил ревью результата выполнения задачи. Проверяет соответствие результата
|
|
5
|
+
критериям готовности (Definition of Done) из тикета. Используется после
|
|
6
|
+
выполнения задачи для валидации качества перед перемещением в done/.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Review-result — Agent Skill
|
|
10
|
+
|
|
11
|
+
> **ОБЯЗАТЕЛЬНО:** Последние строки твоего ответа ВСЕГДА должны быть блоком `---RESULT---`.
|
|
12
|
+
> Без этого блока пайплайн не распознает статус и тикет попадёт в `blocked`.
|
|
13
|
+
> **Независимо от объёма анализа:** даже если ты написал развёрнутый code review, список замечаний или исследование — это не результат для пайплайна. Результат — только блок `---RESULT---` в самом конце.
|
|
14
|
+
|
|
15
|
+
## Роль
|
|
16
|
+
|
|
17
|
+
Ты — ревьюер результатов. Твоя задача — проверить что результат выполнения тикета соответствует критериям готовности (DoD) и что все артефакты реальны.
|
|
18
|
+
|
|
19
|
+
**Ты делаешь:** чтение тикета, парсинг DoD, проверка каждого критерия, верификация файлов-артефактов, формирование вердикта (passed/failed), пометка тикета секцией ревью.
|
|
20
|
+
|
|
21
|
+
**Ты НЕ делаешь:** исправление ошибок, перемещение тикетов, создание планов/тикетов, выставление статуса `skipped` (это прерогатива скила проверки актуальности).
|
|
22
|
+
|
|
23
|
+
## Маршрутизация
|
|
24
|
+
|
|
25
|
+
| Тип | Триггеры | Воркфлоу |
|
|
26
|
+
|-----|----------|----------|
|
|
27
|
+
| **Стандартное ревью** | Любой тикет в `review/` | → `workflows/review.md` |
|
|
28
|
+
|
|
29
|
+
> Все типы тикетов проходят один воркфлоу. Различия в проверках определяются типом DoD — см. `knowledge/dod-patterns.md`.
|
|
30
|
+
|
|
31
|
+
## Загрузка знаний
|
|
32
|
+
|
|
33
|
+
Подгружай модули из `knowledge/` по необходимости:
|
|
34
|
+
|
|
35
|
+
| Модуль | Когда загружать |
|
|
36
|
+
|--------|----------------|
|
|
37
|
+
| `knowledge/dod-patterns.md` | При определении типа проверки для конкретного пункта DoD |
|
|
38
|
+
| `../shared/*` | **ВСЕГДА** перед началом работы — общие знания проекта |
|
|
39
|
+
|
|
40
|
+
## Загрузка шаблонов
|
|
41
|
+
|
|
42
|
+
Используй шаблоны из `templates/` для структурированного формирования вердикта:
|
|
43
|
+
|
|
44
|
+
| Шаблон | Когда использовать |
|
|
45
|
+
|--------|-------------------|
|
|
46
|
+
| `templates/verdict.md` | При формировании вердикта после проверки выполнения тикета |
|
|
47
|
+
|
|
48
|
+
## Загрузка алгоритмов
|
|
49
|
+
|
|
50
|
+
Подгружай из `algorithms/` когда нужен формализованный метод:
|
|
51
|
+
|
|
52
|
+
| Алгоритм | Когда загружать |
|
|
53
|
+
|----------|----------------|
|
|
54
|
+
| `algorithms/verification.md` | При верификации реальных изменений (шаг 3.6) для тикетов с `executor_type != human` |
|
|
55
|
+
|
|
56
|
+
## Шаги проверки
|
|
57
|
+
|
|
58
|
+
### 0. Быстрый выход
|
|
59
|
+
|
|
60
|
+
Прочитай тикет. Если секция `## Ревью` существует и последняя запись — `passed` или `⏭ skipped` → немедленно верни `status: passed`.
|
|
61
|
+
|
|
62
|
+
Если последняя запись — `failed` → перейди к полной проверке.
|
|
63
|
+
|
|
64
|
+
### 1-6. Полная проверка
|
|
65
|
+
|
|
66
|
+
Загрузи `workflows/review.md` и следуй шагам 1-6.
|
|
67
|
+
|
|
68
|
+
## Допустимые статусы
|
|
69
|
+
|
|
70
|
+
> **КРИТИЧНО**: `status` принимает ТОЛЬКО два значения: `passed` или `failed`.
|
|
71
|
+
> Любой другой вывод (`default`, `ok`, `done`, `skipped`, и т.д.) — **ОШИБКА**.
|
|
72
|
+
|
|
73
|
+
### passed
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
---RESULT---
|
|
77
|
+
status: passed
|
|
78
|
+
issues: []
|
|
79
|
+
---RESULT---
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### failed
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
---RESULT---
|
|
86
|
+
status: failed
|
|
87
|
+
issues:
|
|
88
|
+
- "Пункт DoD X не выполнен: ожидалось Y, получено Z"
|
|
89
|
+
---RESULT---
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Принципы
|
|
93
|
+
|
|
94
|
+
1. **DoD Driven** — вердикт определяется исключительно по критериям из DoD тикета
|
|
95
|
+
2. **Evidence-Based** — каждый `[x]` должен быть подтверждён реальным артефактом, а не принят на веру
|
|
96
|
+
3. **Audience Check** — для документов/ТЗ: читай глазами целевого исполнителя
|
|
97
|
+
4. **No Fix** — ревьюер не исправляет ошибки, только фиксирует замечания
|
|
98
|
+
5. **Single Pass** — один проход ревью, один вердикт, одна запись в таблицу
|
|
99
|
+
6. **Minimal Thinking** — между tool-вызовами максимум 1 короткая строка. Скил выполняется в фоне, пользователь не читает промежуточный вывод. Развёрнутый анализ записывай в Result
|
|
100
|
+
|
|
101
|
+
## Формат вывода
|
|
102
|
+
|
|
103
|
+
- Русский язык
|
|
104
|
+
- Структурированный вердикт: passed/failed + issues
|
|
105
|
+
- Для каждого issue: ожидалось / получено / файл:строка
|
|
106
|
+
- Блок `---RESULT---` — ровно один раз, в самом конце ответа
|
|
107
|
+
|
|
108
|
+
## Интеграция с пайплайном
|
|
109
|
+
|
|
110
|
+
1. Скил выполнения обрабатывает задачу
|
|
111
|
+
2. **Этот скил** проверяет результат
|
|
112
|
+
3. По `status` определяется goto-переход:
|
|
113
|
+
- `passed` → следующий stage
|
|
114
|
+
- `failed` → retry или blocked
|
|
115
|
+
|
|
116
|
+
## Формат секции ревью в тикете
|
|
117
|
+
|
|
118
|
+
```markdown
|
|
119
|
+
## Ревью
|
|
120
|
+
|
|
121
|
+
| Дата | Статус | Самари |
|
|
122
|
+
|------|--------|--------|
|
|
123
|
+
| 2026-03-25 14:30 | ❌ failed | Не пройдены тесты, отсутствует файл X |
|
|
124
|
+
| 2026-03-25 15:45 | ✅ passed | Все критерии DoD выполнены |
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
> **Порядок записей:** хронологический сверху вниз. Последняя строка = последнее ревью.
|
|
128
|
+
|
|
129
|
+
## Границы компетенции
|
|
130
|
+
|
|
131
|
+
- **Исправление ошибок** → скил выполнения (через retry)
|
|
132
|
+
- **Проверка актуальности** → соответствующий скил проекта
|
|
133
|
+
- **Создание планов/тикетов** → pipeline
|
|
134
|
+
- **Улучшение скилов** → соответствующий скил проекта
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
**Регрессионные тесты:** `tests/index.yaml`. Прогон: `node .workflow/src/scripts/run-skill-tests.js --skill review-result`
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# Алгоритм верификации результата
|
|
2
|
+
|
|
3
|
+
Формализованный метод проверки что результат выполнения тикета реален, а не является галлюцинацией агента.
|
|
4
|
+
|
|
5
|
+
## Вход
|
|
6
|
+
|
|
7
|
+
- Тикет с заполненной секцией «Результат выполнения»
|
|
8
|
+
- Список файлов из секции «Изменённые файлы»
|
|
9
|
+
- Чеклист DoD с отметками `[x]`
|
|
10
|
+
|
|
11
|
+
## Выход
|
|
12
|
+
|
|
13
|
+
- `verified` — все артефакты реальны и соответствуют заявленному
|
|
14
|
+
- `not_verified` — обнаружены расхождения + список проблем
|
|
15
|
+
|
|
16
|
+
## Алгоритм
|
|
17
|
+
|
|
18
|
+
### Шаг 1: Проверка существования файлов
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
ДЛЯ КАЖДОГО файла из «Изменённые файлы»:
|
|
22
|
+
1. Выполни Read(файл) или Glob(паттерн)
|
|
23
|
+
2. ЕСЛИ файл не найден через Read/Glob →
|
|
24
|
+
FALLBACK: выполни Bash("ls -la {путь}") для подтверждения
|
|
25
|
+
(Glob может не видеть файлы в новых untracked директориях)
|
|
26
|
+
3. ЕСЛИ файл не найден И через fallback → добавь в issues: "Файл {путь} не существует"
|
|
27
|
+
4. ЕСЛИ файл найден любым способом → перейди к шагу 2
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
> **⚠️ Почему fallback:** Glob/Read могут не находить файлы в новых директориях,
|
|
31
|
+
> которые ещё не добавлены в git index. Bash(`ls`) работает напрямую с файловой
|
|
32
|
+
> системой и всегда видит реальные файлы. Без fallback ревьюер ложно репортит
|
|
33
|
+
> отсутствие файлов, которые были корректно созданы исполнителем.
|
|
34
|
+
|
|
35
|
+
### Шаг 2: Проверка содержимого
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
ДЛЯ КАЖДОГО найденного файла:
|
|
39
|
+
1. Открой файл через Read
|
|
40
|
+
2. Проверь:
|
|
41
|
+
a. Файл НЕ пустой (> 0 строк содержательного контента)
|
|
42
|
+
b. Файл НЕ содержит только шаблонные плейсхолдеры
|
|
43
|
+
c. Контент соответствует типу файла (код = код, документ = текст)
|
|
44
|
+
3. ЕСЛИ файл пуст или placeholder → добавь в issues: "Файл {путь} — пустой/placeholder"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Шаг 3: Проверка Summary
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
1. Найди секцию «Результат выполнения» → «Summary»
|
|
51
|
+
2. ЕСЛИ Summary пуст или содержит заглушку ("TODO", "...", "Заполнить") → issues
|
|
52
|
+
3. ЕСЛИ Summary < 10 слов → предупреждение (может быть слишком кратким)
|
|
53
|
+
4. ЕСЛИ Summary содержательный → OK
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Шаг 4: Кросс-валидация DoD ↔ Артефакты
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
ДЛЯ КАЖДОГО пункта DoD отмеченного [x]:
|
|
60
|
+
1. Определи артефакт, к которому относится пункт
|
|
61
|
+
2. Открой артефакт
|
|
62
|
+
3. Проверь что критерий ДЕЙСТВИТЕЛЬНО выполнен:
|
|
63
|
+
- "Файл создан" → файл существует и не пуст
|
|
64
|
+
- "Секция X добавлена" → секция присутствует в файле
|
|
65
|
+
- "Нет ссылок на Y" → поиск Y по файлу = 0 результатов
|
|
66
|
+
- "Тесты проходят" → запустить тесты (если возможно)
|
|
67
|
+
4. ЕСЛИ критерий НЕ выполнен → issues: "DoD '{критерий}' отмечен [x], но не подтверждён"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Шаг 5: Формирование результата
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
ЕСЛИ issues пуст:
|
|
74
|
+
→ verified
|
|
75
|
+
ИНАЧЕ:
|
|
76
|
+
→ not_verified + список issues
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## Пороги и правила
|
|
80
|
+
|
|
81
|
+
| Правило | Значение |
|
|
82
|
+
|---------|----------|
|
|
83
|
+
| Минимум строк для «не пустой» файл | > 3 строки содержательного контента |
|
|
84
|
+
| Маркеры placeholder | `TODO`, `TBD`, `XXX`, `FIXME`, `заполнить`, `...` |
|
|
85
|
+
| Минимум слов в Summary | 10 слов |
|
|
86
|
+
| Любой issue = failed | Да, без исключений |
|
|
87
|
+
|
|
88
|
+
## Граничные случаи
|
|
89
|
+
|
|
90
|
+
| Случай | Решение |
|
|
91
|
+
|--------|---------|
|
|
92
|
+
| Тикет с `executor_type: human` | Пропустить верификацию файлов — человек мог внести изменения вне системы |
|
|
93
|
+
| Файл удалён как часть задачи | Проверить что файл действительно НЕ существует (обратная проверка) |
|
|
94
|
+
| DoD содержит субъективный критерий | Оценить по best effort, отметить в комментарии |
|
|
95
|
+
| Файл изменён, но не создан | Проверить что изменения присутствуют (diff или содержимое) |
|
|
96
|
+
|
|
97
|
+
## Пример применения
|
|
98
|
+
|
|
99
|
+
**Вход:**
|
|
100
|
+
- Тикет XXX-005 с DoD: `[x] Создан workflows/process.md`, `[x] README создан`
|
|
101
|
+
- Изменённые файлы: `workflows/process.md`, `README.md`
|
|
102
|
+
|
|
103
|
+
**Проверка:**
|
|
104
|
+
1. `Read("src/skills/example-skill/workflows/process.md")` → файл существует, 45 строк → OK
|
|
105
|
+
2. `Read("src/skills/example-skill/README.md")` → файл существует, 30 строк → OK
|
|
106
|
+
3. Summary: "Модульная реструктуризация..." — 15 слов → OK
|
|
107
|
+
4. DoD `[x] workflows/` → файл есть, содержит шаги → verified
|
|
108
|
+
5. DoD `[x] README` → файл есть, структура верна → verified
|
|
109
|
+
|
|
110
|
+
**Результат:** `verified`
|
|
111
|
+
|
|
112
|
+
<!-- РАСШИРЕНИЕ: добавляй новые проверки и граничные случаи ниже -->
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Паттерны DoD по типам тикетов
|
|
2
|
+
|
|
3
|
+
Справочник типичных критериев готовности (Definition of Done) для разных типов задач. Помогает ревьюеру определить тип проверки и ожидания.
|
|
4
|
+
|
|
5
|
+
## Паттерны по типу тикета
|
|
6
|
+
|
|
7
|
+
### impl (реализация)
|
|
8
|
+
|
|
9
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
10
|
+
|--------------|-------------|-------------------------|
|
|
11
|
+
| Файл `X` создан / изменён | `file_exists` | Проверить что файл не пустой, содержит реальный код |
|
|
12
|
+
| Тесты проходят | `tests` | Запустить тесты, проверить покрытие |
|
|
13
|
+
| Код проходит линтер | `compilation` | Запустить lint |
|
|
14
|
+
| Реализована функция X | `text` | Проверить наличие функции, её сигнатуру и логику |
|
|
15
|
+
| Тесты на маппинг/парсинг данных | `tests` + `text` | Проверить, что тестовые fixtures содержат **реальные** значения из runtime-источника (лог, конфиг, API), а не синтетические. Прочитать источник данных и сверить с fixtures. Если fixtures не соответствуют реальным данным — тесты тавтологичны |
|
|
16
|
+
| Документация обновлена | `text` | Проверить JSDoc / README / комментарии |
|
|
17
|
+
|
|
18
|
+
### fix (исправление бага)
|
|
19
|
+
|
|
20
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
21
|
+
|--------------|-------------|-------------------------|
|
|
22
|
+
| Баг исправлен | `tests` | Регрессионный тест покрывает сценарий бага |
|
|
23
|
+
| Тесты не сломаны | `tests` | Все существующие тесты проходят |
|
|
24
|
+
| Нет побочных эффектов | `text` | Минимальность изменений, не затронуты несвязанные файлы |
|
|
25
|
+
|
|
26
|
+
### docs (документация)
|
|
27
|
+
|
|
28
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
29
|
+
|--------------|-------------|-------------------------|
|
|
30
|
+
| Документ создан | `file_exists` | Файл существует и не пустой |
|
|
31
|
+
| Структура соответствует шаблону | `structure` | Все обязательные секции присутствуют |
|
|
32
|
+
| Файл самодостаточен | `text` | → Применить шаг 3.5 (проверка с позиции аудитории) |
|
|
33
|
+
| Нет плейсхолдеров | `text` | Поиск `TODO`, `XXX`, `TBD`, `заменить` |
|
|
34
|
+
|
|
35
|
+
### coach (улучшение скилов)
|
|
36
|
+
|
|
37
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
38
|
+
|--------------|-------------|-------------------------|
|
|
39
|
+
| Файлы скила созданы | `file_exists` | workflows/, knowledge/, algorithms/ существуют |
|
|
40
|
+
| SKILL.md обновлён | `text` | Таблицы загрузки, маршрутизация |
|
|
41
|
+
| Нет ссылок на имена скилов | `text` | Поиск хардкода ролей — проверка изоляции |
|
|
42
|
+
| README создан | `file_exists` + `structure` | Все обязательные секции |
|
|
43
|
+
|
|
44
|
+
### rsh (исследование)
|
|
45
|
+
|
|
46
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
47
|
+
|--------------|-------------|-------------------------|
|
|
48
|
+
| Отчёт создан | `file_exists` | Файл существует |
|
|
49
|
+
| Источники указаны | `text` | Ссылки на источники, не голословные утверждения |
|
|
50
|
+
| Выводы структурированы | `structure` | Секции, таблицы, приоритизация |
|
|
51
|
+
|
|
52
|
+
### admin (административная)
|
|
53
|
+
|
|
54
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
55
|
+
|--------------|-------------|-------------------------|
|
|
56
|
+
| Конфигурация обновлена | `file_exists` + `text` | Файл изменён, значения корректны |
|
|
57
|
+
| Система работает | `compilation` | Проверить что конфиг валиден |
|
|
58
|
+
|
|
59
|
+
## Универсальные проверки
|
|
60
|
+
|
|
61
|
+
Применяются ко **всем** типам тикетов:
|
|
62
|
+
|
|
63
|
+
| Проверка | Описание |
|
|
64
|
+
|----------|----------|
|
|
65
|
+
| Summary не пустой | Секция «Результат выполнения» содержит содержательное описание |
|
|
66
|
+
| Изменённые файлы перечислены | Список файлов не пуст (для тикетов с артефактами) |
|
|
67
|
+
| Файлы реально существуют | Все перечисленные файлы доступны через Read/Glob |
|
|
68
|
+
| DoD ↔ Result согласованы | Каждый пункт DoD отражён в результате |
|
|
69
|
+
|
|
70
|
+
### qa (тестирование / manual testing)
|
|
71
|
+
|
|
72
|
+
| Типичный DoD | Тип проверки | На что обратить внимание |
|
|
73
|
+
|--------------|-------------|-------------------------|
|
|
74
|
+
| Сценарий X протестирован | `text` | Результат (PASS/FAIL/BLOCKER) задокументирован с evidence (a11y assertion + шаги) |
|
|
75
|
+
| Найденные дефекты зафиксированы | `text` | Дефекты содержат шаги воспроизведения, ожидаемый/фактический результат |
|
|
76
|
+
| Скриншоты приложены (если требуются в DoD) | `file_exists` + `visual` | Файлы существуют, **содержимое визуально проверено** — скриншот подтверждает заявление TC (шаг 3.7 review.md) |
|
|
77
|
+
|
|
78
|
+
> **⚠️ КРИТИЧЕСКИ ВАЖНО — Правило оценки QA-тикетов:**
|
|
79
|
+
>
|
|
80
|
+
> Для QA-тикетов обнаружение дефекта продукта — это **правильно выполненная работа тестировщика**, а НЕ ошибка выполнения тикета.
|
|
81
|
+
>
|
|
82
|
+
> - Если тестировщик обнаружил, что функционал отсутствует или сломан, и **задокументировал это** (описал дефект, шаги воспроизведения, a11y assertion) → пункт DoD **выполнен**. Тестировщик не может починить продукт — его задача найти и зафиксировать проблему. Скриншоты от исполнителя не обязательны по умолчанию — только если явно требуются в DoD. Однако если TC содержит визуальный критерий (как объект выглядит пользователю) — ревьюер обязан применить шаг 4.7 review.md: найти скриншоты, открыть и визуально проверить, либо зафиксировать отсутствие визуального evidence как issue.
|
|
83
|
+
> - FAIL на ревью QA-тикета допустим только если тестировщик **не выполнил свою работу**: не протестировал сценарий, не задокументировал результат, не приложил доказательства, пропустил сценарии без объяснения.
|
|
84
|
+
> - Статус сценария BLOCKER/FAIL в матрице результатов ≠ FAIL ревью тикета. Это выявленный дефект = ценный результат работы.
|
|
85
|
+
|
|
86
|
+
> **⚠️ КРИТИЧЕСКИ ВАЖНО — Подмена ручной проверки запуском автотестов:**
|
|
87
|
+
>
|
|
88
|
+
> Если QA-тикет содержит DoD «проверены визуально», «UI протестирован», «рендеринг проверен» (или аналог, требующий реального host-окружения), а evidence в результате — assertion из unit/integration-тест файлов разработки (`.test.ts`, `.test.js`), запуск `mocha`/`jest`/`vitest`/любого test runner'а — это **fail ревью** независимо от того, сколько тестов прошло.
|
|
89
|
+
>
|
|
90
|
+
> **Признаки подмены:**
|
|
91
|
+
> - В Evidence для каждого TC указан assertion вида `assert.strictEqual(icon.id, ...)` со ссылкой на файл `*.test.*`
|
|
92
|
+
> - В «Протоколе выполнения» — команда запуска test runner вместо MCP-вызовов desktop/browser-инструмента
|
|
93
|
+
> - В заметках формулировка типа «эквивалентно визуальной проверке, так как объект X создаётся теми же конструкторами»
|
|
94
|
+
> - Отсутствуют MCP snapshot/screenshot из реального host-окружения, в котором продукт исполняется конечным пользователем
|
|
95
|
+
>
|
|
96
|
+
> **Почему это fail:** unit-тесты, на которые ссылается evidence, **уже были зелёными** до создания QA-тикета (они прошли в задаче реализации). Их повторный запуск не подтверждает работоспособность в реальной среде — он подтверждает только то, что уже было известно. Эквивалентность «конструктор объекта в unit-тесте = отрендеренный объект в реальном UI» ложная: unit-тест не воспроизводит host runtime, интеграцию с системой, accessibility tree, реальный пользовательский ввод.
|
|
97
|
+
>
|
|
98
|
+
> **Правильное поведение тестировщика при недоступности host-окружения:** BLOCKED с обоснованной причиной + создание HUMAN-тикета, если сценарий критический. См. `manual-testing/algorithms/blocked-tool-strategy.md`. Ревьюер обязан принимать BLOCKED как валидный результат и отклонять подмену.
|
|
99
|
+
>
|
|
100
|
+
> **Регресс между итерациями ревью:** если предыдущая итерация ревью корректно отклонила evidence как «code review без реальных assertions из запущенного расширения», а следующая итерация принимает **то же самое** evidence с переформулированным обоснованием — это сигнал, что ревьюер поддался на риторику «обоснования недоступности» вместо проверки фактов. Перечитай предыдущее ревью: если оно отклонило по той же причине — текущее evidence должно содержать **новый тип данных** (MCP snapshot, скриншот из host, лог реального запуска), а не переформулировку старого.
|
|
101
|
+
|
|
102
|
+
## Специальные паттерны
|
|
103
|
+
|
|
104
|
+
### Self-Modified DoD (`[x]` + дискламер «НЕ ПРОЙДЕН»)
|
|
105
|
+
|
|
106
|
+
**Признак:** пункт DoD помечен `[x]`, но рядом написано «НЕ ПРОЙДЕН», «FAIL», «фактически: X».
|
|
107
|
+
|
|
108
|
+
**Правило:** `[x]` + «НЕ ПРОЙДЕН» = структурный дефект артефакта. Тестировщик перепутал «проверен» с «выполнен».
|
|
109
|
+
|
|
110
|
+
**Действие ревьюера:**
|
|
111
|
+
- Зафиксировать как issue: «DoD п.N: помечен `[x]`, но фактически не выполнен — ожидалось Y, получено Z»
|
|
112
|
+
- Общий вердикт определяется по фактическому результату (Z), а не по `[x]`
|
|
113
|
+
- Если фактический результат соответствует ожиданиям задачи (например, задача — зафиксировать состояние, а не достичь цели) → passed, но issue фиксируется как LOW
|
|
114
|
+
|
|
115
|
+
<!-- РАСШИРЕНИЕ: добавляй новые паттерны DoD по типам тикетов ниже -->
|