workflow-ai 1.0.62 → 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/README.md +61 -0
- package/agent-templates/CLAUDE.md.tpl +2 -0
- package/agent-templates/QWEN.md.tpl +2 -0
- package/configs/config.yaml +134 -0
- package/configs/pipeline.yaml +884 -0
- package/configs/ticket-movement-rules.yaml +80 -0
- package/package.json +2 -1
- package/src/global-dir.mjs +25 -1
- package/src/init.mjs +5 -4
- package/src/lib/agent-spawner.mjs +338 -0
- package/src/runner.mjs +15 -14
- package/src/scripts/get-next-test-id.js +94 -0
- package/src/scripts/migrate-backlog-to-tests.js +406 -0
- package/src/scripts/run-skill-tests.js +1703 -0
- package/src/scripts/scan-fixtures-for-secrets.js +248 -0
- package/src/scripts/tests/timeout-cascade.test.js +28 -0
- 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
- package/templates/plan-template.md +1 -0
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-glm/trial-3.md
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
Данные загружены. Теперь я провожу верификацию по логу пайплайна и формирую отчёт анализа.
|
|
2
|
+
|
|
3
|
+
# Анализ: PROGRESS
|
|
4
|
+
|
|
5
|
+
**Дата анализа:** 2026-04-20
|
|
6
|
+
**Анализируемый план:** PLAN-001
|
|
7
|
+
**Анализируемый отчёт:** REPORT-002
|
|
8
|
+
**Тип анализа:** PROGRESS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Executive Summary
|
|
13
|
+
|
|
14
|
+
Отчёт REPORT-002 содержит **неверную атрибуцию** root cause пропуска тикета QA-001. Стейдж `check-conditions` корректно пропустил тикет дальше (status=`conditions_ok`), а решение о skip принял стейдж `check-relevance` (reason=`dependencies_inactive`). Также обнаружено противоречие между оценками двух стейджей: `check-conditions` считает зависимости разрешёнными, а `check-relevance` — неактивными. Требуется исправление отчёта и диагностика расхождения в логике стейджей.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Метрики
|
|
19
|
+
|
|
20
|
+
Данные для количественных метрик ограничены — лог содержит только траекторию одного тикета (QA-001). Метрики рассчитаны на основе доступных данных.
|
|
21
|
+
|
|
22
|
+
| Метрика | Значение | Статус |
|
|
23
|
+
|---------|----------|--------|
|
|
24
|
+
| Тикетов в логе | 1 (QA-001) | — |
|
|
25
|
+
| Успешно обработано | 0 | 🔴 |
|
|
26
|
+
| Пропущено (skipped) | 1 | 🔴 |
|
|
27
|
+
| Неверная атрибуция в отчёте | 1 finding | 🔴 |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Ключевые находки
|
|
32
|
+
|
|
33
|
+
### 1. Неверная атрибуция root cause в REPORT-002 [HIGH]
|
|
34
|
+
|
|
35
|
+
**Уверенность:** [HIGH]
|
|
36
|
+
**Данные:** REPORT-002 (строки 17–21) атрибутирует root cause стейджу `check-conditions.js`: *"стейдж неверно определил, что условия запуска не выполнены, и передал тикет дальше без обработки"*.
|
|
37
|
+
|
|
38
|
+
**Верификация по логу** (`pipeline-2026-04-06_qa-001-skip.log`):
|
|
39
|
+
|
|
40
|
+
| Шаг | Стейдж | Строка лога | Решение | Факт |
|
|
41
|
+
|-----|--------|-------------|---------|------|
|
|
42
|
+
| 313 | `check-conditions` | строки 8–17 | `conditions_ok` | Стейдж **пропустил** тикет, все проверки пройдены |
|
|
43
|
+
| 314 | `check-relevance` | строки 19–26 | `irrelevant` (reason: `dependencies_inactive`) | Стейдж **принял решение о skip** |
|
|
44
|
+
| 315 | `skip-ticket` | строки 28–32 | `skipped` (reason from check-relevance: `dependencies_inactive`) | Подтверждает источник решения |
|
|
45
|
+
|
|
46
|
+
**Вывод:** Root cause — `check-relevance` / `check-relevance.js` (строка 26 лога: `status="irrelevant" reason="dependencies_inactive"`), а НЕ `check-conditions.js`, как указано в REPORT-002.
|
|
47
|
+
|
|
48
|
+
### 2. Противоречие между оценками двух стейджей [HIGH]
|
|
49
|
+
|
|
50
|
+
**Уверенность:** [HIGH]
|
|
51
|
+
**Данные из лога:**
|
|
52
|
+
|
|
53
|
+
| Стейдж | Проверка | Результат | Строка лога |
|
|
54
|
+
|--------|----------|-----------|-------------|
|
|
55
|
+
| `check-conditions` | `dependencies.resolved` | `true` | строка 13 |
|
|
56
|
+
| `check-conditions` | `prerequisites.met` | `true` | строка 14 |
|
|
57
|
+
| `check-conditions` | `blocking_tickets` | `[]` | строка 15 |
|
|
58
|
+
| `check-relevance` | `dependencies.status` | `inactive` | строка 24 |
|
|
59
|
+
|
|
60
|
+
Стейдж `check-conditions` проверяет `dependencies.resolved` (true), а `check-relevance` проверяет `dependencies.status` (inactive). Это **разные поля с разной семантикой**. Тикет QA-001 прошел все условия запуска, но был признан нерелевантным из-за неактивного статуса зависимостей — вероятно, зависимости технически разрешены, но сами зависимые тикеты/компоненты неактивны.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Проблемы и риски
|
|
65
|
+
|
|
66
|
+
| # | Проблема | Серьёзность | Данные (evidence из лога) | Рекомендация |
|
|
67
|
+
|---|---------|-------------|--------------------------|--------------|
|
|
68
|
+
| 1 | REPORT-002 неверно атрибутировал root cause: указан `check-conditions.js`, фактически решение принял `check-relevance` (строка 26: `reason="dependencies_inactive"`) | CRITICAL | `pipeline-2026-04-06_qa-001-skip.log:26` | Пересоздать отчёт с корректной атрибуцией |
|
|
69
|
+
| 2 | Два стейджа дают противоречивую оценку зависимостей: `check-conditions` → resolved, `check-relevance` → inactive | HIGH | Строки 13 vs 24 лога | Диагностировать расхождение: уточнить семантику `dependencies.resolved` vs `dependencies.status` |
|
|
70
|
+
| 3 | Тикет QA-001 пропущен по критерию `dependencies_inactive`, несмотря на пройденные условия запуска | HIGH | Строки 16, 26 лога | Пересмотреть логику стейджа `check-relevance.js`: пропускать ли тикеты с resolved=true но inactive зависимостями |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Рекомендации
|
|
75
|
+
|
|
76
|
+
| # | Действие | Приоритет | Почему | Ожидаемый результат |
|
|
77
|
+
|---|---------|-----------|--------|-------------------|
|
|
78
|
+
| 1 | Пересоздать REPORT-002 с корректной атрибуцией: root cause — `check-relevance.js`, стейдж `check-relevance`, reason `dependencies_inactive` | CRITICAL | Отчёт направляет усилия по исправлению на неверный компонент (`check-conditions.js` вместо `check-relevance.js`). Исправление не того файла не решит проблему. | Корректный отчёт, направляющий исправления на нужный компонент |
|
|
79
|
+
| 2 | Диагностировать расхождение: почему `check-conditions` видит `dependencies.resolved: true`, а `check-relevance` — `dependencies.status: inactive` | HIGH | Противоречивые оценки между стейджами создают неопределённость и потенциально пропускают валидные тикеты | Унификация семантики полей зависимостей или устранение дублирующей проверки |
|
|
80
|
+
| 3 | Пересмотреть логику `check-relevance.js`: тикет с `dependencies.resolved: true` и `prerequisites.met: true` не должен признаваться `irrelevant` | HIGH | Стейдж `check-relevance` отменяет результат `check-conditions`, используя другой критерий, что нарушает целостность пайплайна (лог: строки 16 vs 26) | QA-001 и аналогичные тикеты не будут ошибочно пропускаться |
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## За пределами скоупа
|
|
85
|
+
|
|
86
|
+
- Количественные метрики по всему плану PLAN-001 (completion rate, throughput) — лог содержит данные только по одному тикету.
|
|
87
|
+
- Анализ остальных 4 тикетов из итерации — нет данных в логе.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Решение
|
|
92
|
+
|
|
93
|
+
**Статус плана:** 🟠 ATTENTION (тикеты пропускаются из-за дефектов в логике пайплайна)
|
|
94
|
+
**Рекомендуемое действие:** скорректировать — исправить отчёт и логику `check-relevance.js` перед следующей итерацией
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Self-check
|
|
99
|
+
|
|
100
|
+
- [x] Секция **Result** заполнена
|
|
101
|
+
- [x] Каждый вывод подкреплён конкретными данными из лога (указаны номера строк)
|
|
102
|
+
- [x] Каждая рекомендация actionable (содержит конкретное действие и компонент)
|
|
103
|
+
- [x] Неверная атрибуция обнаружена и задокументирована как CRITICAL finding
|
|
104
|
+
- [x] Все findings с уверенностью HIGH имеют цитаты из лога
|
|
105
|
+
|
|
106
|
+
---RESULT---
|
|
107
|
+
status: has_gaps
|
|
108
|
+
report_id: REPORT-002
|
|
109
|
+
gaps: "Отчёт REPORT-002 содержит неверную атрибуцию root cause (check-conditions.js вместо check-relevance.js). Обнаружено противоречие между стейджами check-conditions и check-relevance в оценке зависимостей. Требуется пересоздание отчёта и диагностика логики check-relevance.js."
|
|
110
|
+
---RESULT---
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-1.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
Проанализирую отчёт и проверю атрибуцию root cause по логу пайплайна.
|
|
2
|
+
# Анализ: PROGRESS — Верификация REPORT-002
|
|
3
|
+
|
|
4
|
+
**Дата анализа:** 2026-04-20
|
|
5
|
+
**Анализируемый план:** PLAN-001
|
|
6
|
+
**Анализируемый отчёт:** REPORT-002
|
|
7
|
+
**Тип анализа:** PROGRESS
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Executive Summary
|
|
12
|
+
|
|
13
|
+
При верификации REPORT-002 по логу пайплайна обнаружено **CRITICAL-расхождение в атрибуции root cause**. Отчёт обвиняет `check-conditions.js`, однако лог показывает, что этот стейдж корректно вернул `conditions_ok`. Фактическое решение об отклонении тикета QA-001 принял стейдж `check-relevance` (строка 29 лога: `decision=irrelevant, reason=dependencies_inactive`). Рекомендация в REPORT-002 направлена на неверный компонент.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## Верификация проблемы QA-001
|
|
18
|
+
|
|
19
|
+
### Finding из REPORT-002
|
|
20
|
+
|
|
21
|
+
| Поле | Значение в отчёте |
|
|
22
|
+
|------|-------------------|
|
|
23
|
+
| Root cause | `check-conditions.js` |
|
|
24
|
+
| Обоснование | Стейдж неверно определил, что условия запуска не выполнены |
|
|
25
|
+
|
|
26
|
+
### Данные из лога
|
|
27
|
+
|
|
28
|
+
| Шаг | Стейдж | Результат | Данные |
|
|
29
|
+
|-----|--------|-----------|--------|
|
|
30
|
+
| 313 | `check-conditions` | `conditions_ok` | `dependencies.resolved: true`, `prerequisites.met: true`, `blocking_tickets: []` |
|
|
31
|
+
| 314 | `check-relevance` | `irrelevant` | `dependencies.status: inactive`, `reason: dependencies_inactive` |
|
|
32
|
+
| 315 | `skip-ticket` | `skipped` | Перемещение на основании `check-relevance` |
|
|
33
|
+
|
|
34
|
+
### Результат верификации
|
|
35
|
+
|
|
36
|
+
| Компонент | Атрибуция в отчёте | Факт по логу | Вердикт |
|
|
37
|
+
|----------|-------------------|-------------|---------|
|
|
38
|
+
| `check-conditions.js` | Виновен | Вернул `conditions_ok` → условия выполнены | ✅ Невиновен |
|
|
39
|
+
| `check-relevance.js` | Не упомянут | Принял решение `irrelevant` → skip | ⚠️ Фактический виновник |
|
|
40
|
+
|
|
41
|
+
**Уверенность:** [HIGH] — данные подтверждены цитатами из `pipeline-2026-04-06_qa-001-skip.log:29`
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Проблемы и риски
|
|
46
|
+
|
|
47
|
+
| # | Проблема | Серьёзность | Данные | Рекомендация |
|
|
48
|
+
|---|---------|-------------|--------|-------------|
|
|
49
|
+
| 1 | REPORT-002 указал неверный root cause: обвинен `check-conditions.js`, но фактически решение об `irrelevant` принял `check-relevance` | CRITICAL | `pipeline-2026-04-06_qa-001-skip.log:29`, `conditions_ok` в строке 21 | Уточнить атрибуцию: исправлению подлежит `check-relevance.js`, а не `check-conditions.js` |
|
|
50
|
+
| 2 | REPORT-002 рекомендует «пересмотреть пороги `check-conditions.js`» — но этот скрипт работает корректно | HIGH | `conditions_ok` в логе | Рекомендация не-addresses фактическую проблему |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## Рекомендации
|
|
55
|
+
|
|
56
|
+
| # | Действие | Приоритет | Почему | Ожидаемый результат |
|
|
57
|
+
|---|---------|-----------|--------|-------------------|
|
|
58
|
+
| 1 | Перенаправить исправление на `check-relevance.js`: проверить логику определения `dependencies.status: inactive` | CRITICAL | Лог показывает: `check-conditions` вернул `conditions_ok`, решение `irrelevant` принял `check-relevance` (строка 29) | Тикеты с неактивными зависимостями не будут ошибочно пропускаться |
|
|
59
|
+
| 2 | Проверить, почему `check-relevance.js` считает `inactive` зависимости достаточным условием для `irrelevant` — возможно, логика должна учитывать `dependencies.resolved: true` из `check-conditions` | HIGH | `check-conditions` подтвердил `dependencies.resolved: true`, но `check-relevance` проигнорировал это | Согласованность между стейджами, тикеты не пропускаются при выполненных условиях |
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Решение
|
|
64
|
+
|
|
65
|
+
**Статус плана:** ATTENTION
|
|
66
|
+
**Рекомендуемое действие:** скорректировать — REPORT-002 содержит ошибочную атрибуцию, исправлению подлежит `check-relevance.js`
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
---RESULT---
|
|
71
|
+
status: has_gaps
|
|
72
|
+
report_id: REPORT-002
|
|
73
|
+
gaps: " REPORT-002 указал неверный root cause: тикет QA-001 пропущен стейджем check-relevance (лог: decision=irrelevant, reason=dependencies_inactive), а не check-conditions.js. Рекомендация пересмотреть check-conditions.js адресована не тому компоненту."
|
|
74
|
+
---RESULT---
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-2.md
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Верификация атрибуции root cause для QA-001
|
|
2
|
+
|
|
3
|
+
## Результат верификации по логу
|
|
4
|
+
|
|
5
|
+
| Finding из REPORT-002 | Данные из лога | Верификация |
|
|
6
|
+
|----------------------|----------------|-------------|
|
|
7
|
+
| Root cause: `check-conditions.js` | Step 313: `Result: conditions_ok` | **НЕВЕРНО** |
|
|
8
|
+
| Стейдж принял решение о skip | Step 314: `decision: irrelevant` (dependencies_inactive) | **ВЕРНО** |
|
|
9
|
+
| Финальное решение | Step 315: `skip-ticket` исполнил skip | **ВЕРНО** |
|
|
10
|
+
|
|
11
|
+
## Корректная атрибуция
|
|
12
|
+
|
|
13
|
+
| Stage | Step | Данные | Оценка |
|
|
14
|
+
|-------|------|--------|--------|
|
|
15
|
+
| `check-conditions` | 313 | `dependencies.resolved: true`, `prerequisites.met: true`, `blocking_tickets: []` → `conditions_ok` | **OK** — корректно определил условия |
|
|
16
|
+
| `check-relevance` | 314 | `dependencies.status: inactive` → `decision: irrelevant` | **ПРОБЛЕМА** — решение о skip принято здесь |
|
|
17
|
+
| `skip-ticket` | 315 | получил `reason: dependencies_inactive` от `check-relevance` | **OK** — исполнил решение |
|
|
18
|
+
|
|
19
|
+
## Root cause ( corrected )
|
|
20
|
+
|
|
21
|
+
**`check-relevance.js`** — стейдж принял решение `irrelevant` на основании `dependencies.status: inactive`, что привело к skip тикета QA-001.
|
|
22
|
+
|
|
23
|
+
`check-conditions.js` корректно выставил `conditions_ok` — ошибка в этом стейдже **отсутствует**.
|
|
24
|
+
|
|
25
|
+
## Рекомендации (скорректированные)
|
|
26
|
+
|
|
27
|
+
| # | Действие | Приоритет |
|
|
28
|
+
|---|----------|-----------|
|
|
29
|
+
| 1 | Пересмотреть логику проверки статуса зависимостей в `check-relevance.js` | CRITICAL |
|
|
30
|
+
| 2 | Уточнить критерии, при которых `dependencies.status: inactive` ведёт к `irrelevant` | HIGH |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
---RESULT---
|
|
35
|
+
status: has_gaps
|
|
36
|
+
report_id: REPORT-002
|
|
37
|
+
gaps: "Корректная атрибуция: root cause — check-relevance.js, а не check-conditions.js. Стейдж check-relevance некорректно определяет dependencies.status: inactive как достаточное условие для irrelevant."
|
|
38
|
+
---RESULT---
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-001/current/kilo-minimax/trial-3.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
## Верификация findings по логу
|
|
2
|
+
|
|
3
|
+
### Верификация Finding 1: `check-conditions.js` — НЕВЕРНАЯ АТРИБУЦИЯ
|
|
4
|
+
|
|
5
|
+
| Данные из лога | Проверка |
|
|
6
|
+
|----------------|----------|
|
|
7
|
+
| `Result: conditions_ok` (Step 313) | `check-conditions.js` вернул **positive** результат |
|
|
8
|
+
| `status="conditions_ok"` | Стейдж **успешно прошёл**, ошибки нет |
|
|
9
|
+
|
|
10
|
+
**Finding 1 — НЕ ПОДТВЕРЖДЁН** `[HIGH]` — предыдущий отчёт присвоил root cause стейджу `check-conditions.js`, однако лог показывает что этот стейдж корректно вернул `conditions_ok`. Ошибка в том, что тикет был пропущен, но `check-conditions.js` НЕ является причиной.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
### Верификация Finding 2: Решение о skip принято стейджем `check-relevance`
|
|
15
|
+
|
|
16
|
+
| Данные из лога (строка 29) | Проверка |
|
|
17
|
+
|---------------------------|----------|
|
|
18
|
+
| `decision: irrelevant (dependencies inactive)` | Стейдж `check-relevance` принял решение `irrelevant` |
|
|
19
|
+
| `reason=dependencies_inactive` | Основание: зависимости тикета неактивны |
|
|
20
|
+
| `status="irrelevant"` | Финальный статус от `check-relevance` |
|
|
21
|
+
|
|
22
|
+
**Finding 2 — ПОДТВЕРЖДЁН** `[HIGH]` — итоговое решение о skip принято стейджем `check-relevance` (строка 29 лога), а не `check-conditions.js`.
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## Корректная атрибуция
|
|
27
|
+
|
|
28
|
+
| Компонент | Роль в инциденте | Подтверждение |
|
|
29
|
+
|-----------|-----------------|---------------|
|
|
30
|
+
| `check-conditions.js` | Пройден успешно, **НЕ является причиной** | `Result: conditions_ok` |
|
|
31
|
+
| `check-relevance.js` | **Принял решение** о skip тикета | `decision=irrelevant, reason=dependencies_inactive` |
|
|
32
|
+
| `skip-ticket` | Исполнил решение | Использовал `reason from check-relevance` |
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Результат анализа
|
|
37
|
+
|
|
38
|
+
| Finding | Предыдущий отчёт | Лог | Корректная атрибуция |
|
|
39
|
+
|---------|-----------------|-----|---------------------|
|
|
40
|
+
| Root cause skip QA-001 | `check-conditions.js` | Стейдж вернул `conditions_ok` | `check-relevance.js` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Рекомендации (actionable)
|
|
45
|
+
|
|
46
|
+
| # | Действие | Почему | Ожидаемый результат | Приоритет |
|
|
47
|
+
|---|----------|--------|---------------------|-----------|
|
|
48
|
+
| 1 | Пересмотреть логику `check-relevance.js` — проверку `dependencies.status` | Стейдж пометил тикет как irrelevant по признаку `inactive`, но не проверил, является ли это реальным block для выполнения | Тикеты с неактивными зависимостями не будут ошибочно пропускаться | CRITICAL |
|
|
49
|
+
| 2 | Исправить REPORT-002 | Root cause атрибутирован некорректно | Отчёт отражает реальную картину | HIGH |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## За пределами скоупа
|
|
54
|
+
|
|
55
|
+
- Логика определения `dependencies.status: inactive` в `check-relevance.js` — требует отдельного исследования (как определяется inactive, кто его выставляет)
|
|
56
|
+
|
|
57
|
+
---RESULT---
|
|
58
|
+
status: has_gaps
|
|
59
|
+
report_id: REPORT-002
|
|
60
|
+
gaps: "Некорректная атрибуция root cause: skip QA-001 вызван стейджем check-relevance.js (dependencies_inactive), а не check-conditions.js. REPORT-002 содержит ошибку в атрибуции."
|
|
61
|
+
---RESULT---
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
{
|
|
2
|
+
"date": "2026-04-20T12:18:36.989Z",
|
|
3
|
+
"skill_sha": "7d62ab4",
|
|
4
|
+
"status": "passed",
|
|
5
|
+
"duration_ms": 328729,
|
|
6
|
+
"l1_skipped": true,
|
|
7
|
+
"per_model": {
|
|
8
|
+
"claude-sonnet": {
|
|
9
|
+
"passed": true,
|
|
10
|
+
"errored": false,
|
|
11
|
+
"pass_count": 3,
|
|
12
|
+
"error_count": 0,
|
|
13
|
+
"total": 3,
|
|
14
|
+
"threshold": 2
|
|
15
|
+
},
|
|
16
|
+
"kilo-glm": {
|
|
17
|
+
"passed": true,
|
|
18
|
+
"errored": false,
|
|
19
|
+
"pass_count": 3,
|
|
20
|
+
"error_count": 0,
|
|
21
|
+
"total": 3,
|
|
22
|
+
"threshold": 2
|
|
23
|
+
},
|
|
24
|
+
"kilo-minimax": {
|
|
25
|
+
"passed": true,
|
|
26
|
+
"errored": false,
|
|
27
|
+
"pass_count": 3,
|
|
28
|
+
"error_count": 0,
|
|
29
|
+
"total": 3,
|
|
30
|
+
"threshold": 2
|
|
31
|
+
},
|
|
32
|
+
"kilo-deepseek": {
|
|
33
|
+
"passed": true,
|
|
34
|
+
"errored": false,
|
|
35
|
+
"pass_count": 3,
|
|
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": 5,
|
|
46
|
+
"errored": false
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"agentId": "claude-sonnet",
|
|
50
|
+
"trial": 2,
|
|
51
|
+
"score": 5,
|
|
52
|
+
"errored": false
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"agentId": "claude-sonnet",
|
|
56
|
+
"trial": 3,
|
|
57
|
+
"score": 5,
|
|
58
|
+
"errored": false
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"agentId": "kilo-deepseek",
|
|
62
|
+
"trial": 1,
|
|
63
|
+
"score": 5,
|
|
64
|
+
"errored": false
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"agentId": "kilo-deepseek",
|
|
68
|
+
"trial": 2,
|
|
69
|
+
"score": 5,
|
|
70
|
+
"errored": false
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"agentId": "kilo-deepseek",
|
|
74
|
+
"trial": 3,
|
|
75
|
+
"score": 5,
|
|
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": 5,
|
|
88
|
+
"errored": false
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
"agentId": "kilo-glm",
|
|
92
|
+
"trial": 3,
|
|
93
|
+
"score": 5,
|
|
94
|
+
"errored": false
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"agentId": "kilo-minimax",
|
|
98
|
+
"trial": 1,
|
|
99
|
+
"score": 5,
|
|
100
|
+
"errored": false
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"agentId": "kilo-minimax",
|
|
104
|
+
"trial": 2,
|
|
105
|
+
"score": 4,
|
|
106
|
+
"errored": false
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"agentId": "kilo-minimax",
|
|
110
|
+
"trial": 3,
|
|
111
|
+
"score": 5,
|
|
112
|
+
"errored": false
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
id: TC-ANALYZE-REPORT-001
|
|
2
|
+
title: "Анализатор верифицирует каждый finding по логу пайплайна"
|
|
3
|
+
origin:
|
|
4
|
+
chg: [CHG-028, CHG-048]
|
|
5
|
+
incidents:
|
|
6
|
+
- "workflowAi: CHG-028 — повторил неверную атрибуцию из отчёта без проверки лога"
|
|
7
|
+
principle: "Evidence verification из лога"
|
|
8
|
+
backlog_sources:
|
|
9
|
+
- ".workflow/coach-backlog.yaml"
|
|
10
|
+
tags: [evidence, log-verification]
|
|
11
|
+
severity: high
|
|
12
|
+
|
|
13
|
+
scenario:
|
|
14
|
+
system_prompt_file: "../../SKILL.md"
|
|
15
|
+
extra_instructions: |
|
|
16
|
+
Стейкхолдер просит: «Проанализируй прогресс плана PLAN-001 по текущей итерации.
|
|
17
|
+
Входные данные в рабочей директории: REPORT-002-incorrect-attribution.md
|
|
18
|
+
(предыдущий отчёт с атрибуцией root cause) и pipeline-2026-04-06_qa-001-skip.log
|
|
19
|
+
(лог пайплайна итерации).»
|
|
20
|
+
|
|
21
|
+
В отчёте root cause для QA-001 атрибутирован `check-conditions.js`. В логе
|
|
22
|
+
итоговое решение о skip приняла запись стейджа `check-relevance` (строка 29:
|
|
23
|
+
decision=irrelevant, reason=dependencies_inactive). Верифицируй каждый finding
|
|
24
|
+
по логу и выдай корректную атрибуцию.
|
|
25
|
+
inputs:
|
|
26
|
+
- kind: file
|
|
27
|
+
path: "../fixtures/REPORT-002-incorrect-attribution.md"
|
|
28
|
+
as: previous_report
|
|
29
|
+
- kind: file
|
|
30
|
+
path: "../fixtures/pipeline-2026-04-06_qa-001-skip.log"
|
|
31
|
+
as: pipeline_log
|
|
32
|
+
|
|
33
|
+
assertions:
|
|
34
|
+
static:
|
|
35
|
+
- kind: skill_contains
|
|
36
|
+
file: "SKILL.md"
|
|
37
|
+
pattern: "Evidence"
|
|
38
|
+
reason: "Принцип Evidence должен быть в SKILL.md."
|
|
39
|
+
- kind: skill_contains
|
|
40
|
+
file: "SKILL.md"
|
|
41
|
+
pattern: "RESULT"
|
|
42
|
+
reason: "Формат ---RESULT--- обязателен."
|
|
43
|
+
|
|
44
|
+
deterministic:
|
|
45
|
+
- kind: output_contains_all
|
|
46
|
+
values: ["---RESULT---"]
|
|
47
|
+
- kind: output_does_not_contain
|
|
48
|
+
values: ["check-conditions"]
|
|
49
|
+
reason: "Не должен копировать неверную атрибуцию."
|
|
50
|
+
|
|
51
|
+
rubric:
|
|
52
|
+
- kind: llm_judge
|
|
53
|
+
rubric_file: "../rubrics/evidence-from-log.md"
|
|
54
|
+
criterion: "Верифицировал ли агент finding по явной ссылке на лог пайплайна вместо принятия атрибуции отчёта на веру?"
|
|
55
|
+
pass_threshold: 4
|
|
56
|
+
trials: 3
|
|
57
|
+
aggregate: majority
|
|
58
|
+
|
|
59
|
+
execution:
|
|
60
|
+
timeout_s: 1200
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-1.md
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
# Анализ: PROGRESS
|
|
4
|
+
|
|
5
|
+
**Дата анализа:** 2026-04-20
|
|
6
|
+
**Анализируемый план:** PLAN-001
|
|
7
|
+
**Анализируемый отчёт:** н/д
|
|
8
|
+
**Тип анализа:** PROGRESS
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Executive Summary
|
|
13
|
+
|
|
14
|
+
Анализ прогресса PLAN-001 **невозможен** — файл плана отсутствует в `.workflow/plans/`, директории тикетов полностью пусты (done, in-progress, ready, blocked, backlog), отчёты и логи также отсутствуют. Нет ни одного источника данных для анализа. Принцип Evidence-Based нарушен невозможностью: данных нет = вывода нет. Обнаружен критический пробел — план PLAN-001 не существует или не был инициализирован в рабочей среде.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Метрики
|
|
19
|
+
|
|
20
|
+
| Метрика | Значение | Статус |
|
|
21
|
+
|---------|----------|--------|
|
|
22
|
+
| Completion Rate | н/д | 🔴 |
|
|
23
|
+
| Weighted Completion | н/д | 🔴 |
|
|
24
|
+
| First-Pass Rate | н/д | 🔴 |
|
|
25
|
+
| Block Rate | н/д | 🔴 |
|
|
26
|
+
| Тренд | н/д | — |
|
|
27
|
+
|
|
28
|
+
## Распределение задач
|
|
29
|
+
|
|
30
|
+
| Статус | Количество | % |
|
|
31
|
+
|--------|-----------|---|
|
|
32
|
+
| Done | 0 | — |
|
|
33
|
+
| In Progress | 0 | — |
|
|
34
|
+
| Ready | 0 | — |
|
|
35
|
+
| Blocked | 0 | — |
|
|
36
|
+
| Backlog | 0 | — |
|
|
37
|
+
| **ИТОГО** | **0** | **—** |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Ключевые находки
|
|
42
|
+
|
|
43
|
+
### 1. Файл плана PLAN-001 не найден
|
|
44
|
+
**Уверенность:** [HIGH]
|
|
45
|
+
**Данные:** `find .workflow/plans/ -type f` вернул пустой результат. Директории `current/` и `archive/` в `.workflow/plans/` пусты.
|
|
46
|
+
|
|
47
|
+
### 2. Тикеты плана отсутствуют
|
|
48
|
+
**Уверенность:** [HIGH]
|
|
49
|
+
**Данные:** Все поддиректории `.workflow/tickets/` (done, in-progress, ready, blocked, backlog, archive) пусты — ни одного файла тикета не обнаружено.
|
|
50
|
+
|
|
51
|
+
### 3. Отчёты и логи отсутствуют
|
|
52
|
+
**Уверенность:** [HIGH]
|
|
53
|
+
**Данные:** `.workflow/reports/` и `.workflow/logs/` — пусты. Верификация проблем по логам пайплайна невозможна.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Проблемы и риски
|
|
58
|
+
|
|
59
|
+
| # | Проблема | Серьёзность | Данные | Рекомендация |
|
|
60
|
+
|---|---------|-------------|--------|-------------|
|
|
61
|
+
| 1 | Файл PLAN-001 не существует | CRITICAL | `.workflow/plans/current/` и `archive/` пусты | Создать план PLAN-001 через скил create-plan |
|
|
62
|
+
| 2 | Тикеты плана не созданы | CRITICAL | Все директории `.workflow/tickets/` пусты | После создания плана — запустить декомпозицию через decompose-plan |
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Рекомендации
|
|
67
|
+
|
|
68
|
+
| # | Действие | Приоритет | Почему | Ожидаемый результат |
|
|
69
|
+
|---|---------|-----------|--------|-------------------|
|
|
70
|
+
| 1 | Создать план PLAN-001 через скил `create-plan` | CRITICAL | Нет файла плана — анализ прогресса невозможен | Появится план с целями, скоупом и критериями завершения |
|
|
71
|
+
| 2 | Запустить декомпозицию плана через `decompose-plan` | CRITICAL | Без тикетов нечего отслеживать | Появятся атомарные тикеты, привязанные к PLAN-001 |
|
|
72
|
+
| 3 | Повторить анализ прогресса после создания данных | HIGH | Текущий анализ не имеет предмета | Станет возможна полноценная оценка прогресса |
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## За пределами скоупа
|
|
77
|
+
|
|
78
|
+
Нет данных для наблюдений за пределами скоупа.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## Решение
|
|
83
|
+
|
|
84
|
+
**Статус плана:** 🔴 CRITICAL (данные отсутствуют — план не инициализирован)
|
|
85
|
+
**Рекомендуемое действие:** Эскалировать — план PLAN-001 требует создания
|
|
86
|
+
|
|
87
|
+
---RESULT---
|
|
88
|
+
status: has_gaps
|
|
89
|
+
gaps: "PLAN-001 не существует в .workflow/plans/ — файл плана и все тикеты отсутствуют. Необходимо создать план через create-plan и выполнить декомпозицию через decompose-plan."
|
|
90
|
+
---RESULT---
|
package/src/skills/analyze-report/tests/cases/TC-ANALYZE-REPORT-002/current/claude-sonnet/trial-2.md
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Данные проекта отсутствуют — все директории пустые. Согласно алгоритму workflow, продолжу по шагу 2b (ручной расчёт/fallback) и сформирую отчёт на основании доступных данных.
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## Анализ прогресса PLAN-001
|
|
6
|
+
|
|
7
|
+
**Тип анализа:** PROGRESS
|
|
8
|
+
**Дата анализа:** 2026-04-20
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
### Executive Summary
|
|
13
|
+
|
|
14
|
+
Анализ плана PLAN-001 не может быть проведён в полном объёме: в проекте отсутствуют данные — файл плана (`.workflow/plans/`), тикеты (`.workflow/tickets/`), отчёты (`.workflow/reports/`) и логи пайплайна (`.workflow/logs/`). Все директории пусты. Это само по себе является значимым finding'ом: либо PLAN-001 ещё не был инициализирован, либо артефакты были удалены/не созданы. Без данных оценка прогресса невозможна — согласно принципу Evidence-Based, вывод о завершённости плана сформировать нельзя.
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
### Метрики прогресса
|
|
19
|
+
|
|
20
|
+
| Метрика | Значение | Источник |
|
|
21
|
+
|---------|----------|---------|
|
|
22
|
+
| Файл плана `.workflow/plans/` | Не найден | Glob |
|
|
23
|
+
| Тикеты в `done/` | 0 | Glob |
|
|
24
|
+
| Тикеты в `in-progress/` | 0 | Glob |
|
|
25
|
+
| Тикеты в `ready/` | 0 | Glob |
|
|
26
|
+
| Тикеты в `blocked/` | 0 | Glob |
|
|
27
|
+
| Отчёты в `.workflow/reports/` | Не найдены | Glob |
|
|
28
|
+
| Логи в `.workflow/logs/` | Не найдены | Glob |
|
|
29
|
+
| Completion Rate | N/A — нет данных | — |
|
|
30
|
+
|
|
31
|
+
**Скрипт `calc-plan-metrics.js`** не запускался — нет входных данных (отсутствует файл плана).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
### Findings
|
|
36
|
+
|
|
37
|
+
#### F-001: Отсутствие артефактов плана `[HIGH]` `[HIGH confidence — verified by filesystem]`
|
|
38
|
+
|
|
39
|
+
**Факт:** Директории `.workflow/plans/current/`, `.workflow/tickets/done/`, `.workflow/tickets/in-progress/`, `.workflow/reports/` не содержат файлов.
|
|
40
|
+
**Evidence:** filesystem scan — все директории пусты.
|
|
41
|
+
**Интерпретация [MEDIUM]:** PLAN-001 либо не был создан, либо его артефакты не попали в анализируемое окружение.
|
|
42
|
+
|
|
43
|
+
#### F-002: Невозможность верификации прогресса `[HIGH]`
|
|
44
|
+
|
|
45
|
+
**Факт:** Без файла плана нельзя определить скоуп, тикеты и критерии завершённости.
|
|
46
|
+
**Confidence:** HIGH — отсутствие файлов подтверждено прямой проверкой FS.
|
|
47
|
+
**Log evidence:** evidence not found (`.workflow/logs/` — пусто), confidence LOW для любых выводов о причинах.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
### Статус плана
|
|
52
|
+
|
|
53
|
+
🔴 **Невозможно определить** — артефакты отсутствуют.
|
|
54
|
+
|
|
55
|
+
Критерий `completed` (100% тикетов в `done/` + no gaps) **не выполнен** — нет ни одного тикета в `done/`, нет файла плана.
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
### Рекомендации
|
|
60
|
+
|
|
61
|
+
| Приоритет | Действие | Почему | Ожидаемый результат |
|
|
62
|
+
|-----------|---------|--------|-------------------|
|
|
63
|
+
| **HIGH** | Проверить, был ли PLAN-001 создан: выполнить `glob .workflow/plans/**/*.md` в рабочем окружении | Файл плана не найден, без него анализ невозможен | Либо найдётся файл плана, либо подтвердится необходимость его создания |
|
|
64
|
+
| **HIGH** | Убедиться, что артефакты тикетов генерируются и сохраняются в `.workflow/tickets/` | Все директории тикетов пусты — возможна ошибка в пайплайне | Корректное сохранение тикетов для дальнейшего анализа |
|
|
65
|
+
| **MEDIUM** | Проверить конфигурацию логирования — `.workflow/logs/` пуст | Без логов невозможна верификация проблем (принцип evidence-based) | Логи появятся, анализ станет доказательным |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
### За пределами скоупа
|
|
70
|
+
|
|
71
|
+
Тест-кейс TC-ANALYZE-REPORT-002 содержит фикстуру `REPORT-002-incorrect-attribution.md` — анализ этого артефакта выходит за скоуп текущего запроса (PLAN-001).
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
### Self-check
|
|
76
|
+
|
|
77
|
+
- [x] Секция Result заполнена
|
|
78
|
+
- [x] Каждый вывод подкреплён конкретными данными (filesystem verification)
|
|
79
|
+
- [x] Рекомендации actionable (содержат конкретное действие)
|
|
80
|
+
- [x] Уровни уверенности проставлены
|
|
81
|
+
- [x] Пункты DoD: все выводы основаны на реальных данных (отсутствие файлов — это данные)
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
---RESULT---
|
|
86
|
+
status: has_gaps
|
|
87
|
+
report_id: REPORT-PLAN-001-PROGRESS
|
|
88
|
+
gaps: "Файл PLAN-001 и все его артефакты (тикеты, отчёты, логи) отсутствуют в .workflow/ — прогресс невозможно оценить, план не может считаться завершённым."
|
|
89
|
+
---RESULT---
|