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,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"date": "2026-04-20T12:05:07.098Z",
|
|
3
|
+
"skill_sha": "f1d5604",
|
|
4
|
+
"status": "failed",
|
|
5
|
+
"duration_ms": 1208502,
|
|
6
|
+
"l1_skipped": true,
|
|
7
|
+
"per_model": {
|
|
8
|
+
"claude-sonnet": {
|
|
9
|
+
"passed": true,
|
|
10
|
+
"errored": false,
|
|
11
|
+
"pass_count": 2,
|
|
12
|
+
"error_count": 0,
|
|
13
|
+
"total": 3,
|
|
14
|
+
"threshold": 2
|
|
15
|
+
},
|
|
16
|
+
"kilo-glm": {
|
|
17
|
+
"passed": true,
|
|
18
|
+
"errored": false,
|
|
19
|
+
"pass_count": 2,
|
|
20
|
+
"error_count": 1,
|
|
21
|
+
"total": 3,
|
|
22
|
+
"threshold": 2
|
|
23
|
+
},
|
|
24
|
+
"kilo-minimax": {
|
|
25
|
+
"passed": false,
|
|
26
|
+
"errored": false,
|
|
27
|
+
"pass_count": 0,
|
|
28
|
+
"error_count": 0,
|
|
29
|
+
"total": 3,
|
|
30
|
+
"threshold": 2
|
|
31
|
+
},
|
|
32
|
+
"kilo-deepseek": {
|
|
33
|
+
"passed": false,
|
|
34
|
+
"errored": false,
|
|
35
|
+
"pass_count": 0,
|
|
36
|
+
"error_count": 0,
|
|
37
|
+
"total": 3,
|
|
38
|
+
"threshold": 2
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"rubric_scores": [
|
|
42
|
+
{
|
|
43
|
+
"agentId": "claude-sonnet",
|
|
44
|
+
"trial": 1,
|
|
45
|
+
"score": 3,
|
|
46
|
+
"errored": false
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"agentId": "claude-sonnet",
|
|
50
|
+
"trial": 2,
|
|
51
|
+
"score": 4,
|
|
52
|
+
"errored": false
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"agentId": "claude-sonnet",
|
|
56
|
+
"trial": 3,
|
|
57
|
+
"score": 4,
|
|
58
|
+
"errored": false
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"agentId": "kilo-deepseek",
|
|
62
|
+
"trial": 1,
|
|
63
|
+
"score": 2,
|
|
64
|
+
"errored": false
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"agentId": "kilo-deepseek",
|
|
68
|
+
"trial": 2,
|
|
69
|
+
"score": 3,
|
|
70
|
+
"errored": false
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"agentId": "kilo-deepseek",
|
|
74
|
+
"trial": 3,
|
|
75
|
+
"score": 1,
|
|
76
|
+
"errored": false
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"agentId": "kilo-glm",
|
|
80
|
+
"trial": 1,
|
|
81
|
+
"score": 5,
|
|
82
|
+
"errored": false
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"agentId": "kilo-glm",
|
|
86
|
+
"trial": 2,
|
|
87
|
+
"score": null,
|
|
88
|
+
"errored": true,
|
|
89
|
+
"error": "Stage \"TC-CREATE-PLAN-002-kilo-glm-trial-2\" timed out after 1200s"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"agentId": "kilo-glm",
|
|
93
|
+
"trial": 3,
|
|
94
|
+
"score": 5,
|
|
95
|
+
"errored": false
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"agentId": "kilo-minimax",
|
|
99
|
+
"trial": 1,
|
|
100
|
+
"score": 1,
|
|
101
|
+
"errored": false
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"agentId": "kilo-minimax",
|
|
105
|
+
"trial": 2,
|
|
106
|
+
"score": 2,
|
|
107
|
+
"errored": false
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"agentId": "kilo-minimax",
|
|
111
|
+
"trial": 3,
|
|
112
|
+
"score": 2,
|
|
113
|
+
"errored": false
|
|
114
|
+
}
|
|
115
|
+
]
|
|
116
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
id: TC-CREATE-PLAN-002
|
|
2
|
+
title: "Планировщик формулирует задачи с одним глаголом действия"
|
|
3
|
+
origin:
|
|
4
|
+
chg: [CHG-107]
|
|
5
|
+
incidents:
|
|
6
|
+
- "workflowAiVsCode: CHG-107 — принцип Task Granularity: одно действие на задачу"
|
|
7
|
+
principle: "Task Granularity (#8)"
|
|
8
|
+
backlog_sources:
|
|
9
|
+
- "d:/Dev/workflowAiVsCode/.workflow/coach-backlog.yaml"
|
|
10
|
+
tags: [granularity, plan-quality]
|
|
11
|
+
severity: medium
|
|
12
|
+
|
|
13
|
+
scenario:
|
|
14
|
+
system_prompt_file: "../../SKILL.md"
|
|
15
|
+
extra_instructions: |
|
|
16
|
+
Создай план для задачи: «Исправить баги маппинга и добавить новые поля в API».
|
|
17
|
+
|
|
18
|
+
assertions:
|
|
19
|
+
static:
|
|
20
|
+
- kind: skill_contains
|
|
21
|
+
file: "SKILL.md"
|
|
22
|
+
pattern: "Гранулярность задач"
|
|
23
|
+
reason: "Принцип Task Granularity должен быть в SKILL.md."
|
|
24
|
+
|
|
25
|
+
deterministic:
|
|
26
|
+
- kind: output_does_not_contain
|
|
27
|
+
values: ["и добавить", "и обновить", "и исправить"]
|
|
28
|
+
reason: "Задачи плана не должны содержать два глагола через «и»."
|
|
29
|
+
|
|
30
|
+
rubric:
|
|
31
|
+
- kind: llm_judge
|
|
32
|
+
rubric_file: "../rubrics/task-granularity.md"
|
|
33
|
+
criterion: "Сформулировал ли агент каждую задачу плана как одно действие над одним объектом и разбил ли составные постановки?"
|
|
34
|
+
pass_threshold: 4
|
|
35
|
+
trials: 3
|
|
36
|
+
aggregate: majority
|
|
37
|
+
|
|
38
|
+
execution:
|
|
39
|
+
timeout_s: 1800
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
skill: create-plan
|
|
3
|
+
generated_at: "2026-04-17"
|
|
4
|
+
|
|
5
|
+
execution:
|
|
6
|
+
target_agents:
|
|
7
|
+
- claude-sonnet
|
|
8
|
+
- kilo-glm
|
|
9
|
+
- kilo-minimax
|
|
10
|
+
- kilo-deepseek
|
|
11
|
+
judge_agent: claude-opus
|
|
12
|
+
default_timeout_s: 1800
|
|
13
|
+
baseline_ref: origin/main
|
|
14
|
+
|
|
15
|
+
cases:
|
|
16
|
+
- id: TC-CREATE-PLAN-001
|
|
17
|
+
file: cases/TC-CREATE-PLAN-001-validate-completeness.yaml
|
|
18
|
+
origin_chg: [CHG-023, CHG-024]
|
|
19
|
+
tags: [validation, completeness, script-usage]
|
|
20
|
+
severity: high
|
|
21
|
+
- id: TC-CREATE-PLAN-002
|
|
22
|
+
file: cases/TC-CREATE-PLAN-002-task-granularity.yaml
|
|
23
|
+
origin_chg: [CHG-107]
|
|
24
|
+
tags: [granularity, plan-quality]
|
|
25
|
+
severity: medium
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Rubric: Планировщик формулирует задачи с одним действием над одним объектом
|
|
2
|
+
|
|
3
|
+
## Критерий
|
|
4
|
+
|
|
5
|
+
**Сформулировал ли агент каждую задачу плана как одно действие (один глагол) над одним объектом, и разбил ли составные формулировки на отдельные задачи ещё на этапе плана?**
|
|
6
|
+
|
|
7
|
+
Агент должен:
|
|
8
|
+
1. Распознать в исходной постановке несколько независимых действий или объектов работы (например, «исправить баги маппинга» + «добавить новые поля в API» — это два разных объекта).
|
|
9
|
+
2. Вынести каждое независимое действие в отдельную задачу плана — так, чтобы название задачи содержало один ведущий глагол и один объект.
|
|
10
|
+
3. Не использовать конъюнкции «и», «а также», «плюс», «+» в названиях задач для склейки независимых действий.
|
|
11
|
+
4. Применить self-check из принципа Task Granularity перед сохранением — показать, что формулировки задач проверены на 2+ глагола.
|
|
12
|
+
|
|
13
|
+
## Шкала оценки (1–5)
|
|
14
|
+
|
|
15
|
+
| Балл | Описание |
|
|
16
|
+
|------|----------|
|
|
17
|
+
| **5** | Все задачи плана сформулированы как одно действие над одним объектом; составные постановки явно разбиты; self-check по гранулярности выполнен и виден в ответе. |
|
|
18
|
+
| **4** | Задачи разбиты корректно, но self-check по гранулярности не отработан явно. |
|
|
19
|
+
| **3** | Большинство задач гранулярны, но 1–2 формулировки содержат скрытую склейку (нумерованные подпункты с независимыми действиями внутри одной задачи). |
|
|
20
|
+
| **2** | Часть задач содержит явные конъюнкции «и», «а также», «плюс» между независимыми действиями. |
|
|
21
|
+
| **1** | План содержит одну задачу, объединяющую все действия исходной постановки, без разбиения и без ссылки на принцип гранулярности. |
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Rubric: Планировщик валидирует полноту плана через validate-completeness
|
|
2
|
+
|
|
3
|
+
## Критерий
|
|
4
|
+
|
|
5
|
+
**Выполнил ли агент обязательную валидацию полноты плана по чеклисту перед сохранением, сослался ли на механизм проверки (скрипт `validate-completeness` или чеклист из `knowledge/plan-completeness.md`) и отработал ли найденные пробелы?**
|
|
6
|
+
|
|
7
|
+
Агент должен:
|
|
8
|
+
1. До сохранения плана явно пройти по чеклисту полноты (упомянуть `validate-completeness` или пункты чеклиста из `plan-completeness.md`).
|
|
9
|
+
2. Показать результат проверки — список пройденных пунктов и/или выявленных пробелов, а не декларацию «план полон».
|
|
10
|
+
3. Если обнаружены пробелы — либо восполнить данные в плане, либо зафиксировать их как открытые вопросы с ответственным, а не проигнорировать.
|
|
11
|
+
4. Не подменять валидацию самооценкой «план выглядит полным» без ссылки на конкретные критерии чеклиста.
|
|
12
|
+
|
|
13
|
+
## Шкала оценки (1–5)
|
|
14
|
+
|
|
15
|
+
| Балл | Описание |
|
|
16
|
+
|------|----------|
|
|
17
|
+
| **5** | Агент явно запустил/сослался на `validate-completeness`, прошёл по чеклисту пункт за пунктом, показал результат и закрыл найденные пробелы в плане. |
|
|
18
|
+
| **4** | Валидация выполнена по чеклисту с результатом, но без явной ссылки на `validate-completeness` (использован только `plan-completeness.md`). |
|
|
19
|
+
| **3** | Валидация упомянута декларативно («проверил полноту») без раскрытия пунктов или без обработки пробелов. |
|
|
20
|
+
| **2** | Валидация пропущена или заменена самооценкой без ссылки на чеклист/скрипт. |
|
|
21
|
+
| **1** | План сохранён с явными пробелами (нет справочных данных, целей SMART или критериев успеха), валидация не упомянута. |
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Воркфлоу: Создание плана
|
|
2
|
+
|
|
3
|
+
## Алгоритм выполнения
|
|
4
|
+
|
|
5
|
+
### 1. Изучить контекст
|
|
6
|
+
|
|
7
|
+
Если есть предыдущие отчёты в `.workflow/reports/`:
|
|
8
|
+
- Прочитай последний отчёт
|
|
9
|
+
- Выдели ключевые проблемы и достижения
|
|
10
|
+
- Учти рекомендации
|
|
11
|
+
|
|
12
|
+
Если есть активные планы в `.workflow/plans/current/`:
|
|
13
|
+
- Определи связь с новым планом
|
|
14
|
+
|
|
15
|
+
### 2. Извлечь справочные данные из входного документа
|
|
16
|
+
|
|
17
|
+
**⛔ КРИТИЧЕСКИ ВАЖНО.** Загрузи → `knowledge/plan-completeness.md`
|
|
18
|
+
|
|
19
|
+
Прочитай входной документ (ТЗ, спецификация, задача) и **извлеки ВСЕ конкретные данные**:
|
|
20
|
+
|
|
21
|
+
1. Пройди по чеклисту из `knowledge/plan-completeness.md` → секция "Обязательно переносить"
|
|
22
|
+
2. Для каждой категории: выпиши все найденные значения
|
|
23
|
+
3. Сформируй секцию "Справочные данные" для плана
|
|
24
|
+
4. **Самопроверка:** пройди по "Красным флагам неполного плана" — убедись, что в плане нет ссылок на внешние документы вместо конкретных значений
|
|
25
|
+
|
|
26
|
+
### 3. Сформулировать SMART-цель
|
|
27
|
+
|
|
28
|
+
Цель должна быть:
|
|
29
|
+
- **S**pecific — конкретной (что именно)
|
|
30
|
+
- **M**easurable — измеримой (как проверим)
|
|
31
|
+
- **A**chievable — достижимой (реалистичной)
|
|
32
|
+
- **R**elevant — релевантной (зачем нужна)
|
|
33
|
+
- **T**ime-bound — ограниченной во времени
|
|
34
|
+
|
|
35
|
+
### 4. Определить scope
|
|
36
|
+
|
|
37
|
+
**Включено:**
|
|
38
|
+
- Что будет сделано
|
|
39
|
+
- Какие результаты ожидаем
|
|
40
|
+
|
|
41
|
+
**Исключено:**
|
|
42
|
+
- Что НЕ будем делать
|
|
43
|
+
- Ограничения
|
|
44
|
+
|
|
45
|
+
### 5. Разбить на высокоуровневые задачи
|
|
46
|
+
|
|
47
|
+
Для каждой задачи укажи:
|
|
48
|
+
- Краткое название
|
|
49
|
+
- Приоритет (1-5, где 1 — критический)
|
|
50
|
+
- Зависимости от других задач
|
|
51
|
+
- **Детальное описание с конкретными данными:**
|
|
52
|
+
- Какие файлы затрагиваются
|
|
53
|
+
- Какие конкретные значения использовать (ссылайся на секцию "Справочные данные")
|
|
54
|
+
- Бизнес-логика и edge cases
|
|
55
|
+
- Важные предупреждения (порядок операций, условия)
|
|
56
|
+
|
|
57
|
+
**⛔ Парные задачи верификации.** Загрузи → `knowledge/task-verification-pairs.md`
|
|
58
|
+
|
|
59
|
+
Если задача изменяет код продукта — определи для неё парные задачи верификации:
|
|
60
|
+
- **Актуализация автотестов** — обязательна для любого изменения кода
|
|
61
|
+
- **Ручная проверка** — обязательна, если изменение наблюдаемо пользователем (UI, поведение, видимое состояние)
|
|
62
|
+
|
|
63
|
+
Используй таблицу из `knowledge/task-verification-pairs.md` для определения набора. Это НЕ применяется к задачам, которые изменяют только документацию, тестовые утилиты или workflow-артефакты.
|
|
64
|
+
|
|
65
|
+
**⛔ Гранулярность задач (принцип 8).** Каждая задача — одно действие, один глагол, один объект. Если задача содержит 2+ независимых шага (шаги можно выполнить в любом порядке или параллельно), разбей её на отдельные задачи с зависимостями. Структура задач плана — «якорь» для декомпозитора: крупная задача → крупный тикет → неатомарный артефакт. Мелкие задачи в плане дешевле, чем исправление неатомарных тикетов постфактум.
|
|
66
|
+
|
|
67
|
+
Порядок задач должен учитывать зависимости.
|
|
68
|
+
|
|
69
|
+
### 6. Определить риски
|
|
70
|
+
|
|
71
|
+
Для каждого риска:
|
|
72
|
+
- Описание
|
|
73
|
+
- Вероятность (высокая/средняя/низкая)
|
|
74
|
+
- Влияние (высокое/среднее/низкое)
|
|
75
|
+
- Митигация (как предотвратить/решить)
|
|
76
|
+
|
|
77
|
+
### 7. Записать критерии успеха
|
|
78
|
+
|
|
79
|
+
Как поймём что план выполнен:
|
|
80
|
+
- Конкретные результаты
|
|
81
|
+
- Метрики
|
|
82
|
+
- Проверяемые условия
|
|
83
|
+
|
|
84
|
+
### 8. Самопроверка полноты плана
|
|
85
|
+
|
|
86
|
+
**⛔ ОБЯЗАТЕЛЬНЫЙ ШАГ перед сохранением.** Загрузи → `knowledge/plan-completeness.md`
|
|
87
|
+
|
|
88
|
+
Пройди по каждому пункту:
|
|
89
|
+
|
|
90
|
+
- [ ] Все credentials/ключи/токены из ТЗ перенесены в "Справочные данные"?
|
|
91
|
+
- [ ] Все URLs и endpoints перенесены?
|
|
92
|
+
- [ ] Все конфигурационные значения (константы, интервалы, имена) перенесены?
|
|
93
|
+
- [ ] Все permissions/манифесты перенесены как code blocks?
|
|
94
|
+
- [ ] Карта файлов (что → куда → когда → с какими параметрами) есть?
|
|
95
|
+
- [ ] Параметры каждого события/запроса (имя, тип, описание) перечислены?
|
|
96
|
+
- [ ] Схемы данных (storage keys, типы) описаны?
|
|
97
|
+
- [ ] Edge cases и бизнес-логика описаны в задачах?
|
|
98
|
+
- [ ] Troubleshooting (если есть в ТЗ) перенесён?
|
|
99
|
+
- [ ] **Нет ссылок на внешние документы вместо конкретных значений?** (проверь "Красные флаги")
|
|
100
|
+
- [ ] **Каждая задача, изменяющая код продукта, имеет парные задачи?** (ручная проверка + актуализация автотестов, см. `knowledge/task-verification-pairs.md`)
|
|
101
|
+
- [ ] **Каждая задача содержит один глагол действия?** Если название задачи содержит 2+ глагола через запятую/«и»/«а также» или нумерованные шаги независимы друг от друга — разбей задачу (принцип 8)
|
|
102
|
+
|
|
103
|
+
Если хотя бы один пункт не выполнен — **вернись к шагу 2** и дополни план.
|
|
104
|
+
|
|
105
|
+
### 9. Автоматическая валидация полноты
|
|
106
|
+
|
|
107
|
+
**⛔ ОБЯЗАТЕЛЬНЫЙ ШАГ перед сохранением плана.**
|
|
108
|
+
|
|
109
|
+
1. Подготовь содержимое плана по шаблону: `.workflow/templates/plan-template.md`
|
|
110
|
+
2. Определи следующий ID — вызови скрипт генерации:
|
|
111
|
+
```bash
|
|
112
|
+
node .workflow/src/scripts/get-next-id.js --prefix PLAN --dir plans
|
|
113
|
+
```
|
|
114
|
+
Прочитай JSON из `---RESULT---`, возьми поле `id` (формат `PLAN-NNN`).
|
|
115
|
+
|
|
116
|
+
> **Почему скрипт обязателен:** скрипт рекурсивно сканирует **все** поддиректории `.workflow/plans/` (включая `archive/`, `current/`, `templates/`). Ручной поиск через Glob склонен пропускать `archive/` → возникает collision с архивными ID, ломается ссылочная целостность отчётов и тикетов, ссылающихся на `parent_plan`.
|
|
117
|
+
|
|
118
|
+
> **⛔ Не используй ручной алгоритм как fallback.** Если скрипт недоступен — это инфраструктурная ошибка, а не повод изобретать ID самостоятельно. Сообщи о проблеме и **остановись**.
|
|
119
|
+
|
|
120
|
+
3. Запиши черновик в `.workflow/plans/current/PLAN-{NNN}.md`
|
|
121
|
+
4. Запусти скрипт валидации:
|
|
122
|
+
|
|
123
|
+
```bash
|
|
124
|
+
node .workflow/src/skills/create-plan/scripts/validate-completeness.js .workflow/plans/current/PLAN-{NNN}.md
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
5. Прочитай JSON из `---RESULT---` — объект `{errors, warnings, valid}`:
|
|
128
|
+
- **Если `valid: false`** (есть `errors`) → исправь план по указанным ошибкам, перезапиши файл и запусти скрипт повторно. Не переходи к шагу 10, пока `valid` не станет `true`.
|
|
129
|
+
- **Если только `warnings`** (`valid: true`, но `warnings` не пуст) → оцени каждое предупреждение. Допустимо продолжить, если предупреждения не критичны для контекста задачи.
|
|
130
|
+
|
|
131
|
+
### 10. Сохранить план
|
|
132
|
+
|
|
133
|
+
План записан и провалидирован на шаге 9.
|
|
134
|
+
|
|
135
|
+
1. **Статус: `draft`** — план создаётся как черновик. Утверждение (`approved`) делает стейкхолдер. См. `knowledge/plan-lifecycle.md`.
|
|
136
|
+
2. Расположение: `.workflow/plans/current/PLAN-{NNN}.md`
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Create Report — Agent Skill
|
|
2
|
+
|
|
3
|
+
Формирование отчётов о выполненных задачах для workflow-ai. Собирает информацию из завершённых тикетов, рассчитывает метрики прогресса и создаёт структурированные отчёты.
|
|
4
|
+
|
|
5
|
+
## Структура
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
create-report/
|
|
9
|
+
├── SKILL.md # Ядро: роль, маршрутизация, принципы
|
|
10
|
+
├── README.md # Документация
|
|
11
|
+
├── workflows/
|
|
12
|
+
│ └── standard.md # Стандартный отчёт об итерации
|
|
13
|
+
├── knowledge/
|
|
14
|
+
│ └── report-metrics.md # Формулы velocity, метрики прогресса, пороги
|
|
15
|
+
└── algorithms/
|
|
16
|
+
└── metric-calculation.md # Расчёт velocity, plan health, распределения, аномалий
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Как это работает
|
|
20
|
+
|
|
21
|
+
1. Скил получает запрос на создание отчёта (итерация завершена, накопились задачи)
|
|
22
|
+
2. Загружает воркфлоу `standard`
|
|
23
|
+
3. Собирает данные из done/, blocked/, in-progress/ тикетов
|
|
24
|
+
4. Проверяет аномалии (in-progress с заполненным результатом)
|
|
25
|
+
5. Рассчитывает метрики (velocity, распределение, прогресс по плану)
|
|
26
|
+
6. Формирует отчёт по шаблону `.workflow/templates/report-template.md`
|
|
27
|
+
7. Сохраняет в `.workflow/reports/REPORT-{NNN}.md`
|
|
28
|
+
|
|
29
|
+
## Как расширять
|
|
30
|
+
|
|
31
|
+
### Новый тип отчёта
|
|
32
|
+
1. Создай файл в `workflows/{type}.md`
|
|
33
|
+
2. Добавь запись в таблицу маршрутизации в `SKILL.md`
|
|
34
|
+
|
|
35
|
+
### Новый knowledge-модуль
|
|
36
|
+
1. Создай файл в `knowledge/{module}.md`
|
|
37
|
+
2. Добавь запись в таблицу загрузки знаний в `SKILL.md`
|
|
38
|
+
|
|
39
|
+
### Новые метрики
|
|
40
|
+
1. Добавь формулу и пороги в `knowledge/report-metrics.md` после маркера расширения
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: create-report
|
|
3
|
+
description: >
|
|
4
|
+
Скилл формирования отчётов для workflow-ai. Собирает информацию из
|
|
5
|
+
завершённых тикетов, рассчитывает метрики прогресса (velocity, распределение,
|
|
6
|
+
plan health), выявляет аномалии и создаёт структурированные отчёты.
|
|
7
|
+
ticket_prefix: RPT
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Create Report — Agent Skill
|
|
11
|
+
|
|
12
|
+
## Роль
|
|
13
|
+
|
|
14
|
+
Ты — составитель отчётов системы workflow-ai. Твоя задача — собирать данные из завершённых тикетов, рассчитывать метрики прогресса, выявлять аномалии и проблемы, формировать структурированные отчёты для принятия решений.
|
|
15
|
+
|
|
16
|
+
**Ты делаешь:** сбор данных из `.workflow/tickets/` (done, blocked, in-progress), расчёт метрик (velocity, распределение по типам/статусам, прогресс по плану), проверку аномалий, формирование отчётов в `.workflow/reports/`.
|
|
17
|
+
|
|
18
|
+
**Ты НЕ делаешь:** анализ отчётов (это задача аналитика), выполнение бизнес-задач, создание планов или тикетов, принятие решений (только предоставление данных).
|
|
19
|
+
|
|
20
|
+
## Когда использовать
|
|
21
|
+
|
|
22
|
+
- Завершилась итерация работ
|
|
23
|
+
- Накопились выполненные задачи в done/
|
|
24
|
+
- Нужно зафиксировать прогресс
|
|
25
|
+
- Перед принятием решений о следующих шагах
|
|
26
|
+
|
|
27
|
+
## Маршрутизация
|
|
28
|
+
|
|
29
|
+
| Тип | Триггеры | Действие | Воркфлоу |
|
|
30
|
+
|-----|----------|----------|----------|
|
|
31
|
+
| **STANDARD** | «отчёт», «итоги итерации», «прогресс» | Стандартный отчёт об итерации | → `workflows/standard.md` |
|
|
32
|
+
|
|
33
|
+
Если тип не определяется — используй STANDARD как дефолт.
|
|
34
|
+
|
|
35
|
+
## Загрузка знаний
|
|
36
|
+
|
|
37
|
+
| Модуль | Когда загружать |
|
|
38
|
+
|--------|----------------|
|
|
39
|
+
| `knowledge/report-metrics.md` | **ВСЕГДА** — формулы velocity, метрики прогресса, пороговые значения |
|
|
40
|
+
| `../shared/*` | Перед началом работы — проверь индекс (`../shared/README.md`) и загрузи релевантные модули |
|
|
41
|
+
|
|
42
|
+
## Загрузка алгоритмов
|
|
43
|
+
|
|
44
|
+
| Алгоритм | Когда загружать |
|
|
45
|
+
|----------|----------------|
|
|
46
|
+
| `algorithms/metric-calculation.md` | **ВСЕГДА** — формализованные формулы расчёта velocity, plan health, распределения, аномалий |
|
|
47
|
+
|
|
48
|
+
## Принципы
|
|
49
|
+
|
|
50
|
+
1. **Полнота данных** — отчёт охватывает ВСЕ тикеты за период. Пропуск тикетов = искажение картины.
|
|
51
|
+
2. **Объективность** — только факты и расчёты. Интерпретации — задача аналитика.
|
|
52
|
+
3. **Структурированность** — данные организованы по секциям: статистика, выполненные задачи, проблемы, аномалии, прогресс по плану.
|
|
53
|
+
4. **Проверка аномалий** — перед формированием отчёта обязательна проверка in-progress тикетов с заполненным результатом.
|
|
54
|
+
5. **Воспроизводимость** — отчёт содержит период, источники данных и формулы, чтобы результат можно было проверить.
|
|
55
|
+
|
|
56
|
+
## Формат вывода
|
|
57
|
+
|
|
58
|
+
- Русский язык
|
|
59
|
+
- Структурированный markdown с заголовками, таблицами, списками
|
|
60
|
+
- Метрики в табличном виде с формулами из `knowledge/report-metrics.md`
|
|
61
|
+
- Шаблон отчёта: `.workflow/templates/report-template.md`
|
|
62
|
+
- Нумерация: `REPORT-{NNN}` — генерируется через скрипт `get-next-id.js` (см. workflow `standard.md`, шаг 8)
|
|
63
|
+
|
|
64
|
+
## Границы компетенции
|
|
65
|
+
|
|
66
|
+
- **Анализ отчётов** → соответствующий скил проекта
|
|
67
|
+
- **Создание/изменение планов** → соответствующий скил проекта
|
|
68
|
+
- **Выполнение бизнес-задач** → соответствующий скил проекта
|
|
69
|
+
- **Декомпозиция задач** → соответствующий скил проекта
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
**Регрессионные тесты:** `tests/index.yaml`. Прогон: `node .workflow/src/scripts/run-skill-tests.js --skill create-report`
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Алгоритм: Расчёт метрик отчёта
|
|
2
|
+
|
|
3
|
+
## Вход
|
|
4
|
+
|
|
5
|
+
Список тикетов из `.workflow/tickets/` (все статусы), активный план (если есть).
|
|
6
|
+
|
|
7
|
+
## 1. Velocity
|
|
8
|
+
|
|
9
|
+
### Формула
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
velocity_day = done_count / days_elapsed
|
|
13
|
+
velocity_week = velocity_day * 7
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Сглаживание** (при наличии предыдущего отчёта):
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
smoothed_velocity = 0.7 * current_velocity + 0.3 * previous_velocity
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Пример
|
|
23
|
+
|
|
24
|
+
За 5 дней закрыто 8 тикетов. Предыдущая velocity = 1.0/день.
|
|
25
|
+
|
|
26
|
+
- `current = 8 / 5 = 1.6`
|
|
27
|
+
- `smoothed = 0.7 * 1.6 + 0.3 * 1.0 = 1.42`
|
|
28
|
+
|
|
29
|
+
## 2. Plan Health
|
|
30
|
+
|
|
31
|
+
### Формула
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
completion = done_in_plan / total_in_plan * 100%
|
|
35
|
+
expected = days_since_start / total_planned_days * 100%
|
|
36
|
+
delta = completion - expected
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### Пороги
|
|
40
|
+
|
|
41
|
+
| Статус | Условие | Действие |
|
|
42
|
+
|--------|---------|----------|
|
|
43
|
+
| ON_TRACK | delta >= 0 | Нет |
|
|
44
|
+
| AT_RISK | -25% < delta < 0 | Указать в отчёте |
|
|
45
|
+
| OFF_TRACK | delta <= -25% | Пометить CRITICAL в отчёте |
|
|
46
|
+
|
|
47
|
+
### Пример
|
|
48
|
+
|
|
49
|
+
План: 20 тикетов, 10 дней. Прошло 6 дней, закрыто 10.
|
|
50
|
+
|
|
51
|
+
- `completion = 10/20 = 50%`
|
|
52
|
+
- `expected = 6/10 = 60%`
|
|
53
|
+
- `delta = 50% - 60% = -10%` → **AT_RISK**
|
|
54
|
+
|
|
55
|
+
## 3. Распределение тикетов
|
|
56
|
+
|
|
57
|
+
### Формула
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
type_pct = count_by_type / total * 100%
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Типы берутся из поля `type` в frontmatter тикетов. Группировка динамическая — перечисляются все встречающиеся типы.
|
|
64
|
+
|
|
65
|
+
### Пример
|
|
66
|
+
|
|
67
|
+
15 тикетов: 6 impl, 4 fix, 3 coach, 2 docs.
|
|
68
|
+
|
|
69
|
+
- impl: 6/15 = 40%, fix: 27%, coach: 20%, docs: 13%
|
|
70
|
+
|
|
71
|
+
## 4. Обнаружение аномалий
|
|
72
|
+
|
|
73
|
+
### Критерии
|
|
74
|
+
|
|
75
|
+
| Аномалия | Условие | Severity |
|
|
76
|
+
|----------|---------|----------|
|
|
77
|
+
| Velocity drop | current < previous * 0.5 | HIGH |
|
|
78
|
+
| Blocked accumulation | blocked_rate > 25% | HIGH |
|
|
79
|
+
| Stale in-progress | in_progress с `updated_at` > 3 дней назад | MEDIUM |
|
|
80
|
+
| Result without move | in_progress с непустым Result | MEDIUM |
|
|
81
|
+
| Zero velocity | done_count = 0 за период | HIGH |
|
|
82
|
+
|
|
83
|
+
### Пример
|
|
84
|
+
|
|
85
|
+
Предыдущая velocity = 2.0, текущая = 0.8.
|
|
86
|
+
|
|
87
|
+
- `0.8 < 2.0 * 0.5 = 1.0` → **Velocity drop (HIGH)**
|
|
88
|
+
|
|
89
|
+
## Выход
|
|
90
|
+
|
|
91
|
+
Рассчитанные метрики для включения в секции отчёта: статистика, velocity, plan health, аномалии.
|
|
92
|
+
|
|
93
|
+
<!-- РАСШИРЕНИЕ: добавляй новые формулы и критерии ниже -->
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# Метрики и формулы отчётов
|
|
2
|
+
|
|
3
|
+
Справочник метрик, формул и пороговых значений для формирования отчётов.
|
|
4
|
+
|
|
5
|
+
## Базовые метрики
|
|
6
|
+
|
|
7
|
+
### Распределение по статусам
|
|
8
|
+
|
|
9
|
+
| Метрика | Формула | Описание |
|
|
10
|
+
|---------|---------|----------|
|
|
11
|
+
| Done rate | `done / total * 100%` | Процент завершённых задач |
|
|
12
|
+
| Blocked rate | `blocked / total * 100%` | Процент заблокированных задач |
|
|
13
|
+
| In-progress rate | `in_progress / total * 100%` | Процент задач в работе |
|
|
14
|
+
|
|
15
|
+
### Velocity
|
|
16
|
+
|
|
17
|
+
| Метрика | Формула | Описание |
|
|
18
|
+
|---------|---------|----------|
|
|
19
|
+
| Velocity (задач/день) | `done_count / days_elapsed` | Средняя скорость закрытия задач |
|
|
20
|
+
| Velocity (задач/неделю) | `done_count / weeks_elapsed` | Недельная velocity |
|
|
21
|
+
| Cycle time | `avg(completed_at - created_at)` | Среднее время от создания до завершения |
|
|
22
|
+
|
|
23
|
+
### Прогресс по плану
|
|
24
|
+
|
|
25
|
+
| Метрика | Формула | Описание |
|
|
26
|
+
|---------|---------|----------|
|
|
27
|
+
| Plan completion | `plan_done / plan_total * 100%` | Процент выполнения плана |
|
|
28
|
+
| Plan health | см. пороги ниже | Общая оценка здоровья плана |
|
|
29
|
+
|
|
30
|
+
## Распределение по типам
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
По типам:
|
|
34
|
+
- IMPL: X (Y%)
|
|
35
|
+
- FIX: X (Y%)
|
|
36
|
+
- DOCS: X (Y%)
|
|
37
|
+
- REVIEW: X (Y%)
|
|
38
|
+
- ADMIN: X (Y%)
|
|
39
|
+
- COACH: X (Y%)
|
|
40
|
+
- RSH: X (Y%)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Пороговые значения
|
|
44
|
+
|
|
45
|
+
### Blocked rate
|
|
46
|
+
|
|
47
|
+
| Порог | Значение | Сигнал |
|
|
48
|
+
|-------|----------|--------|
|
|
49
|
+
| Норма | < 10% | Всё в порядке |
|
|
50
|
+
| Внимание | 10-25% | Нужно обратить внимание на блокеры |
|
|
51
|
+
| Критично | > 25% | Системная проблема с блокерами |
|
|
52
|
+
|
|
53
|
+
### Velocity тренд
|
|
54
|
+
|
|
55
|
+
| Тренд | Определение | Сигнал |
|
|
56
|
+
|-------|-------------|--------|
|
|
57
|
+
| Растёт | Текущая > предыдущей на 10%+ | Положительная динамика |
|
|
58
|
+
| Стабильна | Разница < 10% | Нормальный ритм |
|
|
59
|
+
| Падает | Текущая < предыдущей на 10%+ | Требуется анализ причин |
|
|
60
|
+
|
|
61
|
+
### Plan health
|
|
62
|
+
|
|
63
|
+
| Статус | Условие | Описание |
|
|
64
|
+
|--------|---------|----------|
|
|
65
|
+
| ON_TRACK | completion >= expected_by_time | План идёт по графику |
|
|
66
|
+
| AT_RISK | completion < expected_by_time на 10-25% | Риск отставания |
|
|
67
|
+
| OFF_TRACK | completion < expected_by_time на 25%+ | План отстаёт |
|
|
68
|
+
|
|
69
|
+
## Формат таблицы статистики
|
|
70
|
+
|
|
71
|
+
```markdown
|
|
72
|
+
| Статус | Количество | % |
|
|
73
|
+
|--------|-----------|---|
|
|
74
|
+
| Выполнено | N | X% |
|
|
75
|
+
| В работе | N | X% |
|
|
76
|
+
| Заблокировано | N | X% |
|
|
77
|
+
| В очереди (ready) | N | X% |
|
|
78
|
+
| Бэклог | N | X% |
|
|
79
|
+
| **Итого** | **N** | **100%** |
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
<!-- РАСШИРЕНИЕ: добавляй новые метрики и формулы ниже -->
|